integration
This commit is contained in:
@@ -1,3 +0,0 @@
|
||||
# UT2341 (unofficial) Release GIT repository
|
||||
|
||||
checkout official page : https://github.com/Azarael/UT2341
|
||||
36
Readme.txt
Normal file
36
Readme.txt
Normal file
@@ -0,0 +1,36 @@
|
||||
UT2341WeaponsReduced - ChaCha (2022)
|
||||
=>> Based on very good UT2341 Mod from Azarael
|
||||
=>> I decided to extract only the weapon parts because... it I want full UT99 I have it on my computer :)
|
||||
|
||||
Behavior:
|
||||
=> A reduced version of UT2341 with only weapons (except translocator) and instagib
|
||||
|
||||
Installation:
|
||||
=> Copy files and enable one of the mutator:
|
||||
UT2341WeaponsReduced<VERSION>.UT2341Instagib
|
||||
UT2341WeaponsReduced<VERSION>.UT2341Replacement
|
||||
|
||||
=> If you are on a server add the .u to ServerPackages + dopy redirect files
|
||||
|
||||
Configuration:
|
||||
|
||||
+ You can now configure wich weapon to replace with UT99 one:
|
||||
|
||||
[UT2341WeaponsReduced<VERSION>.UT2341Replacement]
|
||||
bReplaceAssaultRifle = True
|
||||
bReplaceBioRifle = True
|
||||
bReplaceONSMineLayer = True
|
||||
bReplaceShockRifle = True
|
||||
bReplaceLinkGun = True
|
||||
bReplaceMinigun = True
|
||||
bReplaceFlakCannon = True
|
||||
bReplaceONSGrenadeLauncer = True
|
||||
bReplaceRocketLauncher = True
|
||||
bReplaceSniperRifle = True
|
||||
bReplaceClassicSniperRifle = True
|
||||
bReplaceRedeemer = True
|
||||
bReplacePainter = True
|
||||
bReplaceStartWeapons = True
|
||||
|
||||
Version History:
|
||||
v1a (11/22): Initial release
|
||||
BIN
Redirect/UT2341WeaponsReducedv1a.u.uz2
Normal file
BIN
Redirect/UT2341WeaponsReducedv1a.u.uz2
Normal file
Binary file not shown.
BIN
Redirect/UT2341Weapons_Anims.ukx.uz2
Normal file
BIN
Redirect/UT2341Weapons_Anims.ukx.uz2
Normal file
Binary file not shown.
BIN
Redirect/UT2341Weapons_SM.usx.uz2
Normal file
BIN
Redirect/UT2341Weapons_SM.usx.uz2
Normal file
Binary file not shown.
BIN
Redirect/UT2341Weapons_Sounds.uax.uz2
Normal file
BIN
Redirect/UT2341Weapons_Sounds.uax.uz2
Normal file
Binary file not shown.
BIN
Redirect/UT2341Weapons_Tex.utx.uz2
Normal file
BIN
Redirect/UT2341Weapons_Tex.utx.uz2
Normal file
Binary file not shown.
2
Run.sh
2
Run.sh
@@ -33,7 +33,7 @@ function del_ServerActors() {
|
||||
}
|
||||
|
||||
function getmodprefix() {
|
||||
_File=$(find $OUTPUT_DIR/System -type f -iname "UT2341Weapons*\.u" -exec basename {} \; | sort -nr | head -n 1)
|
||||
_File=$(find $OUTPUT_DIR/System -type f -iname "UT2341WeaponsReducedv*\.u" -exec basename {} \; | sort -nr | head -n 1)
|
||||
BaseName="${_File%.*}"
|
||||
echo "$BaseName"
|
||||
}
|
||||
|
||||
13
Sources/Classes/DamType_BioGel.uc
Normal file
13
Sources/Classes/DamType_BioGel.uc
Normal file
@@ -0,0 +1,13 @@
|
||||
class DamType_BioGel extends WeaponDamageType
|
||||
abstract;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
WeaponClass=Class'UT2341WeaponsReducedv1a.UT2341BioRifle'
|
||||
DeathString="%o drank a glass of %k's dripping green load."
|
||||
FemaleSuicide="%o slimed herself."
|
||||
MaleSuicide="%o slimed himself."
|
||||
bDetonatesGoop=True
|
||||
bDelayedDamage=True
|
||||
DeathOverlayMaterial=Shader'XGameShaders.PlayerShaders.LinkHit'
|
||||
}
|
||||
21
Sources/Classes/DamType_Enforcer.uc
Normal file
21
Sources/Classes/DamType_Enforcer.uc
Normal file
@@ -0,0 +1,21 @@
|
||||
/*************************************************************
|
||||
*
|
||||
*
|
||||
*
|
||||
*************************************************************/
|
||||
|
||||
class DamType_Enforcer extends WeaponDamageType;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
WeaponClass=Class'UT2341WeaponsReducedv1a.UT2341Enforcer'
|
||||
DeathString="%k riddled %o full of holes with the Enforcer."
|
||||
FemaleSuicide="%o shot herself in the foot."
|
||||
MaleSuicide="%o shot himself in the foot."
|
||||
bRagdollBullet=True
|
||||
bBulletHit=True
|
||||
DamageOverlayTime=0.900000
|
||||
GibPerterbation=1.000000
|
||||
KDamageImpulse=2000.000000
|
||||
VehicleDamageScaling=0.250000
|
||||
}
|
||||
28
Sources/Classes/DamType_Flak.uc
Normal file
28
Sources/Classes/DamType_Flak.uc
Normal file
@@ -0,0 +1,28 @@
|
||||
class DamType_Flak extends WeaponDamageType
|
||||
abstract;
|
||||
|
||||
var sound FlakMonkey; //OBSOLETE
|
||||
|
||||
static function IncrementKills(Controller Killer)
|
||||
{
|
||||
local xPlayerReplicationInfo xPRI;
|
||||
|
||||
xPRI = xPlayerReplicationInfo(Killer.PlayerReplicationInfo);
|
||||
if ( xPRI != None )
|
||||
{
|
||||
xPRI.flakcount++;
|
||||
if ( (xPRI.flakcount == 15) && (UnrealPlayer(Killer) != None) )
|
||||
UnrealPlayer(Killer).ClientDelayedAnnouncementNamed('FlackMonkey',15);
|
||||
}
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
WeaponClass=Class'UT2341WeaponsReducedv1a.UT2341FlakCannon'
|
||||
DeathString="%o was ripped to shreds by %k's flak cannon."
|
||||
FemaleSuicide="%o was perforated by her own flak."
|
||||
MaleSuicide="%o was perforated by his own flak."
|
||||
bDelayedDamage=True
|
||||
bBulletHit=True
|
||||
VehicleMomentumScaling=0.500000
|
||||
}
|
||||
10
Sources/Classes/DamType_FlakShell.uc
Normal file
10
Sources/Classes/DamType_FlakShell.uc
Normal file
@@ -0,0 +1,10 @@
|
||||
class DamType_FlakShell extends DamType_Flak;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
FemaleSuicide="%o blew herself up with a flak shell."
|
||||
MaleSuicide="%o blew himself up with a flak shell."
|
||||
bDetonatesGoop=True
|
||||
bThrowRagdoll=True
|
||||
GibPerterbation=0.250000
|
||||
}
|
||||
16
Sources/Classes/DamType_Hammer.uc
Normal file
16
Sources/Classes/DamType_Hammer.uc
Normal file
@@ -0,0 +1,16 @@
|
||||
class DamType_Hammer extends WeaponDamageType
|
||||
abstract;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
WeaponClass=Class'UT2341WeaponsReducedv1a.UT2341Hammer'
|
||||
DeathString="%o got smeared by %k's piston."
|
||||
FemaleSuicide="%o threw her weight around once too often."
|
||||
MaleSuicide="%o threw his weight around once too often."
|
||||
bAlwaysGibs=True
|
||||
bDetonatesGoop=True
|
||||
bKUseOwnDeathVel=True
|
||||
KDamageImpulse=1000.000000
|
||||
KDeathVel=850.000000
|
||||
KDeathUpKick=300.000000
|
||||
}
|
||||
15
Sources/Classes/DamType_MinigunBullet.uc
Normal file
15
Sources/Classes/DamType_MinigunBullet.uc
Normal file
@@ -0,0 +1,15 @@
|
||||
class DamType_MinigunBullet extends WeaponDamageType
|
||||
abstract;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
WeaponClass=Class'UT2341WeaponsReducedv1a.UT2341Minigun'
|
||||
DeathString="%k's minigun turned %o into a leaky piece of meat."
|
||||
FemaleSuicide="%o turned the minigun on herself."
|
||||
MaleSuicide="%o turned the minigun on himself."
|
||||
bRagdollBullet=True
|
||||
bBulletHit=True
|
||||
FlashFog=(X=600.000000)
|
||||
KDamageImpulse=2000.000000
|
||||
VehicleDamageScaling=0.650000
|
||||
}
|
||||
21
Sources/Classes/DamType_Pulse.uc
Normal file
21
Sources/Classes/DamType_Pulse.uc
Normal file
@@ -0,0 +1,21 @@
|
||||
class DamType_Pulse extends WeaponDamageType
|
||||
abstract;
|
||||
|
||||
static function GetHitEffects(out class<xEmitter> HitEffects[4], int VictemHealth )
|
||||
{
|
||||
HitEffects[0] = class'HitSmoke';
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
WeaponClass=Class'UT2341WeaponsReducedv1a.UT2341PulseGun'
|
||||
DeathString="%o ate %k's burning plasma death."
|
||||
FemaleSuicide="%o fried herself with her own plasma blast."
|
||||
MaleSuicide="%o fried himself with his own plasma blast."
|
||||
bDetonatesGoop=True
|
||||
bDelayedDamage=True
|
||||
FlashFog=(X=700.000000)
|
||||
DamageOverlayMaterial=Shader'XGameShaders.PlayerShaders.LinkHit'
|
||||
DamageOverlayTime=0.500000
|
||||
VehicleDamageScaling=0.670000
|
||||
}
|
||||
21
Sources/Classes/DamType_RipperBlade.uc
Normal file
21
Sources/Classes/DamType_RipperBlade.uc
Normal file
@@ -0,0 +1,21 @@
|
||||
/*************************************************************
|
||||
*
|
||||
*
|
||||
*
|
||||
*************************************************************/
|
||||
|
||||
class DamType_RipperBlade extends WeaponDamageType;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
WeaponClass=Class'UT2341WeaponsReducedv1a.UT2341Ripper'
|
||||
DeathString="%k ripped a chunk of meat out of %o with the Ripper."
|
||||
FemaleSuicide="%o shredded herself."
|
||||
MaleSuicide="%o shredded himself."
|
||||
bAlwaysSevers=True
|
||||
bRagdollBullet=True
|
||||
bBulletHit=True
|
||||
GibPerterbation=1.000000
|
||||
KDamageImpulse=6000.000000
|
||||
VehicleDamageScaling=0.000000
|
||||
}
|
||||
42
Sources/Classes/DamType_RipperBladeHead.uc
Normal file
42
Sources/Classes/DamType_RipperBladeHead.uc
Normal file
@@ -0,0 +1,42 @@
|
||||
/*************************************************************
|
||||
*
|
||||
*
|
||||
*
|
||||
*************************************************************/
|
||||
class DamType_RipperBladeHead extends WeaponDamageType
|
||||
abstract;
|
||||
|
||||
var class<LocalMessage> KillerMessage;
|
||||
|
||||
static function IncrementKills(Controller Killer)
|
||||
{
|
||||
local xPlayerReplicationInfo xPRI;
|
||||
|
||||
if ( PlayerController(Killer) == None )
|
||||
return;
|
||||
|
||||
PlayerController(Killer).ReceiveLocalizedMessage( Default.KillerMessage, 0, Killer.PlayerReplicationInfo, None, None );
|
||||
xPRI = xPlayerReplicationInfo(Killer.PlayerReplicationInfo);
|
||||
if ( xPRI != None )
|
||||
{
|
||||
xPRI.headcount++;
|
||||
if ( (xPRI.headcount == 15) && (UnrealPlayer(Killer) != None) )
|
||||
UnrealPlayer(Killer).ClientDelayedAnnouncementNamed('HeadHunter',15);
|
||||
}
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
KillerMessage=Class'XGame.SpecialKillMessage'
|
||||
WeaponClass=Class'UT2341WeaponsReducedv1a.UT2341Ripper'
|
||||
DeathString="%k took off %o's head with the Ripper."
|
||||
FemaleSuicide="%o took her own head off with a razorblade."
|
||||
MaleSuicide="%o took his own head off with a razorblade."
|
||||
bAlwaysSevers=True
|
||||
bSpecial=True
|
||||
bRagdollBullet=True
|
||||
bBulletHit=True
|
||||
GibPerterbation=1.000000
|
||||
KDamageImpulse=6000.000000
|
||||
VehicleDamageScaling=0.000000
|
||||
}
|
||||
27
Sources/Classes/DamType_Rocket.uc
Normal file
27
Sources/Classes/DamType_Rocket.uc
Normal file
@@ -0,0 +1,27 @@
|
||||
class DamType_Rocket extends WeaponDamageType
|
||||
abstract;
|
||||
|
||||
static function GetHitEffects(out class<xEmitter> HitEffects[4], int VictimHealth )
|
||||
{
|
||||
HitEffects[0] = class'HitSmoke';
|
||||
|
||||
if( VictimHealth <= 0 )
|
||||
HitEffects[1] = class'HitFlameBig';
|
||||
else if ( FRand() < 0.8 )
|
||||
HitEffects[1] = class'HitFlame';
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
WeaponClass=Class'UT2341WeaponsReducedv1a.UT2341RocketLauncher'
|
||||
DeathString="%o was smacked down by %k's rocket launcher."
|
||||
FemaleSuicide="%o fired her rocket prematurely."
|
||||
MaleSuicide="%o fired his rocket prematurely."
|
||||
bDetonatesGoop=True
|
||||
bDelayedDamage=True
|
||||
bThrowRagdoll=True
|
||||
bFlaming=True
|
||||
GibPerterbation=0.150000
|
||||
KDamageImpulse=20000.000000
|
||||
VehicleMomentumScaling=1.300000
|
||||
}
|
||||
14
Sources/Classes/DamType_ShockRifleBeam.uc
Normal file
14
Sources/Classes/DamType_ShockRifleBeam.uc
Normal file
@@ -0,0 +1,14 @@
|
||||
/*************************************************************
|
||||
*
|
||||
*
|
||||
*
|
||||
*************************************************************/
|
||||
|
||||
class DamType_ShockRifleBeam extends DamTypeShockBeam;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
WeaponClass=Class'UT2341WeaponsReducedv1a.UT2341ShockRifle'
|
||||
DeathString="%k inflicted mortal damage upon %o with the shock rifle."
|
||||
DamageOverlayMaterial=Shader'UT2341Weapons_Tex.ASMD.ASMDShockHitShader'
|
||||
}
|
||||
13
Sources/Classes/DamType_ShockRifleProjectile.uc
Normal file
13
Sources/Classes/DamType_ShockRifleProjectile.uc
Normal file
@@ -0,0 +1,13 @@
|
||||
/*************************************************************
|
||||
*
|
||||
*
|
||||
*
|
||||
*************************************************************/
|
||||
|
||||
class DamType_ShockRifleProjectile extends DamTypeShockBall;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
WeaponClass=Class'UT2341WeaponsReducedv1a.UT2341ShockRifle'
|
||||
DamageOverlayMaterial=Shader'UT2341Weapons_Tex.ASMD.ASMDShockHitShader'
|
||||
}
|
||||
12
Sources/Classes/DamType_ShockRifleProjectileCombo.uc
Normal file
12
Sources/Classes/DamType_ShockRifleProjectileCombo.uc
Normal file
@@ -0,0 +1,12 @@
|
||||
/*************************************************************
|
||||
*
|
||||
*
|
||||
*
|
||||
*************************************************************/
|
||||
|
||||
class DamType_ShockRifleProjectileCombo extends DamTypeShockCombo;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
WeaponClass=Class'UT2341WeaponsReducedv1a.UT2341ShockRifle'
|
||||
}
|
||||
16
Sources/Classes/DamType_SniperHeadShot.uc
Normal file
16
Sources/Classes/DamType_SniperHeadShot.uc
Normal file
@@ -0,0 +1,16 @@
|
||||
/*************************************************************
|
||||
*
|
||||
*
|
||||
*
|
||||
*************************************************************/
|
||||
|
||||
class DamType_SniperHeadShot extends DamTypeClassicHeadshot;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
WeaponClass=Class'UT2341WeaponsReducedv1a.UT2341SniperRifle'
|
||||
DeathString="%k put a bullet in %o's head."
|
||||
DamageOverlayTime=0.900000
|
||||
GibPerterbation=1.000000
|
||||
VehicleDamageScaling=0.850000
|
||||
}
|
||||
17
Sources/Classes/DamType_SniperShot.uc
Normal file
17
Sources/Classes/DamType_SniperShot.uc
Normal file
@@ -0,0 +1,17 @@
|
||||
/*************************************************************
|
||||
*
|
||||
*
|
||||
*
|
||||
*************************************************************/
|
||||
|
||||
class DamType_SniperShot extends DamTypeClassicSniper;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
WeaponClass=Class'UT2341WeaponsReducedv1a.UT2341SniperRifle'
|
||||
DeathString="%k put a hole in %o."
|
||||
bRagdollBullet=True
|
||||
GibPerterbation=1.000000
|
||||
KDamageImpulse=4000.000000
|
||||
VehicleDamageScaling=0.250000
|
||||
}
|
||||
18
Sources/Classes/DamType_SuperShockRifleBeam.uc
Normal file
18
Sources/Classes/DamType_SuperShockRifleBeam.uc
Normal file
@@ -0,0 +1,18 @@
|
||||
/*************************************************************
|
||||
*
|
||||
*
|
||||
*
|
||||
*************************************************************/
|
||||
|
||||
class DamType_SuperShockRifleBeam extends DamTypeShockBeam;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
WeaponClass=Class'UT2341WeaponsReducedv1a.UT2341SuperShockRifle'
|
||||
DeathString="%k inflicted mortal damage upon %o with the shock rifle."
|
||||
bLocationalHit=False
|
||||
bAlwaysSevers=True
|
||||
DamageOverlayMaterial=Shader'UT2341Weapons_Tex.SuperShock.SuperShockHitShader'
|
||||
VehicleDamageScaling=0.050000
|
||||
VehicleMomentumScaling=0.050000
|
||||
}
|
||||
27
Sources/Classes/EnforcerShellCasing.uc
Normal file
27
Sources/Classes/EnforcerShellCasing.uc
Normal file
@@ -0,0 +1,27 @@
|
||||
class EnforcerShellCasing extends Actor;
|
||||
|
||||
var RangeVector StartVelocityRange;
|
||||
|
||||
simulated function PostBeginPlay()
|
||||
{
|
||||
Velocity.X = StartVelocityRange.X.Min + FRand() * (StartVelocityRange.X.Max - StartVelocityRange.X.Min);
|
||||
Velocity.Y = StartVelocityRange.Y.Min + FRand() * (StartVelocityRange.Y.Max - StartVelocityRange.Y.Min);
|
||||
Velocity.Z = StartVelocityRange.Z.Min + FRand() * (StartVelocityRange.Z.Max - StartVelocityRange.Z.Min);
|
||||
Velocity = Velocity >> Rotation;
|
||||
}
|
||||
|
||||
simulated function Landed(vector HitLocation)
|
||||
{
|
||||
Destroy();
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
StartVelocityRange=(X=(Min=-25.000000,Max=100.000000),Y=(Min=-250.000000,Max=250.000000),Z=(Min=200.000000,Max=300.000000))
|
||||
DrawType=DT_StaticMesh
|
||||
StaticMesh=StaticMesh'UT2341Weapons_SM.shell.ShellcasingX'
|
||||
Physics=PHYS_Falling
|
||||
LifeSpan=1.000000
|
||||
CollisionRadius=0.000000
|
||||
CollisionHeight=0.000000
|
||||
}
|
||||
87
Sources/Classes/FX_BioExplosion.uc
Normal file
87
Sources/Classes/FX_BioExplosion.uc
Normal file
@@ -0,0 +1,87 @@
|
||||
class FX_BioExplosion extends Emitter;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter0
|
||||
UseCollision=True
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
Acceleration=(Z=-650.000000)
|
||||
DampingFactorRange=(X=(Min=0.700000,Max=0.700000),Y=(Min=0.700000,Max=0.700000),Z=(Min=0.700000,Max=0.700000))
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.600000,Max=0.600000),Z=(Min=0.400000,Max=0.400000))
|
||||
Opacity=0.850000
|
||||
FadeOutStartTime=0.800000
|
||||
SpinCCWorCW=(X=0.750000)
|
||||
SpinsPerSecondRange=(X=(Min=0.500000,Max=1.000000),Y=(Min=0.500000,Max=1.000000),Z=(Min=0.500000,Max=1.000000))
|
||||
StartSpinRange=(X=(Max=1.000000),Y=(Max=1.000000),Z=(Max=1.000000))
|
||||
SizeScale(0)=(RelativeTime=0.140000,RelativeSize=0.100000)
|
||||
SizeScaleRepeats=1.000000
|
||||
StartSizeRange=(X=(Min=18.000000,Max=18.000000),Y=(Min=18.000000,Max=18.000000),Z=(Min=18.000000,Max=18.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'AW-2004Particles.Weapons.PlasmaStar'
|
||||
LifetimeRange=(Min=2.000000,Max=2.000000)
|
||||
StartVelocityRange=(X=(Min=-300.000000,Max=300.000000),Y=(Min=-300.000000,Max=300.000000),Z=(Min=-100.000000,Max=500.000000))
|
||||
End Object
|
||||
Emitters(0)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_BioExplosion.SpriteEmitter0'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter1
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
BlendBetweenSubdivisions=True
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.000000,Max=0.000000),Z=(Min=0.300000,Max=0.300000))
|
||||
Opacity=0.600000
|
||||
FadeOutStartTime=0.380000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=2
|
||||
SpinsPerSecondRange=(X=(Min=0.100000,Max=0.100000))
|
||||
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=6.000000)
|
||||
StartSizeRange=(X=(Min=14.000000,Max=14.000000),Y=(Min=14.000000,Max=14.000000),Z=(Min=14.000000,Max=14.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'ExplosionTex.Framed.exp7_frames'
|
||||
TextureUSubdivisions=4
|
||||
TextureVSubdivisions=4
|
||||
LifetimeRange=(Min=1.000000,Max=1.000000)
|
||||
End Object
|
||||
Emitters(1)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_BioExplosion.SpriteEmitter1'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter4
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.600000,Max=0.600000),Z=(Min=0.580000,Max=0.580000))
|
||||
Opacity=0.430000
|
||||
FadeOutStartTime=0.460000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
SpinsPerSecondRange=(X=(Max=0.100000))
|
||||
StartSpinRange=(X=(Max=1.000000))
|
||||
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=3.000000)
|
||||
StartSizeRange=(X=(Min=35.000000,Max=35.000000),Y=(Min=35.000000,Max=35.000000),Z=(Min=35.000000,Max=35.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'EpicParticles.Flares.FlashFlare1'
|
||||
LifetimeRange=(Min=1.000000,Max=1.000000)
|
||||
End Object
|
||||
Emitters(2)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_BioExplosion.SpriteEmitter4'
|
||||
|
||||
bNoDelete=False
|
||||
}
|
||||
108
Sources/Classes/FX_EnforcerMuzFlash.uc
Normal file
108
Sources/Classes/FX_EnforcerMuzFlash.uc
Normal file
@@ -0,0 +1,108 @@
|
||||
class FX_EnforcerMuzFlash extends Emitter;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter4
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
TriggerDisabled=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
Opacity=0.250000
|
||||
FadeOutStartTime=0.126000
|
||||
MaxParticles=1
|
||||
SpinsPerSecondRange=(X=(Min=0.100000,Max=0.100000))
|
||||
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=3.000000)
|
||||
StartSizeRange=(X=(Min=8.000000,Max=8.000000),Y=(Min=8.000000,Max=8.000000),Z=(Min=20.000000,Max=20.000000))
|
||||
DrawStyle=PTDS_AlphaBlend
|
||||
Texture=Texture'EpicParticles.Smoke.Smokepuff'
|
||||
LifetimeRange=(Min=1.400000,Max=1.400000)
|
||||
SpawnOnTriggerRange=(Min=1.000000,Max=1.000000)
|
||||
SpawnOnTriggerPPS=50000.000000
|
||||
End Object
|
||||
Emitters(0)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_EnforcerMuzFlash.SpriteEmitter4'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter5
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
TriggerDisabled=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(Y=(Min=0.900000,Max=0.900000),Z=(Min=0.000000,Max=0.000000))
|
||||
Opacity=0.380000
|
||||
FadeOutStartTime=0.030300
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
SpinsPerSecondRange=(X=(Min=-0.400000,Max=-0.400000))
|
||||
StartSizeRange=(X=(Min=15.000000,Max=15.000000),Y=(Min=15.000000,Max=15.000000),Z=(Min=15.000000,Max=15.000000))
|
||||
Texture=Texture'AW-2004Particles.Fire.SmokeFragment'
|
||||
LifetimeRange=(Min=0.201000,Max=0.201000)
|
||||
SpawnOnTriggerRange=(Min=1.000000,Max=1.000000)
|
||||
SpawnOnTriggerPPS=50000.000000
|
||||
End Object
|
||||
Emitters(1)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_EnforcerMuzFlash.SpriteEmitter5'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter6
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
TriggerDisabled=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(Y=(Min=0.600000,Max=0.600000),Z=(Min=0.300000,Max=0.300000))
|
||||
Opacity=0.390000
|
||||
FadeOutStartTime=0.110550
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
SpinsPerSecondRange=(X=(Min=0.300000,Max=0.300000))
|
||||
SizeScale(0)=(RelativeTime=0.370000,RelativeSize=2.000000)
|
||||
StartSizeRange=(X=(Min=25.000000,Max=25.000000),Y=(Min=40.000000,Max=40.000000),Z=(Min=40.000000,Max=40.000000))
|
||||
Texture=Texture'EpicParticles.Flares.FlashFlare1'
|
||||
LifetimeRange=(Min=0.201000,Max=0.201000)
|
||||
SpawnOnTriggerRange=(Min=1.000000,Max=1.000000)
|
||||
SpawnOnTriggerPPS=50000.000000
|
||||
End Object
|
||||
Emitters(2)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_EnforcerMuzFlash.SpriteEmitter6'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter8
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
TriggerDisabled=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(Y=(Min=0.400000,Max=0.400000),Z=(Min=0.300000,Max=0.300000))
|
||||
Opacity=0.630000
|
||||
FadeOutStartTime=0.080400
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
SpinsPerSecondRange=(X=(Min=0.500000,Max=0.500000))
|
||||
SizeScale(0)=(RelativeTime=0.140000,RelativeSize=2.000000)
|
||||
StartSizeRange=(X=(Min=8.000000,Max=8.000000),Y=(Min=8.000000,Max=8.000000),Z=(Min=8.000000,Max=8.000000))
|
||||
Texture=Texture'XEffects.Skins.MuzFlashRocket_t'
|
||||
LifetimeRange=(Min=0.201000,Max=0.201000)
|
||||
SpawnOnTriggerRange=(Min=1.000000,Max=1.000000)
|
||||
SpawnOnTriggerPPS=50000.000000
|
||||
End Object
|
||||
Emitters(3)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_EnforcerMuzFlash.SpriteEmitter8'
|
||||
|
||||
bNoDelete=False
|
||||
bHardAttach=True
|
||||
}
|
||||
29
Sources/Classes/FX_FlakChunkGlow.uc
Normal file
29
Sources/Classes/FX_FlakChunkGlow.uc
Normal file
@@ -0,0 +1,29 @@
|
||||
//=============================================================================
|
||||
// FlakTrail
|
||||
//=============================================================================
|
||||
class FX_FlakChunkGlow extends Emitter;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter0
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(Y=(Min=0.500000,Max=0.500000),Z=(Min=0.000000,Max=0.000000))
|
||||
Opacity=0.280000
|
||||
FadeOutStartTime=0.040000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
StartSizeRange=(X=(Min=10.000000,Max=10.000000),Y=(Min=10.000000,Max=10.000000),Z=(Min=10.000000,Max=10.000000))
|
||||
InitialParticlesPerSecond=5000.000000
|
||||
Texture=Texture'AW-2004Particles.Weapons.BoloBlob'
|
||||
LifetimeRange=(Min=1.000000,Max=1.000000)
|
||||
End Object
|
||||
Emitters(0)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_FlakChunkGlow.SpriteEmitter0'
|
||||
|
||||
AutoDestroy=True
|
||||
bNoDelete=False
|
||||
}
|
||||
45
Sources/Classes/FX_PickupRespawn.uc
Normal file
45
Sources/Classes/FX_PickupRespawn.uc
Normal file
@@ -0,0 +1,45 @@
|
||||
class FX_PickupRespawn extends Emitter;
|
||||
|
||||
simulated function PostBeginPlay()
|
||||
{
|
||||
Super.PostBeginPlay();
|
||||
if ( Level.NetMode == NM_DedicatedServer )
|
||||
LifeSpan = 0.15;
|
||||
else if ( Level.GetLocalPlayerController().BeyondViewDistance(Location, CullDistance) )
|
||||
LifeSpan = 0.01;
|
||||
else
|
||||
PlaySound(sound'WeaponSounds.item_respawn');
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter1
|
||||
UseCollision=True
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
Acceleration=(Z=3.000000)
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
FadeOutStartTime=0.220000
|
||||
MaxParticles=14
|
||||
StartLocationRange=(X=(Min=-20.000000,Max=20.000000),Y=(Min=-20.000000,Max=20.000000),Z=(Min=-12.000000,Max=12.000000))
|
||||
SpinCCWorCW=(X=0.750000)
|
||||
SpinsPerSecondRange=(X=(Min=0.500000,Max=1.000000),Y=(Min=0.500000,Max=1.000000),Z=(Min=0.500000,Max=1.000000))
|
||||
StartSpinRange=(X=(Max=1.000000),Y=(Max=1.000000),Z=(Max=1.000000))
|
||||
SizeScaleRepeats=1.000000
|
||||
StartSizeRange=(X=(Min=16.000000,Max=16.000000),Y=(Min=16.000000,Max=16.000000),Z=(Min=16.000000,Max=16.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'AW-2004Particles.Weapons.PlasmaStar'
|
||||
LifetimeRange=(Min=1.200000,Max=1.200000)
|
||||
InitialDelayRange=(Min=0.400000,Max=0.400000)
|
||||
StartVelocityRange=(X=(Min=-8.000000,Max=8.000000),Y=(Min=-8.000000,Max=8.000000))
|
||||
End Object
|
||||
Emitters(0)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_PickupRespawn.SpriteEmitter1'
|
||||
|
||||
AutoDestroy=True
|
||||
bNoDelete=False
|
||||
}
|
||||
155
Sources/Classes/FX_PulseBeamEnd.uc
Normal file
155
Sources/Classes/FX_PulseBeamEnd.uc
Normal file
@@ -0,0 +1,155 @@
|
||||
class FX_PulseBeamEnd extends Emitter;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
Begin Object Class=BeamEmitter Name=BeamEmitter0
|
||||
BeamDistanceRange=(Min=70.000000,Max=70.000000)
|
||||
DetermineEndPointBy=PTEP_Distance
|
||||
RotatingSheets=1
|
||||
LowFrequencyNoiseRange=(X=(Max=10.000000),Y=(Max=10.000000),Z=(Max=10.000000))
|
||||
LowFrequencyPoints=2
|
||||
HighFrequencyNoiseRange=(X=(Min=-8.000000,Max=8.000000),Y=(Min=-8.000000,Max=8.000000),Z=(Min=-8.000000,Max=8.000000))
|
||||
HighFrequencyPoints=4
|
||||
HFScaleFactors(0)=(FrequencyScale=(X=0.400000,Y=0.400000,Z=0.400000),RelativeLength=0.280000)
|
||||
HFScaleRepeats=10.000000
|
||||
UseHighFrequencyScale=True
|
||||
BranchProbability=(Min=1.000000,Max=1.000000)
|
||||
BranchSpawnAmountRange=(Min=5.000000,Max=5.000000)
|
||||
LinkupLifetime=True
|
||||
FadeOut=True
|
||||
FadeIn=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.000000,Max=0.500000),Z=(Min=0.000000,Max=0.000000))
|
||||
Opacity=0.460000
|
||||
FadeOutStartTime=2.000000
|
||||
FadeInEndTime=2.000000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
StartLocationShape=PTLS_Sphere
|
||||
SphereRadiusRange=(Max=5.000000)
|
||||
SizeScale(0)=(RelativeTime=0.500000,RelativeSize=-1.000000)
|
||||
SizeScaleRepeats=1.000000
|
||||
StartSizeRange=(X=(Min=10.000000,Max=10.000000),Y=(Min=10.000000,Max=10.000000),Z=(Min=10.000000,Max=10.000000))
|
||||
InitialParticlesPerSecond=10.000000
|
||||
Texture=Texture'AW-2004Particles.Energy.BeamBolt1a'
|
||||
LifetimeRange=(Min=0.601000,Max=0.601000)
|
||||
StartVelocityRange=(X=(Min=-20.000000,Max=20.000000),Y=(Min=-20.000000,Max=20.000000),Z=(Min=-20.000000,Max=20.000000))
|
||||
End Object
|
||||
Emitters(0)=BeamEmitter'UT2341WeaponsReducedv1a.FX_PulseBeamEnd.BeamEmitter0'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter5
|
||||
SpinParticles=True
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.900000,Max=0.900000),Y=(Min=0.800000,Max=0.800000),Z=(Min=0.700000,Max=0.700000))
|
||||
Opacity=0.780000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
SpinCCWorCW=(X=0.680000)
|
||||
SpinsPerSecondRange=(X=(Min=4.700000,Max=4.700000))
|
||||
StartSizeRange=(X=(Min=10.000000,Max=10.000000),Y=(Min=10.000000,Max=10.000000),Z=(Min=10.000000,Max=10.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'AW-2004Particles.Weapons.LargeSpot'
|
||||
LifetimeRange=(Min=9.000000,Max=9.000000)
|
||||
End Object
|
||||
Emitters(1)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_PulseBeamEnd.SpriteEmitter5'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter6
|
||||
SpinParticles=True
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.000000,Max=0.300000),Y=(Min=0.800000,Max=0.800000),Z=(Min=0.500000,Max=0.500000))
|
||||
Opacity=0.260000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
SpinCCWorCW=(X=0.680000)
|
||||
SpinsPerSecondRange=(X=(Min=4.700000,Max=4.700000))
|
||||
StartSizeRange=(X=(Min=24.000000,Max=24.000000),Y=(Min=24.000000,Max=24.000000),Z=(Min=24.000000,Max=24.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'AW-2004Particles.Weapons.BoloBlob'
|
||||
LifetimeRange=(Min=9.000000,Max=9.000000)
|
||||
End Object
|
||||
Emitters(2)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_PulseBeamEnd.SpriteEmitter6'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter0
|
||||
SpinParticles=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.000000,Max=0.300000),Z=(Min=0.000000,Max=0.200000))
|
||||
Opacity=0.910000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
SpinCCWorCW=(X=0.680000)
|
||||
SpinsPerSecondRange=(X=(Min=-4.700000,Max=-4.700000))
|
||||
StartSpinRange=(X=(Min=-1.000000,Max=1.000000))
|
||||
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=2.000000)
|
||||
SizeScale(1)=(RelativeTime=1.000000,RelativeSize=1.000000)
|
||||
StartSizeRange=(X=(Min=42.000000,Max=42.000000),Y=(Min=42.000000,Max=42.000000),Z=(Min=42.000000,Max=42.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'AW-2004Particles.Energy.BurnFlare'
|
||||
LifetimeRange=(Min=9.000000,Max=9.000000)
|
||||
End Object
|
||||
Emitters(3)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_PulseBeamEnd.SpriteEmitter0'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter1
|
||||
SpinParticles=True
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.000000,Max=0.100000),Z=(Min=0.000000,Max=0.000000))
|
||||
Opacity=0.810000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
SpinCCWorCW=(X=0.680000)
|
||||
SpinsPerSecondRange=(X=(Min=5.700000,Max=5.700000))
|
||||
StartSpinRange=(X=(Min=-1.000000,Max=1.000000))
|
||||
StartSizeRange=(X=(Min=54.000000,Max=54.000000),Y=(Min=54.000000,Max=54.000000),Z=(Min=54.000000,Max=54.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'EpicParticles.Flares.FlickerFlare'
|
||||
LifetimeRange=(Min=9.000000,Max=9.000000)
|
||||
End Object
|
||||
Emitters(4)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_PulseBeamEnd.SpriteEmitter1'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter2
|
||||
UseCollision=True
|
||||
FadeOut=True
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
Acceleration=(Z=-50.000000)
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.200000,Max=0.200000),Z=(Min=0.400000,Max=0.400000))
|
||||
Opacity=0.400000
|
||||
FadeOutStartTime=0.450000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=9
|
||||
SpinCCWorCW=(X=0.750000)
|
||||
SpinsPerSecondRange=(X=(Min=0.500000,Max=1.000000),Y=(Min=0.500000,Max=1.000000),Z=(Min=0.500000,Max=1.000000))
|
||||
StartSpinRange=(X=(Max=1.000000),Y=(Max=1.000000),Z=(Max=1.000000))
|
||||
SizeScale(0)=(RelativeTime=0.140000,RelativeSize=0.100000)
|
||||
SizeScaleRepeats=1.000000
|
||||
StartSizeRange=(X=(Min=7.000000,Max=7.000000),Y=(Min=7000000.000000,Max=7.000000),Z=(Min=7.000000,Max=7.000000))
|
||||
ParticlesPerSecond=10.000000
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'AW-2004Particles.Weapons.PlasmaStar'
|
||||
LifetimeRange=(Min=1.000000,Max=1.000000)
|
||||
StartVelocityRange=(X=(Min=-35.000000,Max=45000000.000000),Y=(Min=-45.000000,Max=45.000000),Z=(Min=-35.000000,Max=80.000000))
|
||||
End Object
|
||||
Emitters(5)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_PulseBeamEnd.SpriteEmitter2'
|
||||
|
||||
bNoDelete=False
|
||||
}
|
||||
61
Sources/Classes/FX_PulseBeamFlash3rd.uc
Normal file
61
Sources/Classes/FX_PulseBeamFlash3rd.uc
Normal file
@@ -0,0 +1,61 @@
|
||||
/*************************************************************
|
||||
*
|
||||
*
|
||||
*
|
||||
*************************************************************/
|
||||
|
||||
class FX_PulseBeamFlash3rd extends Emitter;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter13
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.200000,Max=0.200000),Z=(Min=0.000000,Max=0.000000))
|
||||
Opacity=0.240000
|
||||
FadeOutStartTime=0.110550
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
SpinsPerSecondRange=(X=(Min=0.300000,Max=0.300000))
|
||||
SizeScale(0)=(RelativeTime=0.370000,RelativeSize=2.000000)
|
||||
StartSizeRange=(X=(Min=36.000000,Max=36.000000),Y=(Min=36.000000,Max=36.000000),Z=(Min=25.000000,Max=25.000000))
|
||||
ParticlesPerSecond=5.000000
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'EpicParticles.Flares.FlashFlare1'
|
||||
LifetimeRange=(Min=0.200000,Max=0.200000)
|
||||
End Object
|
||||
Emitters(0)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_PulseBeamFlash3rd.SpriteEmitter13'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter14
|
||||
FadeOut=True
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
TriggerDisabled=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.000000,Max=0.000000),Y=(Min=0.400000,Max=0.400000),Z=(Min=0.000000))
|
||||
Opacity=0.370000
|
||||
FadeOutStartTime=0.110550
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
SpinsPerSecondRange=(X=(Min=0.500000,Max=0.500000))
|
||||
SizeScale(0)=(RelativeTime=0.140000,RelativeSize=2.000000)
|
||||
StartSizeRange=(X=(Min=18.000000,Max=18.000000),Y=(Min=18.000000,Max=18.000000),Z=(Min=18.000000,Max=18.000000))
|
||||
ParticlesPerSecond=5.000000
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'XEffects.Skins.MuzFlashRocket_t'
|
||||
LifetimeRange=(Min=0.200000,Max=0.200000)
|
||||
End Object
|
||||
Emitters(1)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_PulseBeamFlash3rd.SpriteEmitter14'
|
||||
|
||||
bNoDelete=False
|
||||
bHardAttach=True
|
||||
}
|
||||
115
Sources/Classes/FX_PulseImpact.uc
Normal file
115
Sources/Classes/FX_PulseImpact.uc
Normal file
@@ -0,0 +1,115 @@
|
||||
class FX_PulseImpact extends Emitter;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter0
|
||||
UseCollision=True
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
DampRotation=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
Acceleration=(Z=-400.000000)
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.400000,Max=0.400000),Z=(Min=0.000000,Max=0.000000))
|
||||
Opacity=0.370000
|
||||
FadeOutStartTime=0.240000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=8
|
||||
SpinsPerSecondRange=(X=(Min=1.000000,Max=1.000000))
|
||||
StartSpinRange=(X=(Max=1.000000))
|
||||
RotationDampingFactorRange=(X=(Min=10.000000,Max=10.000000),Y=(Min=20.000000,Max=20.000000))
|
||||
SizeScale(0)=(RelativeTime=0.170000,RelativeSize=1.000000)
|
||||
SizeScale(1)=(RelativeTime=0.370000)
|
||||
StartSizeRange=(X=(Min=10.000000,Max=10.000000),Y=(Min=10.000000,Max=10.000000),Z=(Min=10.000000,Max=10.000000))
|
||||
InitialParticlesPerSecond=5000.000000
|
||||
Texture=Texture'AW-2004Particles.Weapons.HardSpot'
|
||||
LifetimeRange=(Min=2.000000,Max=2.000000)
|
||||
StartVelocityRange=(X=(Min=50.000000,Max=170.000000),Y=(Min=-250.000000,Max=250.000000),Z=(Min=20.000000,Max=350.000000))
|
||||
End Object
|
||||
Emitters(0)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_PulseImpact.SpriteEmitter0'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter2
|
||||
FadeOut=True
|
||||
FadeIn=True
|
||||
RespawnDeadParticles=False
|
||||
UseSizeScale=True
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.600000,Max=0.600000),Z=(Min=0.000000,Max=0.000000))
|
||||
Opacity=0.800000
|
||||
FadeOutStartTime=0.360000
|
||||
FadeInEndTime=0.360000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'AW-2004Particles.Weapons.HardSpot'
|
||||
LifetimeRange=(Min=2.000000,Max=2.000000)
|
||||
End Object
|
||||
Emitters(1)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_PulseImpact.SpriteEmitter2'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter3
|
||||
FadeOut=True
|
||||
FadeIn=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.600000,Max=0.600000),Z=(Min=0.000000,Max=0.000000))
|
||||
Opacity=0.140000
|
||||
FadeOutStartTime=0.360000
|
||||
FadeInEndTime=0.360000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=5
|
||||
SpinsPerSecondRange=(X=(Max=4.600000))
|
||||
StartSpinRange=(X=(Min=-1.000000,Max=1.000000))
|
||||
SizeScale(0)=(RelativeTime=0.070000)
|
||||
SizeScale(1)=(RelativeTime=0.370000,RelativeSize=1.000000)
|
||||
SizeScaleRepeats=1.020000
|
||||
StartSizeRange=(X=(Min=80.000000,Max=80.000000),Y=(Min=80.000000,Max=80.000000),Z=(Min=80.000000,Max=80.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'VMParticleTextures.LeviathanParticleEffects.LeviathanMGUNFlare'
|
||||
LifetimeRange=(Min=0.801000,Max=0.801000)
|
||||
End Object
|
||||
Emitters(2)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_PulseImpact.SpriteEmitter3'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter4
|
||||
FadeOut=True
|
||||
FadeIn=True
|
||||
RespawnDeadParticles=False
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.600000,Max=0.600000),Z=(Min=0.000000,Max=0.000000))
|
||||
Opacity=0.190000
|
||||
FadeOutStartTime=0.245000
|
||||
FadeInEndTime=0.225000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
SpinsPerSecondRange=(X=(Max=0.600000))
|
||||
StartSpinRange=(X=(Min=-1.000000,Max=1.000000))
|
||||
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=3.000000)
|
||||
SizeScale(1)=(RelativeTime=0.560000,RelativeSize=0.100000)
|
||||
StartSizeRange=(X=(Min=40.000000,Max=40.000000),Y=(Min=40.000000,Max=40.000000),Z=(Min=40.000000,Max=40.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'AW-2004Particles.Weapons.BoloBlob'
|
||||
LifetimeRange=(Min=0.500000,Max=0.500000)
|
||||
End Object
|
||||
Emitters(3)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_PulseImpact.SpriteEmitter4'
|
||||
|
||||
AutoDestroy=True
|
||||
bNoDelete=False
|
||||
}
|
||||
119
Sources/Classes/FX_PulseMuzFlash.uc
Normal file
119
Sources/Classes/FX_PulseMuzFlash.uc
Normal file
@@ -0,0 +1,119 @@
|
||||
/*************************************************************
|
||||
*
|
||||
*
|
||||
*
|
||||
*************************************************************/
|
||||
|
||||
class FX_PulseMuzFlash extends Emitter;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter13
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
TriggerDisabled=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.200000,Max=0.200000),Z=(Min=0.000000,Max=0.000000))
|
||||
Opacity=0.240000
|
||||
FadeOutStartTime=0.110550
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
SpinsPerSecondRange=(X=(Min=0.300000,Max=0.300000))
|
||||
SizeScale(0)=(RelativeTime=0.370000,RelativeSize=2.000000)
|
||||
StartSizeRange=(X=(Min=36.000000,Max=36.000000),Y=(Min=36.000000,Max=36.000000),Z=(Min=25.000000,Max=25.000000))
|
||||
Texture=Texture'EpicParticles.Flares.FlashFlare1'
|
||||
LifetimeRange=(Min=0.201000,Max=0.201000)
|
||||
SpawnOnTriggerRange=(Min=1.000000,Max=1.000000)
|
||||
SpawnOnTriggerPPS=50000.000000
|
||||
End Object
|
||||
Emitters(0)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_PulseMuzFlash.SpriteEmitter13'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter14
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
TriggerDisabled=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.000000,Max=0.000000),Y=(Min=0.400000,Max=0.400000),Z=(Min=0.000000))
|
||||
Opacity=0.370000
|
||||
FadeOutStartTime=0.110550
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
SpinsPerSecondRange=(X=(Min=0.500000,Max=0.500000))
|
||||
SizeScale(0)=(RelativeTime=0.140000,RelativeSize=2.000000)
|
||||
StartSizeRange=(X=(Min=18.000000,Max=18.000000),Y=(Min=18.000000,Max=18.000000),Z=(Min=18.000000,Max=18.000000))
|
||||
Texture=Texture'XEffects.Skins.MuzFlashRocket_t'
|
||||
LifetimeRange=(Min=0.201000,Max=0.201000)
|
||||
SpawnOnTriggerRange=(Min=1.000000,Max=1.000000)
|
||||
SpawnOnTriggerPPS=50000.000000
|
||||
End Object
|
||||
Emitters(1)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_PulseMuzFlash.SpriteEmitter14'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter0
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
TriggerDisabled=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.600000,Max=0.600000),Y=(Min=0.700000,Max=0.700000),Z=(Min=0.200000,Max=0.200000))
|
||||
Opacity=0.800000
|
||||
FadeOutStartTime=0.032000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=3
|
||||
SpinsPerSecondRange=(X=(Max=0.500000))
|
||||
StartSpinRange=(X=(Max=1.000000))
|
||||
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=3.000000)
|
||||
StartSizeRange=(X=(Min=9.000000,Max=9.000000),Y=(Min=9.000000,Max=9.000000),Z=(Min=9.000000,Max=9.000000))
|
||||
Texture=Texture'XEffectMat.Shock.ShockComboFlash'
|
||||
LifetimeRange=(Min=0.400000,Max=0.400000)
|
||||
SpawnOnTriggerRange=(Min=2.000000,Max=2.000000)
|
||||
SpawnOnTriggerPPS=50000.000000
|
||||
End Object
|
||||
Emitters(2)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_PulseMuzFlash.SpriteEmitter0'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter1
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
TriggerDisabled=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.300000,Max=0.300000),Z=(Min=0.000000,Max=0.000000))
|
||||
Opacity=0.810000
|
||||
FadeOutStartTime=0.032000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=3
|
||||
SpinsPerSecondRange=(X=(Max=0.500000))
|
||||
StartSpinRange=(X=(Max=1.000000))
|
||||
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=3.000000)
|
||||
StartSizeRange=(X=(Min=9.000000,Max=9.000000),Y=(Min=9.000000,Max=9.000000),Z=(Min=9.000000,Max=9.000000))
|
||||
Texture=Texture'AW-2004Particles.Energy.BurnFlare'
|
||||
LifetimeRange=(Min=0.400000,Max=0.400000)
|
||||
SpawnOnTriggerRange=(Min=2.000000,Max=2.000000)
|
||||
SpawnOnTriggerPPS=50000.000000
|
||||
End Object
|
||||
Emitters(3)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_PulseMuzFlash.SpriteEmitter1'
|
||||
|
||||
bNoDelete=False
|
||||
bHardAttach=True
|
||||
}
|
||||
145
Sources/Classes/FX_PulseProjectile.uc
Normal file
145
Sources/Classes/FX_PulseProjectile.uc
Normal file
@@ -0,0 +1,145 @@
|
||||
class FX_PulseProjectile extends Emitter;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter0
|
||||
SpinParticles=True
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.400000,Max=0.500000),Y=(Min=0.829000,Max=0.829000),Z=(Min=0.000000,Max=0.000000))
|
||||
Opacity=0.430000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
SpinCCWorCW=(X=0.680000)
|
||||
SpinsPerSecondRange=(X=(Min=0.700000,Max=0.700000))
|
||||
StartSizeRange=(X=(Min=12.000000,Max=12.000000),Y=(Min=12.000000,Max=12.000000),Z=(Min=12.000000,Max=12.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'AW-2004Particles.Energy.AirBlast'
|
||||
LifetimeRange=(Min=9.000000,Max=9.000000)
|
||||
End Object
|
||||
Emitters(0)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_PulseProjectile.SpriteEmitter0'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter2
|
||||
SpinParticles=True
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.400000,Max=0.500000),Y=(Min=0.829000,Max=0.829000),Z=(Min=0.000000,Max=0.000000))
|
||||
Opacity=0.430000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
SpinCCWorCW=(X=0.680000)
|
||||
SpinsPerSecondRange=(X=(Min=-1.900000,Max=-1.900000))
|
||||
StartSizeRange=(X=(Min=10.000000,Max=10.000000),Y=(Min=10.000000,Max=10.000000),Z=(Min=10.000000,Max=10.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'AW-2004Particles.Energy.EclipseCircle'
|
||||
LifetimeRange=(Min=9.000000,Max=9.000000)
|
||||
End Object
|
||||
Emitters(1)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_PulseProjectile.SpriteEmitter2'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter3
|
||||
SpinParticles=True
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.400000,Max=0.500000),Y=(Min=0.829000,Max=0.829000),Z=(Min=0.000000,Max=0.000000))
|
||||
Opacity=0.930000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
SpinCCWorCW=(X=1.000000)
|
||||
SpinsPerSecondRange=(X=(Min=-4.000000,Max=-4.000000))
|
||||
StartSizeRange=(X=(Min=10.000000,Max=10.000000),Y=(Min=10.000000,Max=10.000000),Z=(Min=10.000000,Max=10.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'AW-2004Particles.Energy.BurnFlare'
|
||||
LifetimeRange=(Min=9.000000,Max=9.000000)
|
||||
End Object
|
||||
Emitters(2)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_PulseProjectile.SpriteEmitter3'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter6
|
||||
SpinParticles=True
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.400000,Max=0.900000),Y=(Min=0.829000,Max=0.829000),Z=(Min=0.000000,Max=0.000000))
|
||||
Opacity=0.930000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
SpinCCWorCW=(X=1.000000)
|
||||
SpinsPerSecondRange=(X=(Min=6.000000,Max=6.000000))
|
||||
StartSizeRange=(X=(Min=10.000000,Max=10.000000),Y=(Min=10.000000,Max=10.000000),Z=(Min=10.000000,Max=10.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'AW-2004Particles.Energy.BurnFlare'
|
||||
LifetimeRange=(Min=9.000000,Max=9.000000)
|
||||
End Object
|
||||
Emitters(3)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_PulseProjectile.SpriteEmitter6'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter7
|
||||
SpinParticles=True
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.400000,Max=0.900000),Y=(Min=0.829000,Max=0.829000),Z=(Min=0.000000,Max=0.000000))
|
||||
Opacity=0.390000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
SpinCCWorCW=(X=1.000000)
|
||||
SpinsPerSecondRange=(X=(Min=6.000000,Max=6.000000))
|
||||
StartSizeRange=(X=(Min=14.000000,Max=14.000000),Y=(Min=14.000000,Max=14.000000),Z=(Min=14.000000,Max=14.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'XEffectMat.Shock.shock_flare_a'
|
||||
LifetimeRange=(Min=9.000000,Max=9.000000)
|
||||
End Object
|
||||
Emitters(4)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_PulseProjectile.SpriteEmitter7'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter8
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.400000,Max=0.400000),Y=(Min=0.829000,Max=0.829000),Z=(Min=0.000000,Max=0.000000))
|
||||
Opacity=0.140000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
SpinCCWorCW=(X=1.000000)
|
||||
SpinsPerSecondRange=(X=(Min=0.200000,Max=0.200000))
|
||||
SizeScaleRepeats=10.000000
|
||||
StartSizeRange=(X=(Min=40.000000,Max=40.000000),Y=(Min=40.000000,Max=40.000000),Z=(Min=40.000000,Max=40.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'AW-2004Particles.Weapons.PlasmaStar2'
|
||||
LifetimeRange=(Min=9.000000,Max=9.000000)
|
||||
End Object
|
||||
Emitters(5)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_PulseProjectile.SpriteEmitter8'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter9
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.400000,Max=0.900000),Y=(Min=0.829000,Max=0.829000),Z=(Min=0.000000,Max=0.000000))
|
||||
Opacity=0.140000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
SpinCCWorCW=(X=1.000000)
|
||||
SpinsPerSecondRange=(X=(Min=-0.200000,Max=-0.200000))
|
||||
SizeScaleRepeats=10.000000
|
||||
StartSizeRange=(X=(Min=40.000000,Max=40.000000),Y=(Min=40.000000,Max=40.000000),Z=(Min=40.000000,Max=40.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'AW-2004Particles.Weapons.PlasmaStar2'
|
||||
LifetimeRange=(Min=9.000000,Max=9.000000)
|
||||
End Object
|
||||
Emitters(6)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_PulseProjectile.SpriteEmitter9'
|
||||
|
||||
bNoDelete=False
|
||||
}
|
||||
145
Sources/Classes/FX_PulseProjectileNew.uc
Normal file
145
Sources/Classes/FX_PulseProjectileNew.uc
Normal file
@@ -0,0 +1,145 @@
|
||||
class FX_PulseProjectileNew extends Emitter;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter42
|
||||
SpinParticles=True
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.400000,Max=0.500000),Y=(Min=0.829000,Max=0.829000),Z=(Min=0.000000,Max=0.000000))
|
||||
Opacity=0.330000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
SpinCCWorCW=(X=0.680000)
|
||||
SpinsPerSecondRange=(X=(Min=0.700000,Max=0.700000))
|
||||
StartSizeRange=(X=(Min=13.799999,Max=13.799999),Y=(Min=13.799999,Max=13.799999),Z=(Min=13.799999,Max=13.799999))
|
||||
ParticlesPerSecond=1.000000
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'AW-2004Particles.Energy.AirBlast'
|
||||
LifetimeRange=(Min=1.000000,Max=1.000000)
|
||||
WarmupTicksPerSecond=2.000000
|
||||
RelativeWarmupTime=1.000000
|
||||
End Object
|
||||
Emitters(0)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_PulseProjectileNew.SpriteEmitter42'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter43
|
||||
FadeOut=True
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.400000,Max=0.500000),Y=(Min=0.829000,Max=0.829000),Z=(Min=0.000000,Max=0.000000))
|
||||
Opacity=0.280000
|
||||
FadeOutStartTime=0.255510
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=4
|
||||
SpinCCWorCW=(X=0.680000)
|
||||
SpinsPerSecondRange=(X=(Min=-1.900000,Max=-1.900000))
|
||||
SizeScale(1)=(RelativeTime=1.000000,RelativeSize=2.000000)
|
||||
StartSizeRange=(X=(Min=8.050000,Max=8.050000),Y=(Min=8.050000,Max=8.050000),Z=(Min=8.050000,Max=8.050000))
|
||||
ParticlesPerSecond=2.000000
|
||||
InitialParticlesPerSecond=4.000000
|
||||
Texture=Texture'AW-2004Particles.Energy.EclipseCircle'
|
||||
LifetimeRange=(Min=0.501000,Max=0.501000)
|
||||
WarmupTicksPerSecond=2.000000
|
||||
RelativeWarmupTime=2.000000
|
||||
End Object
|
||||
Emitters(1)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_PulseProjectileNew.SpriteEmitter43'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter44
|
||||
SpinParticles=True
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
Opacity=0.930000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
SpinCCWorCW=(X=1.000000)
|
||||
SpinsPerSecondRange=(X=(Min=-4.000000,Max=-4.000000))
|
||||
StartSizeRange=(X=(Min=11.500000,Max=11.500000),Y=(Min=11.500000,Max=11.500000),Z=(Min=11.500000,Max=11.500000))
|
||||
ParticlesPerSecond=1.000000
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'AW-2004Particles.Energy.BurnFlare'
|
||||
LifetimeRange=(Min=1.000000,Max=1.000000)
|
||||
WarmupTicksPerSecond=2.000000
|
||||
RelativeWarmupTime=1.000000
|
||||
End Object
|
||||
Emitters(2)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_PulseProjectileNew.SpriteEmitter44'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter62
|
||||
SpinParticles=True
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.400000,Max=0.900000),Y=(Min=0.829000,Max=0.829000),Z=(Min=0.000000,Max=0.000000))
|
||||
Opacity=0.930000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
SpinCCWorCW=(X=1.000000)
|
||||
SpinsPerSecondRange=(X=(Min=6.000000,Max=6.000000))
|
||||
StartSizeRange=(X=(Min=11.500000,Max=11.500000),Y=(Min=11.500000,Max=11.500000),Z=(Min=11.500000,Max=11.500000))
|
||||
ParticlesPerSecond=1.000000
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'AW-2004Particles.Energy.BurnFlare'
|
||||
LifetimeRange=(Min=1.000000,Max=1.000000)
|
||||
WarmupTicksPerSecond=2.000000
|
||||
RelativeWarmupTime=1.000000
|
||||
End Object
|
||||
Emitters(3)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_PulseProjectileNew.SpriteEmitter62'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter63
|
||||
SpinParticles=True
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.400000,Max=0.900000),Y=(Min=0.829000,Max=0.829000),Z=(Min=0.000000,Max=0.000000))
|
||||
Opacity=0.410000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
SpinCCWorCW=(X=1.000000)
|
||||
SpinsPerSecondRange=(X=(Min=1.500000,Max=1.500000))
|
||||
StartSizeRange=(X=(Min=16.100000,Max=16.100000),Y=(Min=16.100000,Max=16.100000),Z=(Min=16.100000,Max=16.100000))
|
||||
ParticlesPerSecond=1.000000
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'XEffectMat.Shock.shock_flare_a'
|
||||
LifetimeRange=(Min=1.000000,Max=1.000000)
|
||||
WarmupTicksPerSecond=2.000000
|
||||
RelativeWarmupTime=1.000000
|
||||
End Object
|
||||
Emitters(4)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_PulseProjectileNew.SpriteEmitter63'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter65
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.400000,Max=0.900000),Y=(Min=0.829000,Max=0.829000),Z=(Min=0.000000,Max=0.000000))
|
||||
Opacity=0.240000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
SpinCCWorCW=(X=1.000000)
|
||||
SpinsPerSecondRange=(X=(Min=-0.200000,Max=-0.200000))
|
||||
SizeScaleRepeats=10.000000
|
||||
StartSizeRange=(X=(Min=46.000000,Max=46.000000),Y=(Min=46.000000,Max=46.000000),Z=(Min=46.000000,Max=46.000000))
|
||||
ParticlesPerSecond=1.000000
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'AW-2004Particles.Weapons.PlasmaStar2'
|
||||
LifetimeRange=(Min=1.000000,Max=1.000000)
|
||||
WarmupTicksPerSecond=2.000000
|
||||
RelativeWarmupTime=1.000000
|
||||
End Object
|
||||
Emitters(5)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_PulseProjectileNew.SpriteEmitter65'
|
||||
|
||||
bNoDelete=False
|
||||
}
|
||||
291
Sources/Classes/FX_RedeemerExplosion.uc
Normal file
291
Sources/Classes/FX_RedeemerExplosion.uc
Normal file
@@ -0,0 +1,291 @@
|
||||
class FX_RedeemerExplosion extends Emitter;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
Begin Object Class=MeshEmitter Name=MeshEmitter13
|
||||
StaticMesh=StaticMesh'Editor.TexPropSphere'
|
||||
UseMeshBlendMode=False
|
||||
UseParticleColor=True
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
Opacity=0.270000
|
||||
FadeOutStartTime=0.370000
|
||||
MaxParticles=2
|
||||
SpinCCWorCW=(X=1.000000,Y=1.000000,Z=1.000000)
|
||||
SpinsPerSecondRange=(X=(Min=1.000000,Max=14.000000),Y=(Min=1.000000,Max=4.000000),Z=(Min=1.000000,Max=4.000000))
|
||||
StartSpinRange=(X=(Min=1.000000,Max=1.000000),Y=(Max=1.000000),Z=(Min=1.000000,Max=1.000000))
|
||||
SizeScale(0)=(RelativeTime=0.370000,RelativeSize=4.500000)
|
||||
SizeScale(1)=(RelativeTime=1.000000,RelativeSize=26.000000)
|
||||
InitialParticlesPerSecond=10.000000
|
||||
LifetimeRange=(Min=1.000000,Max=1.000000)
|
||||
End Object
|
||||
Emitters(0)=MeshEmitter'UT2341WeaponsReducedv1a.FX_RedeemerExplosion.MeshEmitter13'
|
||||
|
||||
Begin Object Class=MeshEmitter Name=MeshEmitter15
|
||||
StaticMesh=StaticMesh'ParticleMeshes.Complex.ExplosionSphere'
|
||||
UseParticleColor=True
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
Opacity=0.430000
|
||||
FadeOutStartTime=0.370000
|
||||
MaxParticles=2
|
||||
StartSpinRange=(X=(Min=1.000000,Max=1.000000),Y=(Min=1.000000,Max=1.000000),Z=(Min=1.000000,Max=1.000000))
|
||||
SizeScale(0)=(RelativeTime=0.370000,RelativeSize=4.500000)
|
||||
SizeScale(1)=(RelativeTime=1.000000,RelativeSize=26.000000)
|
||||
StartSizeRange=(X=(Min=0.470000,Max=0.470000),Y=(Min=0.470000,Max=0.470000),Z=(Min=0.310000,Max=0.310000))
|
||||
InitialParticlesPerSecond=20.000000
|
||||
LifetimeRange=(Min=1.000000,Max=1.000000)
|
||||
End Object
|
||||
Emitters(1)=MeshEmitter'UT2341WeaponsReducedv1a.FX_RedeemerExplosion.MeshEmitter15'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter15
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(Y=(Min=0.900000,Max=0.900000),Z=(Min=0.600000,Max=0.600000))
|
||||
Opacity=0.460000
|
||||
FadeOutStartTime=0.380000
|
||||
MaxParticles=2
|
||||
SpinsPerSecondRange=(X=(Min=0.100000,Max=0.100000))
|
||||
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=16.000000)
|
||||
StartSizeRange=(X=(Min=400.000000,Max=400.000000),Y=(Min=400.000000,Max=400.000000),Z=(Min=400.000000,Max=400.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
DrawStyle=PTDS_AlphaBlend
|
||||
Texture=Texture'EpicParticles.Flares.FlashFlare1'
|
||||
LifetimeRange=(Min=2.000000,Max=2.000000)
|
||||
End Object
|
||||
Emitters(2)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_RedeemerExplosion.SpriteEmitter15'
|
||||
|
||||
Begin Object Class=MeshEmitter Name=MeshEmitter19
|
||||
StaticMesh=StaticMesh'ParticleMeshes.Complex.ExplosionRing'
|
||||
UseParticleColor=True
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
Opacity=0.150000
|
||||
FadeOutStartTime=0.370000
|
||||
MaxParticles=2
|
||||
StartSpinRange=(X=(Min=1.000000,Max=1.000000),Y=(Min=1.000000,Max=1.000000),Z=(Min=1.000000,Max=1.000000))
|
||||
SizeScale(0)=(RelativeTime=0.370000,RelativeSize=3.500000)
|
||||
SizeScale(1)=(RelativeTime=1.000000,RelativeSize=12.000000)
|
||||
StartSizeRange=(X=(Min=1.810000,Max=1.810000),Y=(Min=1.810000,Max=1.810000),Z=(Min=1.810000,Max=1.810000))
|
||||
InitialParticlesPerSecond=10.000000
|
||||
LifetimeRange=(Min=1.500000,Max=1.500000)
|
||||
End Object
|
||||
Emitters(3)=MeshEmitter'UT2341WeaponsReducedv1a.FX_RedeemerExplosion.MeshEmitter19'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter16
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(Z=(Min=0.800000,Max=0.800000))
|
||||
Opacity=0.680000
|
||||
FadeOutStartTime=0.460000
|
||||
MaxParticles=2
|
||||
SpinsPerSecondRange=(X=(Min=0.100000,Max=0.100000))
|
||||
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=12.000000)
|
||||
StartSizeRange=(X=(Min=425.000000,Max=425.000000),Y=(Min=425.000000,Max=425.000000),Z=(Min=425.000000,Max=425.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
DrawStyle=PTDS_AlphaBlend
|
||||
Texture=Texture'EpicParticles.Flares.FlashFlare1'
|
||||
LifetimeRange=(Min=2.000000,Max=2.000000)
|
||||
End Object
|
||||
Emitters(4)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_RedeemerExplosion.SpriteEmitter16'
|
||||
|
||||
Begin Object Class=MeshEmitter Name=MeshEmitter20
|
||||
StaticMesh=StaticMesh'ParticleMeshes.Complex.ExplosionRing'
|
||||
UseParticleColor=True
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
Opacity=0.060000
|
||||
FadeOutStartTime=0.370000
|
||||
MaxParticles=1
|
||||
StartSpinRange=(X=(Min=1.000000,Max=1.000000),Y=(Min=1.000000,Max=1.000000),Z=(Min=1.000000,Max=1.000000))
|
||||
SizeScale(0)=(RelativeTime=0.370000,RelativeSize=2.500000)
|
||||
SizeScale(1)=(RelativeTime=1.000000,RelativeSize=7.000000)
|
||||
StartSizeRange=(X=(Min=3.370000,Max=3.370000),Y=(Min=3.370000,Max=3.370000),Z=(Min=0.310000,Max=0.310000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
LifetimeRange=(Min=0.500000,Max=0.500000)
|
||||
End Object
|
||||
Emitters(5)=MeshEmitter'UT2341WeaponsReducedv1a.FX_RedeemerExplosion.MeshEmitter20'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter4
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
BlendBetweenSubdivisions=True
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(Y=(Min=0.900000,Max=0.900000),Z=(Min=0.600000,Max=0.600000))
|
||||
FadeOutStartTime=0.380000
|
||||
MaxParticles=2
|
||||
StartLocationRange=(Z=(Max=40.000000))
|
||||
SpinsPerSecondRange=(X=(Min=0.100000,Max=0.100000))
|
||||
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=6.000000)
|
||||
StartSizeRange=(X=(Min=122.000000,Max=122.000000),Y=(Min=122.000000,Max=122.000000),Z=(Min=122.000000,Max=122.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'ExplosionTex.Framed.exp2_frames'
|
||||
TextureUSubdivisions=4
|
||||
TextureVSubdivisions=4
|
||||
LifetimeRange=(Min=2.000000,Max=2.000000)
|
||||
InitialDelayRange=(Max=0.100000)
|
||||
End Object
|
||||
Emitters(6)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_RedeemerExplosion.SpriteEmitter4'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter5
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
BlendBetweenSubdivisions=True
|
||||
Acceleration=(Z=40.000000)
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(Y=(Min=0.900000,Max=0.900000),Z=(Min=0.600000,Max=0.600000))
|
||||
Opacity=0.800000
|
||||
FadeOutStartTime=0.380000
|
||||
MaxParticles=2
|
||||
StartLocationRange=(Z=(Min=511.000000,Max=511.000000))
|
||||
SpinsPerSecondRange=(X=(Min=0.100000,Max=0.100000))
|
||||
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=6.000000)
|
||||
StartSizeRange=(X=(Min=128.000000,Max=128.000000),Y=(Min=128.000000,Max=128.000000),Z=(Min=128.000000,Max=128.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'ExplosionTex.Framed.exp2_frames'
|
||||
TextureUSubdivisions=4
|
||||
TextureVSubdivisions=4
|
||||
LifetimeRange=(Min=2.000000,Max=2.000000)
|
||||
InitialDelayRange=(Min=0.200000,Max=0.500000)
|
||||
End Object
|
||||
Emitters(7)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_RedeemerExplosion.SpriteEmitter5'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter9
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
BlendBetweenSubdivisions=True
|
||||
Acceleration=(Z=10.000000)
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(Y=(Min=0.900000,Max=0.900000),Z=(Min=0.600000,Max=0.600000))
|
||||
Opacity=0.610000
|
||||
FadeOutStartTime=0.380000
|
||||
MaxParticles=2
|
||||
StartLocationRange=(Z=(Min=371.000000,Max=371.000000))
|
||||
SpinsPerSecondRange=(X=(Min=0.100000,Max=0.100000))
|
||||
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=6.000000)
|
||||
StartSizeRange=(X=(Min=131.000000,Max=131.000000),Y=(Min=131.000000,Max=131.000000),Z=(Min=131.000000,Max=131.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'ExplosionTex.Framed.exp7_frames'
|
||||
TextureUSubdivisions=4
|
||||
TextureVSubdivisions=4
|
||||
LifetimeRange=(Min=3.300000,Max=3.300000)
|
||||
InitialDelayRange=(Min=0.400000,Max=0.400000)
|
||||
End Object
|
||||
Emitters(8)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_RedeemerExplosion.SpriteEmitter9'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter11
|
||||
FadeOut=True
|
||||
FadeIn=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
BlendBetweenSubdivisions=True
|
||||
Acceleration=(Z=40.000000)
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(Y=(Min=0.900000,Max=0.900000),Z=(Min=0.600000,Max=0.600000))
|
||||
Opacity=0.390000
|
||||
FadeOutStartTime=0.360000
|
||||
FadeInEndTime=0.140000
|
||||
StartLocationRange=(X=(Min=-490.000000,Max=490.000000),Y=(Min=-490.000000,Max=490.000000),Z=(Min=566.000000,Max=729.000000))
|
||||
SpinsPerSecondRange=(X=(Min=0.100000,Max=0.100000))
|
||||
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=6.000000)
|
||||
StartSizeRange=(X=(Min=93.000000,Max=93.000000),Y=(Min=93.000000,Max=93.000000),Z=(Min=93.000000,Max=93.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'ExplosionTex.Framed.exp2_frames'
|
||||
TextureUSubdivisions=4
|
||||
TextureVSubdivisions=4
|
||||
LifetimeRange=(Min=2.000000,Max=2.000000)
|
||||
InitialDelayRange=(Min=0.700000,Max=0.700000)
|
||||
End Object
|
||||
Emitters(9)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_RedeemerExplosion.SpriteEmitter11'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter12
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
Acceleration=(Z=286.000000)
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(Y=(Min=0.900000,Max=0.900000),Z=(Min=0.800000,Max=0.800000))
|
||||
Opacity=0.410000
|
||||
FadeOutStartTime=0.234000
|
||||
MaxParticles=2
|
||||
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=12.000000)
|
||||
StartSizeRange=(X=(Min=145.000000,Max=145.000000),Y=(Min=145.000000,Max=145.000000),Z=(Min=145.000000,Max=145.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'EpicParticles.Flares.BurnFlare1'
|
||||
LifetimeRange=(Min=2.300000,Max=2.300000)
|
||||
End Object
|
||||
Emitters(10)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_RedeemerExplosion.SpriteEmitter12'
|
||||
|
||||
AutoDestroy=True
|
||||
bNoDelete=False
|
||||
bNetTemporary=True
|
||||
RemoteRole=ROLE_DumbProxy
|
||||
Style=STY_Masked
|
||||
bDirectional=True
|
||||
}
|
||||
135
Sources/Classes/FX_RipperExplosion.uc
Normal file
135
Sources/Classes/FX_RipperExplosion.uc
Normal file
@@ -0,0 +1,135 @@
|
||||
class FX_RipperExplosion extends Emitter;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter0
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
BlendBetweenSubdivisions=True
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(Y=(Min=0.900000,Max=0.900000),Z=(Min=0.500000,Max=0.500000))
|
||||
Opacity=0.620000
|
||||
FadeOutStartTime=0.380000
|
||||
MaxParticles=1
|
||||
SpinsPerSecondRange=(X=(Min=0.100000,Max=0.100000))
|
||||
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=6.000000)
|
||||
StartSizeRange=(X=(Min=16.000000,Max=16.000000),Y=(Min=16.000000,Max=16.000000),Z=(Min=16.000000,Max=16.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'ExplosionTex.Framed.exp7_frames'
|
||||
TextureUSubdivisions=4
|
||||
TextureVSubdivisions=4
|
||||
LifetimeRange=(Min=0.601000,Max=0.601000)
|
||||
InitialDelayRange=(Min=0.400000,Max=0.400000)
|
||||
End Object
|
||||
Emitters(0)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_RipperExplosion.SpriteEmitter0'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter18
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
BlendBetweenSubdivisions=True
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(Y=(Min=0.900000,Max=0.900000),Z=(Min=0.900000,Max=0.900000))
|
||||
Opacity=0.820000
|
||||
FadeOutStartTime=0.380000
|
||||
MaxParticles=2
|
||||
StartLocationRange=(X=(Min=4.000000,Max=4.000000),Y=(Min=4.000000,Max=4.000000),Z=(Min=4.000000,Max=4.000000))
|
||||
SpinsPerSecondRange=(X=(Min=-0.100000,Max=-0.100000))
|
||||
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=6.000000)
|
||||
StartSizeRange=(X=(Min=14.000000,Max=14.000000),Y=(Min=14.000000,Max=14.000000),Z=(Min=14.000000,Max=14.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'ExplosionTex.Framed.exp2_frames'
|
||||
TextureUSubdivisions=4
|
||||
TextureVSubdivisions=4
|
||||
LifetimeRange=(Min=0.601000,Max=0.601000)
|
||||
InitialDelayRange=(Max=0.040000)
|
||||
End Object
|
||||
Emitters(1)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_RipperExplosion.SpriteEmitter18'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter21
|
||||
FadeOut=True
|
||||
FadeIn=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
Acceleration=(Z=90.000000)
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
Opacity=0.140000
|
||||
FadeOutStartTime=0.250000
|
||||
FadeInEndTime=0.160000
|
||||
MaxParticles=2
|
||||
SpinsPerSecondRange=(X=(Min=0.100000,Max=0.100000))
|
||||
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=6.000000)
|
||||
StartSizeRange=(X=(Min=25.000000,Max=25.000000),Y=(Min=25.000000,Max=25.000000),Z=(Min=25.000000,Max=25.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'EpicParticles.Smoke.Smokepuff2'
|
||||
LifetimeRange=(Min=1.400000,Max=1.400000)
|
||||
End Object
|
||||
Emitters(2)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_RipperExplosion.SpriteEmitter21'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter22
|
||||
UseCollision=True
|
||||
FadeOut=True
|
||||
FadeIn=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(Y=(Min=0.940000,Max=0.940000),Z=(Min=0.840000,Max=0.840000))
|
||||
Opacity=0.510000
|
||||
FadeOutStartTime=0.286000
|
||||
FadeInEndTime=0.013000
|
||||
MaxParticles=1
|
||||
SpinsPerSecondRange=(X=(Min=0.100000,Max=0.100000))
|
||||
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=13.000000)
|
||||
StartSizeRange=(X=(Min=25.000000,Max=25.000000),Y=(Min=25.000000,Max=25.000000),Z=(Min=25.000000,Max=25.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
DrawStyle=PTDS_AlphaBlend
|
||||
Texture=Texture'EpicParticles.Flares.FlashFlare1'
|
||||
LifetimeRange=(Min=0.700000,Max=0.700000)
|
||||
End Object
|
||||
Emitters(3)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_RipperExplosion.SpriteEmitter22'
|
||||
|
||||
Begin Object Class=SparkEmitter Name=SparkEmitter1
|
||||
LineSegmentsRange=(Min=1.000000,Max=1.000000)
|
||||
TimeBetweenSegmentsRange=(Min=0.200000,Max=0.200000)
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
AutomaticInitialSpawning=False
|
||||
Acceleration=(Z=-1200.000000)
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(Y=(Min=0.700000,Max=0.700000),Z=(Min=0.300000,Max=0.300000))
|
||||
Opacity=0.540000
|
||||
FadeOutStartTime=0.282470
|
||||
MaxParticles=14
|
||||
StartSizeRange=(X=(Min=50.000000,Max=50.000000),Y=(Min=50.000000,Max=50.000000),Z=(Min=50.000000,Max=50.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'AW-2004Particles.Weapons.PlasmaStar'
|
||||
LifetimeRange=(Min=0.701000,Max=0.701000)
|
||||
InitialDelayRange=(Min=0.040000,Max=0.040000)
|
||||
StartVelocityRange=(X=(Min=-700.000000,Max=700.000000),Y=(Min=-700.000000,Max=700.000000),Z=(Min=-700.000000,Max=700.000000))
|
||||
End Object
|
||||
Emitters(4)=SparkEmitter'UT2341WeaponsReducedv1a.FX_RipperExplosion.SparkEmitter1'
|
||||
|
||||
bNoDelete=False
|
||||
}
|
||||
190
Sources/Classes/FX_RipperProjTrail.uc
Normal file
190
Sources/Classes/FX_RipperProjTrail.uc
Normal file
@@ -0,0 +1,190 @@
|
||||
class FX_RipperProjTrail extends Emitter;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter64
|
||||
UseDirectionAs=PTDU_Normal
|
||||
FadeOut=True
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
Acceleration=(X=-100.000000,Y=8.000000)
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(Y=(Min=0.500000,Max=0.500000),Z=(Min=0.000000,Max=0.000000))
|
||||
Opacity=0.200000
|
||||
FadeOutStartTime=0.190000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=13
|
||||
StartLocationRange=(Y=(Min=-5.000000,Max=-5.000000))
|
||||
SpinCCWorCW=(X=0.680000)
|
||||
SpinsPerSecondRange=(X=(Min=2.000000,Max=2.000000),Y=(Min=0.500000,Max=1.000000),Z=(Min=0.500000,Max=1.000000))
|
||||
StartSpinRange=(X=(Max=1.000000),Y=(Max=1.000000),Z=(Max=1.000000))
|
||||
StartSizeRange=(X=(Min=10.000000,Max=10.000000),Y=(Min=10.000000,Max=10.000000),Z=(Min=10.000000,Max=10.000000))
|
||||
ParticlesPerSecond=13.000000
|
||||
InitialParticlesPerSecond=50000.000000
|
||||
Texture=Texture'EpicParticles.Flares.SoftFlare'
|
||||
LifetimeRange=(Min=1.000000,Max=1.000000)
|
||||
WarmupTicksPerSecond=1.000000
|
||||
RelativeWarmupTime=1.000000
|
||||
End Object
|
||||
Emitters(0)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_RipperProjTrail.SpriteEmitter64'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter66
|
||||
UseCollision=True
|
||||
FadeOut=True
|
||||
FadeIn=True
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
Acceleration=(X=-10.000000,Z=-40.000000)
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(Y=(Min=0.700000,Max=0.700000),Z=(Min=0.000000,Max=0.000000))
|
||||
Opacity=0.320000
|
||||
FadeOutStartTime=0.110000
|
||||
FadeInEndTime=0.110000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
SpinCCWorCW=(X=0.680000)
|
||||
SpinsPerSecondRange=(X=(Min=2.000000,Max=2.000000),Y=(Min=0.500000,Max=1.000000),Z=(Min=0.500000,Max=1.000000))
|
||||
StartSpinRange=(X=(Max=1.000000),Y=(Max=1.000000),Z=(Max=1.000000))
|
||||
StartSizeRange=(X=(Min=12.000000,Max=15.000000),Y=(Min=12.000000,Max=15.000000),Z=(Min=12.000000,Max=15.000000))
|
||||
ParticlesPerSecond=1.000000
|
||||
InitialParticlesPerSecond=50000.000000
|
||||
Texture=Texture'EpicParticles.Flares.FlickerFlare'
|
||||
LifetimeRange=(Min=1.400000,Max=1.400000)
|
||||
StartVelocityRange=(X=(Min=-30.000000,Max=-30.000000),Y=(Min=-20.000000,Max=20.000000),Z=(Max=10.000000))
|
||||
WarmupTicksPerSecond=1.000000
|
||||
RelativeWarmupTime=1.000000
|
||||
End Object
|
||||
Emitters(1)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_RipperProjTrail.SpriteEmitter66'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter67
|
||||
UseDirectionAs=PTDU_Normal
|
||||
FadeOut=True
|
||||
FadeIn=True
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
Acceleration=(X=-100.000000,Y=-12.000000)
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(Y=(Min=0.500000,Max=0.500000),Z=(Min=0.000000,Max=0.000000))
|
||||
Opacity=0.200000
|
||||
FadeOutStartTime=0.350000
|
||||
FadeInEndTime=0.020000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=13
|
||||
StartLocationRange=(Y=(Min=6.000000,Max=6.000000))
|
||||
SpinCCWorCW=(X=0.680000)
|
||||
SpinsPerSecondRange=(X=(Min=2.000000,Max=2.000000),Y=(Min=0.500000,Max=1.000000),Z=(Min=0.500000,Max=1.000000))
|
||||
StartSpinRange=(X=(Max=1.000000),Y=(Max=1.000000),Z=(Max=1.000000))
|
||||
StartSizeRange=(X=(Min=10.000000,Max=10.000000),Y=(Min=10.000000,Max=10.000000),Z=(Min=10.000000,Max=10.000000))
|
||||
ParticlesPerSecond=13.000000
|
||||
InitialParticlesPerSecond=50000.000000
|
||||
Texture=Texture'EpicParticles.Flares.SoftFlare'
|
||||
LifetimeRange=(Min=1.000000,Max=1.000000)
|
||||
WarmupTicksPerSecond=1.000000
|
||||
RelativeWarmupTime=1.000000
|
||||
End Object
|
||||
Emitters(2)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_RipperProjTrail.SpriteEmitter67'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter68
|
||||
UseDirectionAs=PTDU_Normal
|
||||
FadeOut=True
|
||||
FadeIn=True
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
Acceleration=(X=-110.000000)
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(Y=(Min=0.500000,Max=0.500000),Z=(Min=0.000000,Max=0.000000))
|
||||
Opacity=0.200000
|
||||
FadeOutStartTime=0.350000
|
||||
FadeInEndTime=0.020000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=13
|
||||
StartLocationRange=(X=(Min=-4.000000,Max=-4.000000))
|
||||
SpinCCWorCW=(X=0.680000)
|
||||
SpinsPerSecondRange=(X=(Min=2.000000,Max=2.000000),Y=(Min=0.500000,Max=1.000000),Z=(Min=0.500000,Max=1.000000))
|
||||
StartSpinRange=(X=(Max=1.000000),Y=(Max=1.000000),Z=(Max=1.000000))
|
||||
StartSizeRange=(X=(Min=15.000000,Max=15.000000),Y=(Min=15.000000,Max=15.000000),Z=(Min=15.000000,Max=15.000000))
|
||||
ParticlesPerSecond=13.000000
|
||||
InitialParticlesPerSecond=50000.000000
|
||||
Texture=Texture'EpicParticles.Flares.SoftFlare'
|
||||
LifetimeRange=(Min=1.000000,Max=1.000000)
|
||||
WarmupTicksPerSecond=1.000000
|
||||
RelativeWarmupTime=1.000000
|
||||
End Object
|
||||
Emitters(3)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_RipperProjTrail.SpriteEmitter68'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter69
|
||||
FadeOut=True
|
||||
FadeIn=True
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
Acceleration=(X=-70.000000,Y=-10.000000)
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(Y=(Min=0.500000,Max=0.500000),Z=(Min=0.000000,Max=0.000000))
|
||||
Opacity=0.700000
|
||||
FadeOutStartTime=0.800000
|
||||
FadeInEndTime=0.020000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
StartLocationRange=(X=(Min=-1.000000,Max=-1.000000),Y=(Min=6.000000,Max=6.000000))
|
||||
SpinCCWorCW=(X=0.680000)
|
||||
SpinsPerSecondRange=(X=(Min=2.000000,Max=2.000000),Y=(Min=0.500000,Max=1.000000),Z=(Min=0.500000,Max=1.000000))
|
||||
StartSpinRange=(X=(Max=1.000000),Y=(Max=1.000000),Z=(Max=1.000000))
|
||||
StartSizeRange=(X=(Min=9.000000,Max=9.000000),Y=(Min=9.000000,Max=9.000000),Z=(Min=9.000000,Max=9.000000))
|
||||
ParticlesPerSecond=1.000000
|
||||
InitialParticlesPerSecond=50000.000000
|
||||
Texture=Texture'EpicParticles.Flares.SoftFlare'
|
||||
LifetimeRange=(Min=1.000000,Max=1.000000)
|
||||
StartVelocityRange=(Y=(Min=-1.000000,Max=-1.000000))
|
||||
WarmupTicksPerSecond=1.000000
|
||||
RelativeWarmupTime=1.000000
|
||||
End Object
|
||||
Emitters(4)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_RipperProjTrail.SpriteEmitter69'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter70
|
||||
FadeOut=True
|
||||
FadeIn=True
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
Acceleration=(X=-70.000000,Y=10.000000)
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(Y=(Min=0.500000,Max=0.500000),Z=(Min=0.000000,Max=0.000000))
|
||||
Opacity=0.700000
|
||||
FadeOutStartTime=0.350000
|
||||
FadeInEndTime=0.020000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
StartLocationRange=(X=(Min=-1.000000,Max=-1.000000),Y=(Min=-5.000000,Max=-5.000000))
|
||||
SpinCCWorCW=(X=0.680000)
|
||||
SpinsPerSecondRange=(X=(Min=2.000000,Max=2.000000),Y=(Min=0.500000,Max=1.000000),Z=(Min=0.500000,Max=1.000000))
|
||||
StartSpinRange=(X=(Max=1.000000),Y=(Max=1.000000),Z=(Max=1.000000))
|
||||
StartSizeRange=(X=(Min=9.000000,Max=9.000000),Y=(Min=9.000000,Max=9.000000),Z=(Min=9.000000,Max=9.000000))
|
||||
ParticlesPerSecond=1.000000
|
||||
InitialParticlesPerSecond=50000.000000
|
||||
Texture=Texture'EpicParticles.Flares.SoftFlare'
|
||||
LifetimeRange=(Min=1.000000,Max=1.000000)
|
||||
StartVelocityRange=(Y=(Min=-1.000000,Max=-1.000000))
|
||||
WarmupTicksPerSecond=1.000000
|
||||
RelativeWarmupTime=1.000000
|
||||
End Object
|
||||
Emitters(5)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_RipperProjTrail.SpriteEmitter70'
|
||||
|
||||
bNoDelete=False
|
||||
bDirectional=True
|
||||
}
|
||||
196
Sources/Classes/FX_RocketExplosion.uc
Normal file
196
Sources/Classes/FX_RocketExplosion.uc
Normal file
@@ -0,0 +1,196 @@
|
||||
class FX_RocketExplosion extends Emitter;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter0
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
BlendBetweenSubdivisions=True
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(Y=(Min=0.900000,Max=0.900000),Z=(Min=0.600000,Max=0.600000))
|
||||
Opacity=0.720000
|
||||
FadeOutStartTime=0.380000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
SpinsPerSecondRange=(X=(Min=0.100000,Max=0.100000))
|
||||
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=6.000000)
|
||||
StartSizeRange=(X=(Min=16.000000,Max=16.000000),Y=(Min=16.000000,Max=16.000000),Z=(Min=16.000000,Max=16.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'ExplosionTex.Framed.exp7_frames'
|
||||
TextureUSubdivisions=4
|
||||
TextureVSubdivisions=4
|
||||
LifetimeRange=(Min=0.601000,Max=0.601000)
|
||||
InitialDelayRange=(Min=0.400000,Max=0.400000)
|
||||
End Object
|
||||
Emitters(0)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_RocketExplosion.SpriteEmitter0'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter16
|
||||
FadeOut=True
|
||||
FadeIn=True
|
||||
RespawnDeadParticles=False
|
||||
Disabled=True
|
||||
Backup_Disabled=True
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
Opacity=0.740000
|
||||
FadeOutStartTime=0.080000
|
||||
FadeInEndTime=0.080000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
SpinsPerSecondRange=(X=(Min=0.100000,Max=0.100000))
|
||||
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=4.000000)
|
||||
StartSizeRange=(X=(Min=28.000000,Max=28.000000),Y=(Min=28.000000,Max=28.000000),Z=(Min=28.000000,Max=28.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
DrawStyle=PTDS_AlphaBlend
|
||||
Texture=Texture'EpicParticles.Flares.FlashFlare1'
|
||||
LifetimeRange=(Min=1.000000,Max=1.000000)
|
||||
End Object
|
||||
Emitters(1)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_RocketExplosion.SpriteEmitter16'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter18
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
BlendBetweenSubdivisions=True
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(Y=(Min=0.800000,Max=0.800000),Z=(Min=0.500000,Max=0.500000))
|
||||
Opacity=0.820000
|
||||
FadeOutStartTime=0.380000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=2
|
||||
StartLocationRange=(X=(Min=4.000000,Max=4.000000),Y=(Min=4.000000,Max=4.000000),Z=(Min=4.000000,Max=4.000000))
|
||||
SpinsPerSecondRange=(X=(Min=-0.100000,Max=-0.100000))
|
||||
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=6.000000)
|
||||
StartSizeRange=(X=(Min=14.000000,Max=14.000000),Y=(Min=14.000000,Max=14.000000),Z=(Min=14.000000,Max=14.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'ExplosionTex.Framed.exp2_frames'
|
||||
TextureUSubdivisions=4
|
||||
TextureVSubdivisions=4
|
||||
LifetimeRange=(Min=0.801000,Max=0.801000)
|
||||
End Object
|
||||
Emitters(2)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_RocketExplosion.SpriteEmitter18'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter21
|
||||
FadeOut=True
|
||||
FadeIn=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
Acceleration=(Z=60.000000)
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
Opacity=0.140000
|
||||
FadeOutStartTime=0.250000
|
||||
FadeInEndTime=0.160000
|
||||
MaxParticles=2
|
||||
SpinsPerSecondRange=(X=(Min=0.100000,Max=0.100000))
|
||||
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=6.000000)
|
||||
StartSizeRange=(X=(Min=25.000000,Max=25.000000),Y=(Min=25.000000,Max=25.000000),Z=(Min=25.000000,Max=25.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'EpicParticles.Smoke.Smokepuff2'
|
||||
LifetimeRange=(Min=2.400000,Max=2.400000)
|
||||
End Object
|
||||
Emitters(3)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_RocketExplosion.SpriteEmitter21'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter22
|
||||
UseCollision=True
|
||||
FadeOut=True
|
||||
FadeIn=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(Y=(Min=0.480000,Max=0.480000),Z=(Min=0.260000,Max=0.260000))
|
||||
Opacity=0.730000
|
||||
FadeOutStartTime=0.030000
|
||||
FadeInEndTime=0.015000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
SpinsPerSecondRange=(X=(Min=0.100000,Max=0.100000))
|
||||
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=13.000000)
|
||||
StartSizeRange=(X=(Min=25.000000,Max=25.000000),Y=(Min=25.000000,Max=25.000000),Z=(Min=25.000000,Max=25.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
DrawStyle=PTDS_AlphaBlend
|
||||
Texture=Texture'EpicParticles.Flares.FlashFlare1'
|
||||
LifetimeRange=(Min=1.300000,Max=1.300000)
|
||||
End Object
|
||||
Emitters(4)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_RocketExplosion.SpriteEmitter22'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter5
|
||||
UseCollision=True
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
Acceleration=(Z=-1500.000000)
|
||||
DampingFactorRange=(X=(Min=0.450000,Max=0.450000),Y=(Min=0.450000,Max=0.450000),Z=(Min=0.450000,Max=0.450000))
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(Y=(Min=0.700000,Max=0.700000),Z=(Min=0.500000,Max=0.500000))
|
||||
Opacity=0.860000
|
||||
FadeOutStartTime=0.800000
|
||||
MaxParticles=12
|
||||
SpinCCWorCW=(X=0.750000)
|
||||
SpinsPerSecondRange=(X=(Min=0.500000,Max=1.000000),Y=(Min=0.500000,Max=1.000000),Z=(Min=0.500000,Max=1.000000))
|
||||
StartSpinRange=(X=(Max=1.000000),Y=(Max=1.000000),Z=(Max=1.000000))
|
||||
SizeScale(0)=(RelativeTime=0.140000,RelativeSize=0.100000)
|
||||
SizeScaleRepeats=1.000000
|
||||
StartSizeRange=(X=(Min=6.000000,Max=6.000000),Y=(Min=6.000000,Max=6.000000),Z=(Min=6.000000,Max=6.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'AW-2004Particles.Weapons.HardSpot'
|
||||
LifetimeRange=(Min=0.950000,Max=0.950000)
|
||||
InitialDelayRange=(Min=0.140000,Max=0.140000)
|
||||
StartVelocityRange=(X=(Min=-300.000000,Max=400.000000),Y=(Min=-400.000000,Max=400.000000),Z=(Min=-400.000000,Max=700.000000))
|
||||
End Object
|
||||
Emitters(5)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_RocketExplosion.SpriteEmitter5'
|
||||
|
||||
Begin Object Class=SparkEmitter Name=SparkEmitter1
|
||||
LineSegmentsRange=(Min=1.000000,Max=1.000000)
|
||||
TimeBetweenSegmentsRange=(Min=0.200000,Max=0.200000)
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
AutomaticInitialSpawning=False
|
||||
Acceleration=(Z=-1200.000000)
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(Y=(Min=0.700000,Max=0.700000),Z=(Min=0.300000,Max=0.300000))
|
||||
Opacity=0.540000
|
||||
FadeOutStartTime=0.282470
|
||||
MaxParticles=14
|
||||
StartSizeRange=(X=(Min=50.000000,Max=50.000000),Y=(Min=50.000000,Max=50.000000),Z=(Min=50.000000,Max=50.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'AW-2004Particles.Weapons.PlasmaStar'
|
||||
LifetimeRange=(Min=0.801000,Max=0.801000)
|
||||
InitialDelayRange=(Min=0.100000,Max=0.100000)
|
||||
StartVelocityRange=(X=(Min=-700.000000,Max=700.000000),Y=(Min=-700.000000,Max=700.000000),Z=(Min=-700.000000,Max=700.000000))
|
||||
End Object
|
||||
Emitters(6)=SparkEmitter'UT2341WeaponsReducedv1a.FX_RocketExplosion.SparkEmitter1'
|
||||
|
||||
bNoDelete=False
|
||||
}
|
||||
159
Sources/Classes/FX_RocketTrail.uc
Normal file
159
Sources/Classes/FX_RocketTrail.uc
Normal file
@@ -0,0 +1,159 @@
|
||||
class FX_RocketTrail extends Emitter;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter8
|
||||
FadeOut=True
|
||||
SpinParticles=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(Y=(Min=0.500000,Max=0.500000),Z=(Min=0.300000,Max=0.300000))
|
||||
Opacity=0.200000
|
||||
FadeOutStartTime=0.520000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
StartLocationRange=(X=(Min=-18.000000,Max=-18.000000))
|
||||
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=13.000000)
|
||||
StartSizeRange=(X=(Min=55.000000,Max=55.000000),Y=(Min=55.000000,Max=55.000000),Z=(Min=55.000000,Max=55.000000))
|
||||
InitialParticlesPerSecond=1.000000
|
||||
DrawStyle=PTDS_AlphaBlend
|
||||
Texture=Texture'EpicParticles.Flares.BurnFlare1'
|
||||
LifetimeRange=(Min=1.000000,Max=1.000000)
|
||||
End Object
|
||||
Emitters(0)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_RocketTrail.SpriteEmitter8'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter11
|
||||
FadeOut=True
|
||||
SpinParticles=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(Y=(Min=0.880000,Max=0.880000),Z=(Min=0.680000,Max=0.680000))
|
||||
Opacity=0.430000
|
||||
FadeOutStartTime=0.460000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=2
|
||||
StartLocationRange=(X=(Min=-18.000000,Max=-18.000000))
|
||||
SpinsPerSecondRange=(X=(Max=0.100000))
|
||||
StartSpinRange=(X=(Max=1.000000))
|
||||
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=13.000000)
|
||||
StartSizeRange=(X=(Min=55.000000,Max=55.000000),Y=(Min=55.000000,Max=55.000000),Z=(Min=55.000000,Max=55.000000))
|
||||
InitialParticlesPerSecond=2.000000
|
||||
DrawStyle=PTDS_AlphaBlend
|
||||
Texture=Texture'EpicParticles.Flares.FlashFlare1'
|
||||
LifetimeRange=(Min=1.000000,Max=1.000000)
|
||||
End Object
|
||||
Emitters(1)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_RocketTrail.SpriteEmitter11'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter12
|
||||
FadeOut=True
|
||||
SpinParticles=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(Y=(Min=0.700000,Max=0.700000),Z=(Min=0.500000,Max=0.500000))
|
||||
Opacity=0.430000
|
||||
FadeOutStartTime=0.460000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=2
|
||||
StartLocationRange=(X=(Min=-18.000000,Max=-18.000000))
|
||||
SpinsPerSecondRange=(X=(Max=0.100000))
|
||||
StartSpinRange=(X=(Max=1.000000))
|
||||
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=13.000000)
|
||||
StartSizeRange=(X=(Min=85.000000,Max=85.000000),Y=(Min=85.000000,Max=85.000000),Z=(Min=85.000000,Max=85.000000))
|
||||
InitialParticlesPerSecond=2.000000
|
||||
DrawStyle=PTDS_AlphaBlend
|
||||
Texture=Texture'EpicParticles.Flares.FlickerFlare'
|
||||
LifetimeRange=(Min=1.000000,Max=1.000000)
|
||||
End Object
|
||||
Emitters(2)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_RocketTrail.SpriteEmitter12'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter13
|
||||
FadeOut=True
|
||||
FadeIn=True
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
Acceleration=(Z=100.000000)
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.800000,Max=0.800000),Y=(Min=0.800000,Max=0.800000),Z=(Min=0.800000,Max=0.800000))
|
||||
Opacity=0.360000
|
||||
FadeOutStartTime=0.460000
|
||||
FadeInEndTime=0.100000
|
||||
MaxParticles=30
|
||||
SpinsPerSecondRange=(X=(Max=0.100000))
|
||||
StartSpinRange=(X=(Max=1.000000))
|
||||
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=0.900000)
|
||||
StartSizeRange=(X=(Min=7.000000,Max=15.000000),Y=(Min=7.000000,Max=15.000000),Z=(Min=7.000000,Max=15.000000))
|
||||
InitialParticlesPerSecond=20.000000
|
||||
DrawStyle=PTDS_AlphaBlend
|
||||
Texture=Texture'EpicParticles.Smoke.Smokepuff'
|
||||
LifetimeRange=(Min=1.000000,Max=1.000000)
|
||||
StartVelocityRange=(Y=(Min=-20.000000,Max=20.000000),Z=(Min=-20.000000,Max=10.000000))
|
||||
End Object
|
||||
Emitters(3)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_RocketTrail.SpriteEmitter13'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter14
|
||||
FadeOut=True
|
||||
FadeIn=True
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
Acceleration=(Z=100.000000)
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.100000,Max=0.100000),Y=(Min=0.100000,Max=0.100000),Z=(Min=0.100000,Max=0.100000))
|
||||
Opacity=0.200000
|
||||
FadeOutStartTime=0.040080
|
||||
FadeInEndTime=0.100000
|
||||
MaxParticles=30
|
||||
StartLocationRange=(X=(Min=-18.000000,Max=-18.000000))
|
||||
SpinsPerSecondRange=(X=(Max=0.100000))
|
||||
StartSpinRange=(X=(Max=1.000000))
|
||||
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=0.200000)
|
||||
StartSizeRange=(X=(Min=6.000000,Max=12.000000),Y=(Min=6.000000,Max=12.000000),Z=(Min=6.000000,Max=12.000000))
|
||||
InitialParticlesPerSecond=20.000000
|
||||
DrawStyle=PTDS_AlphaBlend
|
||||
Texture=Texture'EpicParticles.Smoke.Smokepuff'
|
||||
LifetimeRange=(Min=0.501000,Max=0.501000)
|
||||
InitialDelayRange=(Min=0.010000,Max=0.010000)
|
||||
StartVelocityRange=(Y=(Min=-20.000000,Max=20.000000),Z=(Min=-20.000000,Max=10.000000))
|
||||
End Object
|
||||
Emitters(4)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_RocketTrail.SpriteEmitter14'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter15
|
||||
SpinParticles=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
Acceleration=(Z=60.000000)
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(Y=(Min=0.600000,Max=0.600000),Z=(Min=0.300000,Max=0.300000))
|
||||
Opacity=0.170000
|
||||
FadeOutStartTime=0.501000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=30
|
||||
StartLocationRange=(X=(Min=-18.000000,Max=-18.000000))
|
||||
SpinsPerSecondRange=(X=(Max=0.100000))
|
||||
StartSpinRange=(X=(Max=1.000000))
|
||||
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=0.500000)
|
||||
StartSizeRange=(X=(Min=1.000000,Max=13.000000),Y=(Min=1.000000,Max=13.000000),Z=(Min=1.000000,Max=13.000000))
|
||||
InitialParticlesPerSecond=20.000000
|
||||
Texture=Texture'EpicParticles.Flares.SoftFlare'
|
||||
LifetimeRange=(Min=0.500000,Max=0.500000)
|
||||
StartVelocityRange=(X=(Min=-150.000000,Max=-50.000000),Y=(Min=-20.000000,Max=20.000000),Z=(Min=-20.000000,Max=10.000000))
|
||||
End Object
|
||||
Emitters(5)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_RocketTrail.SpriteEmitter15'
|
||||
|
||||
bNoDelete=False
|
||||
}
|
||||
164
Sources/Classes/FX_ShockRifleBeamEffect.uc
Normal file
164
Sources/Classes/FX_ShockRifleBeamEffect.uc
Normal file
@@ -0,0 +1,164 @@
|
||||
/*************************************************************
|
||||
*
|
||||
*
|
||||
*
|
||||
*************************************************************/
|
||||
|
||||
/*
|
||||
class FX_ShockRifleBeamEffect extends Emitter;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
Begin Object Class=BeamEmitter Name=BeamEmitter0
|
||||
BeamDistanceRange=(Min=800.000000,Max=800.000000)
|
||||
DetermineEndPointBy=PTEP_Distance
|
||||
LowFrequencyNoiseRange=(Z=(Max=1.000000))
|
||||
FadeOut=True
|
||||
UseSizeScale=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.200000,Max=0.200000),Y=(Min=0.200000,Max=0.200000))
|
||||
Opacity=0.200000
|
||||
FadeOutStartTime=1.500000
|
||||
MaxParticles=8
|
||||
Name="ShockBeam"
|
||||
StartSizeRange=(X=(Min=16.000000,Max=16.000000),Y=(Min=16.000000,Max=16.000000),Z=(Min=16.000000,Max=16.000000))
|
||||
InitialParticlesPerSecond=5000.000000
|
||||
Texture=Texture'EpicParticles.Beams.WhiteStreak01aw'
|
||||
LifetimeRange=(Min=3.000000,Max=3.000000)
|
||||
StartVelocityRange=(X=(Min=20.000000,Max=20.000000))
|
||||
End Object
|
||||
Emitters(0)=BeamEmitter'BeamEmitter0'
|
||||
|
||||
Begin Object Class=BeamEmitter Name=BeamEmitter1
|
||||
BeamDistanceRange=(Min=800.000000,Max=800.000000)
|
||||
DetermineEndPointBy=PTEP_Distance
|
||||
LowFrequencyNoiseRange=(X=(Max=1.000000),Y=(Min=-0.500000,Max=0.500000),Z=(Max=1.000000))
|
||||
HighFrequencyPoints=17
|
||||
HFScaleFactors(0)=(FrequencyScale=(X=1.000000,Y=1.000000,Z=3.000000),RelativeLength=0.520000)
|
||||
FadeOut=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.500000,Max=0.500000),Y=(Min=0.600000,Max=0.600000))
|
||||
Opacity=0.070000
|
||||
FadeOutStartTime=1.500000
|
||||
MaxParticles=8
|
||||
Name="ShockBeam2"
|
||||
StartSizeRange=(X=(Min=3.000000,Max=3.000000),Y=(Min=3.000000,Max=3.000000),Z=(Min=3.000000,Max=3.000000))
|
||||
InitialParticlesPerSecond=5000.000000
|
||||
Texture=Texture'AS_FX_TX.Beams.HotBolt_1'
|
||||
LifetimeRange=(Min=3.000000,Max=3.000000)
|
||||
StartVelocityRange=(X=(Min=20.000000,Max=20.000000))
|
||||
End Object
|
||||
Emitters(1)=BeamEmitter'BeamEmitter1'
|
||||
|
||||
Begin Object Class=BeamEmitter Name=BeamEmitter2
|
||||
BeamDistanceRange=(Min=800.000000,Max=800.000000)
|
||||
DetermineEndPointBy=PTEP_Distance
|
||||
LowFrequencyNoiseRange=(X=(Min=-10.000000,Max=-1.000000),Y=(Min=-10.000000,Max=-0.500000),Z=(Min=-10.000000,Max=-1.000000))
|
||||
HighFrequencyPoints=17
|
||||
HFScaleFactors(0)=(FrequencyScale=(X=1.000000,Y=1.000000,Z=3.000000),RelativeLength=0.520000)
|
||||
FadeOut=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.500000,Max=0.500000),Y=(Min=0.600000,Max=0.600000))
|
||||
Opacity=0.030000
|
||||
FadeOutStartTime=1.500000
|
||||
MaxParticles=8
|
||||
Name="ShockBeam3"
|
||||
StartSizeRange=(X=(Min=3.000000,Max=3.000000),Y=(Min=3.000000,Max=3.000000),Z=(Min=3.000000,Max=3.000000))
|
||||
InitialParticlesPerSecond=5000.000000
|
||||
Texture=Texture'AS_FX_TX.Beams.HotBolt_1'
|
||||
LifetimeRange=(Min=3.000000,Max=3.000000)
|
||||
StartVelocityRange=(X=(Min=20.000000,Max=20.000000))
|
||||
End Object
|
||||
Emitters(2)=BeamEmitter'BeamEmitter2'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter1
|
||||
FadeOut=True
|
||||
SpinParticles=True
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.600000,Max=0.600000),Y=(Min=0.400000,Max=0.400000))
|
||||
Opacity=0.330000
|
||||
FadeOutStartTime=0.540000
|
||||
MaxParticles=15
|
||||
Name="ShockTrail"
|
||||
SpinsPerSecondRange=(X=(Max=0.200000))
|
||||
StartSpinRange=(X=(Max=0.100000))
|
||||
StartSizeRange=(X=(Min=30.000000,Max=30.000000),Y=(Min=30.000000,Max=30.000000),Z=(Min=30.000000,Max=30.000000))
|
||||
InitialParticlesPerSecond=10.000000
|
||||
Texture=Texture'AS_FX_TX.Flares.Laser_Flare'
|
||||
LifetimeRange=(Min=3.000000,Max=3.000000)
|
||||
StartVelocityRange=(X=(Min=680.000000,Max=680.000000))
|
||||
End Object
|
||||
Emitters(3)=SpriteEmitter'SpriteEmitter1'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter2
|
||||
FadeOut=True
|
||||
SpinParticles=True
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.400000,Max=0.400000),Y=(Min=0.600000,Max=0.600000))
|
||||
Opacity=0.270000
|
||||
FadeOutStartTime=0.540000
|
||||
MaxParticles=15
|
||||
Name="ShockTrail2"
|
||||
SpinsPerSecondRange=(X=(Max=0.200000))
|
||||
StartSpinRange=(X=(Max=1.000000))
|
||||
StartSizeRange=(X=(Min=30.000000,Max=30.000000),Y=(Min=30.000000,Max=30.000000),Z=(Min=30.000000,Max=30.000000))
|
||||
InitialParticlesPerSecond=10.000000
|
||||
Texture=Texture'AS_FX_TX.Flares.Laser_Flare'
|
||||
LifetimeRange=(Min=3.000000,Max=3.000000)
|
||||
StartVelocityRange=(X=(Max=480.000000))
|
||||
End Object
|
||||
Emitters(4)=SpriteEmitter'SpriteEmitter2'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter3
|
||||
FadeOut=True
|
||||
SpinParticles=True
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.300000,Max=0.300000),Y=(Min=0.400000,Max=0.400000))
|
||||
Opacity=0.340000
|
||||
FadeOutStartTime=0.540000
|
||||
MaxParticles=15
|
||||
Name="ShockTrailfaint"
|
||||
SpinsPerSecondRange=(X=(Max=0.100000))
|
||||
StartSpinRange=(X=(Max=1.000000))
|
||||
StartSizeRange=(X=(Min=30.000000,Max=30.000000),Y=(Min=30.000000,Max=30.000000),Z=(Min=30.000000,Max=30.000000))
|
||||
InitialParticlesPerSecond=13.000000
|
||||
Texture=Texture'EpicParticles.Flares.SoftFlare'
|
||||
LifetimeRange=(Min=3.000000,Max=3.000000)
|
||||
StartVelocityRange=(X=(Max=480.000000))
|
||||
End Object
|
||||
Emitters(5)=SpriteEmitter'SpriteEmitter3'
|
||||
}
|
||||
*/
|
||||
|
||||
// xEmitter version
|
||||
class FX_ShockRifleBeamEffect extends ShockBeamEffect;
|
||||
|
||||
simulated function SpawnImpactEffects(rotator HitRot, vector EffectLoc)
|
||||
{
|
||||
//Spawn(class'ShockImpactFlare',,, EffectLoc, HitRot);
|
||||
//Spawn(class'ShockImpactRing',,, EffectLoc, HitRot);
|
||||
//Spawn(class'ShockImpactScorch',,, EffectLoc, Rotator(-HitNormal));
|
||||
//Spawn(class'ShockExplosionCore',,, EffectLoc+HitNormal*8, HitRot);
|
||||
Spawn(class'FX_ShockRifleImpact',,, EffectLoc, HitRot);
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
Texture=Texture'UT2341Weapons_Tex.ASMD.ASMDBeamTex'
|
||||
Skins(0)=Texture'UT2341Weapons_Tex.ASMD.ASMDBeamTex'
|
||||
}
|
||||
75
Sources/Classes/FX_ShockRifleBeamMuzFlash.uc
Normal file
75
Sources/Classes/FX_ShockRifleBeamMuzFlash.uc
Normal file
@@ -0,0 +1,75 @@
|
||||
/*************************************************************
|
||||
*
|
||||
*
|
||||
*
|
||||
*************************************************************/
|
||||
|
||||
class FX_ShockRifleBeamMuzFlash extends ShockBeamMuzFlash;
|
||||
|
||||
|
||||
/*
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter22
|
||||
FadeOut=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.300000,Max=0.300000),Y=(Min=0.700000,Max=0.700000))
|
||||
FadeOutStartTime=0.060000
|
||||
MaxParticles=1
|
||||
Name="ShockMuzzle"
|
||||
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=3.000000)
|
||||
StartSizeRange=(X=(Min=6.000000,Max=6.000000),Y=(Min=6.000000,Max=6.000000),Z=(Min=6.000000,Max=6.000000))
|
||||
Texture=Texture'XEffectMat.Shock.ShockComboFlash'
|
||||
LifetimeRange=(Min=0.400000,Max=0.400000)
|
||||
End Object
|
||||
Emitters(0)=SpriteEmitter'SpriteEmitter22'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter23
|
||||
FadeOut=True
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.600000,Max=0.600000),Y=(Min=0.800000,Max=0.800000))
|
||||
Opacity=0.800000
|
||||
FadeOutStartTime=0.060000
|
||||
MaxParticles=1
|
||||
Name="ShockFlare"
|
||||
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=3.000000)
|
||||
StartSizeRange=(X=(Min=12.000000,Max=12.000000),Y=(Min=12.000000,Max=12.000000),Z=(Min=12.000000,Max=12.000000))
|
||||
Texture=Texture'EpicParticles.Flares.BurnFlare1'
|
||||
LifetimeRange=(Min=0.400000,Max=0.400000)
|
||||
End Object
|
||||
Emitters(1)=SpriteEmitter'SpriteEmitter23'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter24
|
||||
FadeOut=True
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.700000,Max=0.700000),Y=(Min=0.600000,Max=0.600000))
|
||||
Opacity=0.590000
|
||||
FadeOutStartTime=0.060000
|
||||
MaxParticles=1
|
||||
Name="SpriteEmitter24"
|
||||
SpinsPerSecondRange=(X=(Max=0.010000))
|
||||
StartSpinRange=(X=(Max=0.700000))
|
||||
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=3.000000)
|
||||
StartSizeRange=(X=(Min=16.000000,Max=16.000000),Y=(Min=16.000000,Max=16.000000),Z=(Min=16.000000,Max=16.000000))
|
||||
Texture=Texture'AW-2004Particles.Weapons.PlasmaStar2'
|
||||
LifetimeRange=(Min=0.400000,Max=0.400000)
|
||||
End Object
|
||||
Emitters(2)=SpriteEmitter'SpriteEmitter24'
|
||||
*/
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
Skins(0)=FinalBlend'UT2341Weapons_Tex.ASMD.ASMDFlashFB'
|
||||
}
|
||||
1030
Sources/Classes/FX_ShockRifleComboVortex.uc
Normal file
1030
Sources/Classes/FX_ShockRifleComboVortex.uc
Normal file
File diff suppressed because it is too large
Load Diff
281
Sources/Classes/FX_ShockRifleImpact.uc
Normal file
281
Sources/Classes/FX_ShockRifleImpact.uc
Normal file
@@ -0,0 +1,281 @@
|
||||
/*************************************************************
|
||||
*
|
||||
*
|
||||
*
|
||||
*************************************************************/
|
||||
|
||||
class FX_ShockRifleImpact extends Emitter;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter27
|
||||
UseCollision=True
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
Acceleration=(X=-1500.000000)
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.500000,Max=0.500000),Y=(Min=0.800000,Max=0.800000))
|
||||
FadeOutStartTime=0.800000
|
||||
SpinCCWorCW=(X=0.750000)
|
||||
SpinsPerSecondRange=(X=(Min=0.500000,Max=1.000000),Y=(Min=0.500000,Max=1.000000),Z=(Min=0.500000,Max=1.000000))
|
||||
StartSpinRange=(X=(Max=1.000000),Y=(Max=1.000000),Z=(Max=1.000000))
|
||||
SizeScale(0)=(RelativeTime=0.140000,RelativeSize=0.100000)
|
||||
SizeScaleRepeats=1.000000
|
||||
StartSizeRange=(X=(Min=12.000000,Max=12.000000),Y=(Min=12.000000,Max=12.000000),Z=(Min=12.000000,Max=12.000000))
|
||||
InitialParticlesPerSecond=5000.000000
|
||||
Texture=Texture'AW-2004Particles.Weapons.PlasmaStar'
|
||||
LifetimeRange=(Min=2.000000,Max=2.000000)
|
||||
End Object
|
||||
Emitters(0)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_ShockRifleImpact.SpriteEmitter27'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter28
|
||||
UseCollision=True
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
Acceleration=(Z=-1500.000000)
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.400000,Max=0.400000),Y=(Min=0.500000,Max=0.500000))
|
||||
Opacity=0.860000
|
||||
FadeOutStartTime=0.800000
|
||||
SpinCCWorCW=(X=0.750000)
|
||||
SpinsPerSecondRange=(X=(Min=0.500000,Max=1.000000),Y=(Min=0.500000,Max=1.000000),Z=(Min=0.500000,Max=1.000000))
|
||||
StartSpinRange=(X=(Max=1.000000),Y=(Max=1.000000),Z=(Max=1.000000))
|
||||
SizeScale(0)=(RelativeTime=0.140000,RelativeSize=0.100000)
|
||||
SizeScaleRepeats=1.000000
|
||||
StartSizeRange=(X=(Min=18.000000,Max=18.000000),Y=(Min=18.000000,Max=18.000000),Z=(Min=18.000000,Max=18.000000))
|
||||
InitialParticlesPerSecond=5000.000000
|
||||
Texture=Texture'AW-2004Particles.Weapons.PlasmaStar'
|
||||
LifetimeRange=(Min=2.000000,Max=2.000000)
|
||||
StartVelocityRange=(X=(Min=-400.000000,Max=700.000000),Y=(Min=-400.000000,Max=400.000000),Z=(Min=-300.000000,Max=400.000000))
|
||||
End Object
|
||||
Emitters(1)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_ShockRifleImpact.SpriteEmitter28'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter29
|
||||
UseDirectionAs=PTDU_Normal
|
||||
ProjectionNormal=(X=1.000000,Z=0.000000)
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.400000,Max=0.400000),Y=(Min=0.500000,Max=0.500000))
|
||||
Opacity=0.490000
|
||||
FadeOutStartTime=0.600000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
SpinsPerSecondRange=(X=(Max=0.200000))
|
||||
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=4.000000)
|
||||
StartSizeRange=(X=(Min=30.000000,Max=30.000000),Y=(Min=30.000000,Max=30.000000),Z=(Min=30.000000,Max=30.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'AW-2004Particles.Energy.AirBlast'
|
||||
LifetimeRange=(Min=1.000000,Max=1.000000)
|
||||
End Object
|
||||
Emitters(2)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_ShockRifleImpact.SpriteEmitter29'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter31
|
||||
UseDirectionAs=PTDU_Normal
|
||||
ProjectionNormal=(X=1.000000,Z=0.000000)
|
||||
FadeOut=True
|
||||
FadeIn=True
|
||||
RespawnDeadParticles=False
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.400000,Max=0.400000),Y=(Min=0.500000,Max=0.500000))
|
||||
Opacity=0.880000
|
||||
FadeOutStartTime=0.600000
|
||||
FadeInEndTime=0.060000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
SpinsPerSecondRange=(X=(Max=0.200000))
|
||||
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=4.000000)
|
||||
StartSizeRange=(X=(Min=50.000000,Max=50.000000),Y=(Min=50.000000,Max=50.000000),Z=(Min=50.000000,Max=50.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'AW-2004Particles.Weapons.HardSpot'
|
||||
LifetimeRange=(Min=1.000000,Max=1.000000)
|
||||
End Object
|
||||
Emitters(3)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_ShockRifleImpact.SpriteEmitter31'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter32
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.400000,Max=0.400000),Y=(Min=0.500000,Max=0.500000))
|
||||
Opacity=0.790000
|
||||
FadeOutStartTime=0.600000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
StartLocationRange=(Z=(Min=10.000000,Max=10.000000))
|
||||
SpinsPerSecondRange=(X=(Min=0.500000,Max=0.900000))
|
||||
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=4.000000)
|
||||
StartSizeRange=(X=(Min=20.000000,Max=20.000000),Y=(Min=20.000000,Max=20.000000),Z=(Min=20.000000,Max=20.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'AW-2004Particles.Weapons.PlasmaStar'
|
||||
LifetimeRange=(Min=1.000000,Max=1.000000)
|
||||
End Object
|
||||
Emitters(4)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_ShockRifleImpact.SpriteEmitter32'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter33
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.400000,Max=0.400000),Y=(Min=0.500000,Max=0.500000))
|
||||
Opacity=0.790000
|
||||
FadeOutStartTime=0.600000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
StartLocationRange=(Z=(Min=10.000000,Max=10.000000))
|
||||
SpinsPerSecondRange=(X=(Min=0.900000,Max=2.000000))
|
||||
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=4.000000)
|
||||
StartSizeRange=(X=(Min=20.000000,Max=20.000000),Y=(Min=20.000000,Max=20.000000),Z=(Min=20.000000,Max=20.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'AW-2004Particles.Weapons.PlasmaStar'
|
||||
LifetimeRange=(Min=1.000000,Max=1.000000)
|
||||
End Object
|
||||
Emitters(5)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_ShockRifleImpact.SpriteEmitter33'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter34
|
||||
UseDirectionAs=PTDU_Normal
|
||||
ProjectionNormal=(X=1.000000,Z=0.000000)
|
||||
FadeOut=True
|
||||
FadeIn=True
|
||||
RespawnDeadParticles=False
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.400000,Max=0.400000),Y=(Min=0.500000,Max=0.500000))
|
||||
Opacity=0.790000
|
||||
FadeOutStartTime=0.600000
|
||||
FadeInEndTime=0.060000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
SpinsPerSecondRange=(X=(Max=0.200000))
|
||||
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=4.000000)
|
||||
StartSizeRange=(X=(Min=74.000000,Max=74.000000),Y=(Min=74.000000,Max=74.000000),Z=(Min=74.000000,Max=74.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'AW-2004Particles.Weapons.PlasmaStar2'
|
||||
LifetimeRange=(Min=1.000000,Max=1.000000)
|
||||
End Object
|
||||
Emitters(6)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_ShockRifleImpact.SpriteEmitter34'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter35
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.600000,Max=0.600000),Y=(Min=0.700000,Max=0.700000))
|
||||
Opacity=0.490000
|
||||
FadeOutStartTime=0.600000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
StartLocationRange=(Z=(Min=20.000000,Max=20.000000))
|
||||
SpinsPerSecondRange=(X=(Min=0.100000,Max=0.100000))
|
||||
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=4.000000)
|
||||
StartSizeRange=(X=(Min=20.000000,Max=20.000000),Y=(Min=20.000000,Max=20.000000),Z=(Min=20.000000,Max=20.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'EpicParticles.Flares.FlashFlare1'
|
||||
LifetimeRange=(Min=1.000000,Max=1.000000)
|
||||
End Object
|
||||
Emitters(7)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_ShockRifleImpact.SpriteEmitter35'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter41
|
||||
UseDirectionAs=PTDU_Normal
|
||||
ProjectionNormal=(X=1.000000,Z=0.000000)
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.400000,Max=0.400000),Y=(Min=0.500000,Max=0.500000))
|
||||
Opacity=0.370000
|
||||
FadeOutStartTime=0.600000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
SpinsPerSecondRange=(X=(Max=0.200000))
|
||||
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=4.000000)
|
||||
StartSizeRange=(X=(Min=34.000000,Max=34.000000),Y=(Min=34.000000,Max=34.000000),Z=(Min=34.000000,Max=34.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'AW-2004Particles.Energy.AirBlast'
|
||||
LifetimeRange=(Min=1.000000,Max=1.000000)
|
||||
End Object
|
||||
Emitters(8)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_ShockRifleImpact.SpriteEmitter41'
|
||||
|
||||
Begin Object Class=BeamEmitter Name=BeamEmitter6
|
||||
BeamDistanceRange=(Min=200.000000,Max=200.000000)
|
||||
DetermineEndPointBy=PTEP_Distance
|
||||
LowFrequencyNoiseRange=(X=(Max=10.000000),Y=(Max=10.000000),Z=(Max=10.000000))
|
||||
LowFrequencyPoints=2
|
||||
HighFrequencyNoiseRange=(X=(Min=-10.000000,Max=10.000000),Y=(Min=-10.000000,Max=10.000000),Z=(Min=-10.000000,Max=10.000000))
|
||||
HFScaleFactors(0)=(FrequencyScale=(X=0.400000,Y=0.400000,Z=0.400000),RelativeLength=0.280000)
|
||||
UseHighFrequencyScale=True
|
||||
BranchProbability=(Min=1.000000,Max=1.000000)
|
||||
BranchSpawnAmountRange=(Min=5.000000,Max=5.000000)
|
||||
LinkupLifetime=True
|
||||
FadeOut=True
|
||||
FadeIn=True
|
||||
RespawnDeadParticles=False
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.400000,Max=0.400000),Y=(Min=0.500000,Max=0.500000))
|
||||
Opacity=0.380000
|
||||
FadeOutStartTime=2.000000
|
||||
FadeInEndTime=2.000000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
StartLocationShape=PTLS_Sphere
|
||||
SphereRadiusRange=(Max=25.000000)
|
||||
SizeScale(0)=(RelativeTime=0.520000,RelativeSize=-1.000000)
|
||||
SizeScaleRepeats=1.000000
|
||||
StartSizeRange=(X=(Min=10.000000,Max=10.000000),Y=(Min=10.000000,Max=10.000000),Z=(Min=10.000000,Max=10.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'AW-2004Particles.Energy.BeamBolt1a'
|
||||
LifetimeRange=(Min=0.500000,Max=0.750000)
|
||||
StartVelocityRange=(X=(Min=-20.000000,Max=20.000000),Y=(Min=-20.000000,Max=20.000000),Z=(Min=-20.000000,Max=20.000000))
|
||||
End Object
|
||||
Emitters(9)=BeamEmitter'UT2341WeaponsReducedv1a.FX_ShockRifleImpact.BeamEmitter6'
|
||||
|
||||
bNoDelete=False
|
||||
}
|
||||
42
Sources/Classes/FX_ShockRifleMuzFlash3rd.uc
Normal file
42
Sources/Classes/FX_ShockRifleMuzFlash3rd.uc
Normal file
@@ -0,0 +1,42 @@
|
||||
/*************************************************************
|
||||
*
|
||||
*
|
||||
*
|
||||
*************************************************************/
|
||||
|
||||
class FX_ShockRifleMuzFlash3rd extends ShockProjMuzFlash3rd;
|
||||
|
||||
/*
|
||||
defaultproperties
|
||||
{
|
||||
mNumPerFlash=1
|
||||
mParticleType=PT_Mesh
|
||||
mStartParticles=0
|
||||
mMaxParticles=6
|
||||
mLifeRange(0)=0.130000
|
||||
mLifeRange(1)=0.130000
|
||||
mRegenRange(0)=0.000000
|
||||
mRegenRange(1)=0.000000
|
||||
mSpawnVecB=(Z=0.000000)
|
||||
mSpeedRange(0)=0.000000
|
||||
mSpeedRange(1)=0.000000
|
||||
mPosRelative=True
|
||||
mAirResistance=0.000000
|
||||
mRandOrient=True
|
||||
mSizeRange(0)=0.350000
|
||||
mSizeRange(1)=0.400000
|
||||
mGrowthRate=3.200000
|
||||
mColorRange(0)=(R=50)
|
||||
mColorRange(1)=(R=50)
|
||||
mAttenKa=0.000000
|
||||
mRandTextures=True
|
||||
mMeshNodes(0)=StaticMesh'XEffects.MinigunFlashMesh'
|
||||
Skins(0)=FinalBlend'XGameShaders.WeaponShaders.ShockMuzFlash3rdFinal'
|
||||
Style=STY_Additive
|
||||
}
|
||||
*/
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
Skins(0)=FinalBlend'UT2341Weapons_Tex.ASMD.ASMDMuzFlash3rdFinal'
|
||||
}
|
||||
125
Sources/Classes/FX_ShockRifleProjectile.uc
Normal file
125
Sources/Classes/FX_ShockRifleProjectile.uc
Normal file
@@ -0,0 +1,125 @@
|
||||
/*************************************************************
|
||||
*
|
||||
*
|
||||
*
|
||||
*************************************************************/
|
||||
|
||||
class FX_ShockRifleProjectile extends Emitter;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter0
|
||||
SpinParticles=True
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.100000,Max=0.100000),Y=(Min=0.500000,Max=0.500000))
|
||||
Opacity=0.400000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
SpinCCWorCW=(X=0.680000)
|
||||
SpinsPerSecondRange=(X=(Min=9.000000,Max=9.000000),Y=(Min=0.500000,Max=1.000000),Z=(Min=0.500000,Max=1.000000))
|
||||
StartSpinRange=(X=(Max=1.000000),Y=(Max=1.000000),Z=(Max=1.000000))
|
||||
StartSizeRange=(X=(Min=90.000000,Max=90.000000),Y=(Min=90.000000,Max=90.000000),Z=(Min=60.000000,Max=60.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'AW-2004Particles.Weapons.PlasmaStar'
|
||||
End Object
|
||||
Emitters(0)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_ShockRifleProjectile.SpriteEmitter0'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter1
|
||||
SpinParticles=True
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.800000,Max=0.800000))
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
SpinCCWorCW=(X=0.680000)
|
||||
SpinsPerSecondRange=(X=(Min=9.000000,Max=9.000000),Y=(Min=0.500000,Max=1.000000),Z=(Min=0.500000,Max=1.000000))
|
||||
StartSpinRange=(X=(Max=1.000000),Y=(Max=1.000000),Z=(Max=1.000000))
|
||||
StartSizeRange=(X=(Min=14.60000,Max=14.60000),Y=(Min=14.60000,Max=14.60000),Z=(Min=14.60000,Max=14.600000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'XEffectMat.Shock.shock_mark_heat'
|
||||
End Object
|
||||
Emitters(1)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_ShockRifleProjectile.SpriteEmitter1'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter2
|
||||
SpinParticles=True
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.000000,Max=0.000000),Y=(Min=0.450000,Max=0.450000))
|
||||
Opacity=0.400000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
SpinCCWorCW=(X=0.680000)
|
||||
SpinsPerSecondRange=(X=(Min=-9.000000,Max=-9.000000),Y=(Min=0.500000,Max=1.000000),Z=(Min=0.500000,Max=1.000000))
|
||||
StartSpinRange=(X=(Max=1.000000),Y=(Max=1.000000),Z=(Max=1.000000))
|
||||
StartSizeRange=(X=(Min=90.000000,Max=90.000000),Y=(Min=90.000000,Max=90.000000),Z=(Min=90.000000,Max=90.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'AW-2004Particles.Weapons.PlasmaStar'
|
||||
End Object
|
||||
Emitters(2)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_ShockRifleProjectile.SpriteEmitter2'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter3
|
||||
SpinParticles=True
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.840000,Max=0.840000),Y=(Min=0.000000,Max=0.000000),Z=(Min=0.800000,Max=0.800000))
|
||||
Opacity=0.260000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
SpinCCWorCW=(X=0.680000)
|
||||
SpinsPerSecondRange=(X=(Min=-9.000000,Max=-9.000000),Y=(Min=0.500000,Max=1.000000),Z=(Min=0.500000,Max=1.000000))
|
||||
StartSpinRange=(X=(Max=1.000000),Y=(Max=1.000000),Z=(Max=1.000000))
|
||||
StartSizeRange=(X=(Min=40.000000,Max=40.000000),Y=(Min=40.000000,Max=40.000000),Z=(Min=40.000000,Max=40.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'AW-2004Particles.Energy.EclipseCircle'
|
||||
End Object
|
||||
Emitters(3)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_ShockRifleProjectile.SpriteEmitter3'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter4
|
||||
SpinParticles=True
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.800000,Max=0.800000))
|
||||
Opacity=0.200000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
SpinCCWorCW=(X=0.680000)
|
||||
SpinsPerSecondRange=(X=(Min=9.000000,Max=9.000000),Y=(Min=0.500000,Max=1.000000),Z=(Min=0.500000,Max=1.000000))
|
||||
StartSpinRange=(X=(Max=1.000000),Y=(Max=1.000000),Z=(Max=1.000000))
|
||||
StartSizeRange=(X=(Min=20.000000,Max=20.000000),Y=(Min=20.000000,Max=20.000000),Z=(Min=20.000000,Max=20.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'AW-2004Particles.Energy.PurpleSwell'
|
||||
End Object
|
||||
Emitters(4)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_ShockRifleProjectile.SpriteEmitter4'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter5
|
||||
SpinParticles=True
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.800000,Max=0.800000))
|
||||
Opacity=0.130000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
SpinCCWorCW=(X=1.000000)
|
||||
SpinsPerSecondRange=(X=(Min=0.050000,Max=0.050000),Y=(Min=0.500000,Max=1.000000),Z=(Min=0.500000,Max=1.000000))
|
||||
StartSpinRange=(Y=(Max=1.000000),Z=(Max=1.000000))
|
||||
StartSizeRange=(X=(Min=100.000000,Max=100.000000),Y=(Min=100.000000,Max=100.000000),Z=(Min=100.000000,Max=100.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'EpicParticles.Flares.FlickerFlare2'
|
||||
End Object
|
||||
Emitters(5)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_ShockRifleProjectile.SpriteEmitter5'
|
||||
|
||||
bNoDelete=False
|
||||
}
|
||||
12
Sources/Classes/FX_ShockRifleProjectileMuzFlash.uc
Normal file
12
Sources/Classes/FX_ShockRifleProjectileMuzFlash.uc
Normal file
@@ -0,0 +1,12 @@
|
||||
/*************************************************************
|
||||
*
|
||||
*
|
||||
*
|
||||
*************************************************************/
|
||||
|
||||
class FX_ShockRifleProjectileMuzFlash extends ShockProjMuzFlash;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
Skins(0)=FinalBlend'UT2341Weapons_Tex.ASMD.ASMDMuzFlash1stFinal'
|
||||
}
|
||||
88
Sources/Classes/FX_SniperRifleBeamEffect.uc
Normal file
88
Sources/Classes/FX_SniperRifleBeamEffect.uc
Normal file
@@ -0,0 +1,88 @@
|
||||
/*************************************************************
|
||||
*
|
||||
*
|
||||
*
|
||||
*************************************************************/
|
||||
|
||||
class FX_SniperRifleBeamEffect extends xEmitter;
|
||||
|
||||
var vector HitNormal;
|
||||
|
||||
replication
|
||||
{
|
||||
reliable if(bNetInitial && Role == ROLE_Authority)
|
||||
HitNormal;
|
||||
}
|
||||
|
||||
simulated function PostNetBeginPlay()
|
||||
{
|
||||
if (Role < ROLE_Authority)
|
||||
SpawnEffects();
|
||||
}
|
||||
|
||||
function AimAt(Vector hl, Vector hn, float Charge)
|
||||
{
|
||||
HitNormal = hn;
|
||||
mSpawnVecA = hl;
|
||||
|
||||
if (Level.NetMode != NM_DedicatedServer)
|
||||
SpawnEffects();
|
||||
}
|
||||
|
||||
|
||||
simulated function SpawnImpactEffects(rotator HitRot, vector EffectLoc)
|
||||
{
|
||||
Spawn(class'pclImpactSmoke',,, EffectLoc, HitRot);
|
||||
}
|
||||
|
||||
simulated function bool CheckMaxEffectDistance(PlayerController P, vector SpawnLocation)
|
||||
{
|
||||
return !P.BeyondViewDistance(SpawnLocation,3000);
|
||||
}
|
||||
|
||||
simulated function SpawnEffects()
|
||||
{
|
||||
local xWeaponAttachment Attachment;
|
||||
|
||||
if (Instigator != None)
|
||||
{
|
||||
if ( Instigator.IsFirstPerson() )
|
||||
{
|
||||
if ( (Instigator.Weapon == None) || Instigator.Weapon.WeaponCentered() || (Instigator.Weapon.Instigator == None) )
|
||||
SetLocation( Instigator.Location );
|
||||
else
|
||||
SetLocation( Instigator.Weapon.GetEffectStart() );
|
||||
}
|
||||
else
|
||||
{
|
||||
Attachment = xPawn(Instigator).WeaponAttachment;
|
||||
if ( Attachment != None && (Level.TimeSeconds - Attachment.LastRenderTime) < 1 )
|
||||
SetLocation( Attachment.GetTipLocation() );
|
||||
else
|
||||
SetLocation( Instigator.Location );
|
||||
}
|
||||
}
|
||||
|
||||
if (EffectIsRelevant(mSpawnVecA + HitNormal*2,false) && HitNormal != Vect(0,0,0))
|
||||
SpawnImpactEffects(Rotator(HitNormal), mSpawnVecA + HitNormal*2);
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
mParticleType=PT_Beam
|
||||
mMaxParticles=3
|
||||
mLifeRange(0)=0.100000
|
||||
mRegenDist=150.000000
|
||||
mSizeRange(0)=2.000000
|
||||
mSizeRange(1)=2.000000
|
||||
mColorRange(0)=(B=0)
|
||||
mColorRange(1)=(B=0)
|
||||
mAttenKa=0.100000
|
||||
bReplicateInstigator=True
|
||||
bReplicateMovement=False
|
||||
RemoteRole=ROLE_SimulatedProxy
|
||||
NetPriority=3.000000
|
||||
LifeSpan=0.100000
|
||||
Skins(0)=Texture'XEffectMat.Ion.painter_beam'
|
||||
Style=STY_Additive
|
||||
}
|
||||
11
Sources/Classes/FX_SniperRifleBeamEffectBlue.uc
Normal file
11
Sources/Classes/FX_SniperRifleBeamEffectBlue.uc
Normal file
@@ -0,0 +1,11 @@
|
||||
/*************************************************************
|
||||
*
|
||||
*
|
||||
*
|
||||
*************************************************************/
|
||||
|
||||
class FX_SniperRifleBeamEffectBlue extends FX_SniperRifleBeamEffect;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
}
|
||||
120
Sources/Classes/FX_SniperRifleMuzFlash.uc
Normal file
120
Sources/Classes/FX_SniperRifleMuzFlash.uc
Normal file
@@ -0,0 +1,120 @@
|
||||
/*************************************************************
|
||||
*
|
||||
*
|
||||
*
|
||||
*************************************************************/
|
||||
|
||||
class FX_SniperRifleMuzFlash extends Emitter;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter10
|
||||
FadeOut=True
|
||||
FadeIn=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
TriggerDisabled=False
|
||||
Acceleration=(X=6.000000,Z=80.000000)
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
Opacity=0.080000
|
||||
FadeOutStartTime=0.120000
|
||||
FadeInEndTime=0.120000
|
||||
MaxParticles=16
|
||||
SpinsPerSecondRange=(X=(Min=0.100000,Max=0.100000))
|
||||
StartSpinRange=(X=(Max=1.000000))
|
||||
SizeScale(0)=(RelativeTime=0.610000,RelativeSize=-2.000000)
|
||||
StartSizeRange=(X=(Min=14.000000,Max=14.000000),Y=(Min=14.000000,Max=14.000000),Z=(Min=14.000000,Max=14.000000))
|
||||
DrawStyle=PTDS_AlphaBlend
|
||||
Texture=Texture'EpicParticles.Smoke.Smokepuff'
|
||||
LifetimeRange=(Min=1.100000,Max=1.100000)
|
||||
SpawnOnTriggerRange=(Min=7.000000,Max=7.000000)
|
||||
SpawnOnTriggerPPS=7.000000
|
||||
End Object
|
||||
Emitters(0)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_SniperRifleMuzFlash.SpriteEmitter10'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter14
|
||||
FadeOut=True
|
||||
FadeIn=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
TriggerDisabled=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
Opacity=0.070000
|
||||
FadeOutStartTime=0.800000
|
||||
FadeInEndTime=0.240000
|
||||
MaxParticles=7
|
||||
SpinsPerSecondRange=(X=(Min=0.100000,Max=0.100000))
|
||||
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=3.000000)
|
||||
StartSizeRange=(X=(Min=16.000000,Max=16.000000),Y=(Min=16.000000,Max=16.000000),Z=(Min=16.000000,Max=16.000000))
|
||||
DrawStyle=PTDS_AlphaBlend
|
||||
Texture=Texture'EpicParticles.Smoke.Smokepuff'
|
||||
LifetimeRange=(Min=2.000000,Max=2.000000)
|
||||
SpawnOnTriggerRange=(Min=7.000000,Max=7.000000)
|
||||
SpawnOnTriggerPPS=7.000000
|
||||
End Object
|
||||
Emitters(1)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_SniperRifleMuzFlash.SpriteEmitter14'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter12
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
TriggerDisabled=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(Y=(Min=0.800000,Max=0.800000),Z=(Min=0.400000,Max=0.400000))
|
||||
Opacity=0.500000
|
||||
FadeOutStartTime=0.110550
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
SpinsPerSecondRange=(X=(Min=0.500000,Max=0.500000))
|
||||
SizeScale(0)=(RelativeTime=0.280000,RelativeSize=2.000000)
|
||||
StartSizeRange=(X=(Min=20.000000,Max=20.000000),Y=(Min=20.000000,Max=20.000000),Z=(Min=20.000000,Max=20.000000))
|
||||
Texture=Texture'XEffects.Skins.MuzFlashFlak_t'
|
||||
LifetimeRange=(Min=0.201000,Max=0.201000)
|
||||
SpawnOnTriggerRange=(Min=1.000000,Max=1.000000)
|
||||
SpawnOnTriggerPPS=50000.000000
|
||||
End Object
|
||||
Emitters(2)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_SniperRifleMuzFlash.SpriteEmitter12'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter13
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
TriggerDisabled=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(Y=(Min=0.700000,Max=0.700000),Z=(Min=0.300000,Max=0.300000))
|
||||
Opacity=0.600000
|
||||
FadeOutStartTime=0.110550
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
SpinsPerSecondRange=(X=(Min=0.300000,Max=0.300000))
|
||||
SizeScale(0)=(RelativeTime=0.370000,RelativeSize=2.000000)
|
||||
StartSizeRange=(X=(Min=80.000000,Max=80.000000),Y=(Min=80.000000,Max=80.000000),Z=(Min=80.000000,Max=80.000000))
|
||||
Texture=Texture'EpicParticles.Flares.FlashFlare1'
|
||||
LifetimeRange=(Min=0.201000,Max=0.201000)
|
||||
SpawnOnTriggerRange=(Min=1.000000,Max=1.000000)
|
||||
SpawnOnTriggerPPS=50000.000000
|
||||
End Object
|
||||
Emitters(3)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_SniperRifleMuzFlash.SpriteEmitter13'
|
||||
|
||||
bNoDelete=False
|
||||
bHardAttach=True
|
||||
}
|
||||
15
Sources/Classes/FX_SniperTracerTrail.uc
Normal file
15
Sources/Classes/FX_SniperTracerTrail.uc
Normal file
@@ -0,0 +1,15 @@
|
||||
/*************************************************************
|
||||
*
|
||||
*
|
||||
*
|
||||
*************************************************************/
|
||||
|
||||
class FX_SniperTracerTrail extends TransTrail;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
mLifeRange(0)=0.250000
|
||||
mLifeRange(1)=0.250000
|
||||
mColorRange(0)=(B=10,G=10,R=180)
|
||||
mColorRange(1)=(B=10,G=10,R=180)
|
||||
}
|
||||
13
Sources/Classes/FX_SniperTracerTrailBlue.uc
Normal file
13
Sources/Classes/FX_SniperTracerTrailBlue.uc
Normal file
@@ -0,0 +1,13 @@
|
||||
/*************************************************************
|
||||
*
|
||||
*
|
||||
*
|
||||
*************************************************************/
|
||||
|
||||
class FX_SniperTracerTrailBlue extends FX_SniperTracerTrail;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
mColorRange(0)=(B=180,R=10)
|
||||
mColorRange(1)=(B=180,R=10)
|
||||
}
|
||||
56
Sources/Classes/FX_SniperWallHitEffect.uc
Normal file
56
Sources/Classes/FX_SniperWallHitEffect.uc
Normal file
@@ -0,0 +1,56 @@
|
||||
/*************************************************************
|
||||
*
|
||||
*
|
||||
*
|
||||
*************************************************************/
|
||||
|
||||
class FX_SniperWallHitEffect extends SniperWallHitEffect;
|
||||
|
||||
simulated function SpawnEffects()
|
||||
{
|
||||
local rotator ReverseRot;
|
||||
local PlayerController PC;
|
||||
local vector Dir, LinePos, LineDir;
|
||||
local bool bViewed;
|
||||
|
||||
PlaySound(ImpactSounds[Rand(6)],, 2.5*TransientSoundVolume,,200);
|
||||
|
||||
PC = Level.GetLocalPlayerController();
|
||||
if ( (PC != None) && (PC.ViewTarget != None) && (VSize(PC.Viewtarget.Location - Location) < 3000*PC.FOVBias) )
|
||||
{
|
||||
Spawn(class'LongBulletDecal');
|
||||
bViewed = true;
|
||||
}
|
||||
|
||||
if ( !PhysicsVolume.bWaterVolume )
|
||||
{
|
||||
ReverseRot = rotator(-1 * vector(Rotation));
|
||||
if ( bViewed )
|
||||
Spawn(class'pclImpactSmoke',,,,ReverseRot);
|
||||
Spawn(class'SmallExplosion',,,,ReverseRot);
|
||||
Spawn(class'WallSparks',,,,ReverseRot);
|
||||
}
|
||||
|
||||
if ( FireStart != vect(0,0,0) )
|
||||
{
|
||||
// see if local player controller near bullet, but missed
|
||||
if ( (PC != None) && (PC.Pawn != None) )
|
||||
{
|
||||
Dir = Normal(Location - FireStart);
|
||||
LinePos = (FireStart + (Dir dot (PC.Pawn.Location - FireStart)) * Dir);
|
||||
LineDir = PC.Pawn.Location - LinePos;
|
||||
if ( VSize(LineDir) < 150 )
|
||||
{
|
||||
SetLocation(LinePos);
|
||||
if ( FRand() < 0.5 )
|
||||
PlaySound(sound'Impact3Snd',,,,80);
|
||||
else
|
||||
PlaySound(sound'Impact7Snd',,,,80);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
}
|
||||
8
Sources/Classes/FX_SuperShockMuzFlash.uc
Normal file
8
Sources/Classes/FX_SuperShockMuzFlash.uc
Normal file
@@ -0,0 +1,8 @@
|
||||
class FX_SuperShockMuzFlash extends ShockMuzFlash;
|
||||
|
||||
#exec OBJ LOAD FILE=XEffectMat.utx
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
Skins(0)=Texture'UT2341Weapons_Tex.SuperShock.SuperShockSparkle'
|
||||
}
|
||||
6
Sources/Classes/FX_SuperShockMuzFlash3rd.uc
Normal file
6
Sources/Classes/FX_SuperShockMuzFlash3rd.uc
Normal file
@@ -0,0 +1,6 @@
|
||||
class FX_SuperShockMuzFlash3rd extends ShockMuzFlash3rd;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
Skins(0)=Texture'UT2341Weapons_Tex.SuperShock.SuperShockSparkle'
|
||||
}
|
||||
60
Sources/Classes/FX_SuperShockRifleBeamEffect.uc
Normal file
60
Sources/Classes/FX_SuperShockRifleBeamEffect.uc
Normal file
@@ -0,0 +1,60 @@
|
||||
// xEmitter version
|
||||
class FX_SuperShockRifleBeamEffect extends ShockBeamEffect;
|
||||
|
||||
simulated function SpawnImpactEffects(rotator HitRot, vector EffectLoc)
|
||||
{
|
||||
//Spawn(class'ShockImpactFlare',,, EffectLoc, HitRot);
|
||||
//Spawn(class'ShockImpactRing',,, EffectLoc, HitRot);
|
||||
//Spawn(class'ShockImpactScorch',,, EffectLoc, Rotator(-HitNormal));
|
||||
//Spawn(class'ShockExplosionCore',,, EffectLoc+HitNormal*8, HitRot);
|
||||
Spawn(class'FX_SuperShockRifleImpact',,, EffectLoc, HitRot);
|
||||
}
|
||||
|
||||
simulated function SpawnEffects()
|
||||
{
|
||||
local ShockBeamCoil Coil;
|
||||
local xWeaponAttachment Attachment;
|
||||
|
||||
if (Instigator != None)
|
||||
{
|
||||
if ( Instigator.IsFirstPerson() )
|
||||
{
|
||||
if ( (Instigator.Weapon != None) && (Instigator.Weapon.Instigator == Instigator) )
|
||||
SetLocation(Instigator.Weapon.GetEffectStart());
|
||||
else
|
||||
SetLocation(Instigator.Location);
|
||||
log("Attempting to spawn MuzFlash");
|
||||
Spawn(MuzFlashClass,,, Location);
|
||||
}
|
||||
else
|
||||
{
|
||||
Attachment = xPawn(Instigator).WeaponAttachment;
|
||||
if (Attachment != None && (Level.TimeSeconds - Attachment.LastRenderTime) < 1)
|
||||
SetLocation(Attachment.GetTipLocation());
|
||||
else
|
||||
SetLocation(Instigator.Location + Instigator.EyeHeight*Vect(0,0,1) + Normal(mSpawnVecA - Instigator.Location) * 25.0);
|
||||
log("Attempting to spawn MuzFlash3");
|
||||
Spawn(MuzFlash3Class);
|
||||
}
|
||||
}
|
||||
|
||||
if ( EffectIsRelevant(mSpawnVecA + HitNormal*2,false) && (HitNormal != Vect(0,0,0)) )
|
||||
SpawnImpactEffects(Rotator(HitNormal),mSpawnVecA + HitNormal*2);
|
||||
|
||||
if ( (!Level.bDropDetail && (Level.DetailMode != DM_Low) && (VSize(Location - mSpawnVecA) > 40) && !Level.GetLocalPlayerController().BeyondViewDistance(Location,0))
|
||||
|| ((Instigator != None) && Instigator.IsFirstPerson()) )
|
||||
{
|
||||
Coil = Spawn(CoilClass,,, Location, Rotation);
|
||||
if (Coil != None)
|
||||
Coil.mSpawnVecA = mSpawnVecA;
|
||||
}
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
CoilClass=Class'XEffects.ShockBeamCoilB'
|
||||
MuzFlashClass=Class'UT2341WeaponsReducedv1a.FX_SuperShockMuzFlash'
|
||||
MuzFlash3Class=Class'UT2341WeaponsReducedv1a.FX_SuperShockMuzFlash3rd'
|
||||
Texture=Texture'UT2341Weapons_Tex.SuperShock.SuperShockBeamTex'
|
||||
Skins(0)=Texture'UT2341Weapons_Tex.SuperShock.SuperShockBeamTex'
|
||||
}
|
||||
75
Sources/Classes/FX_SuperShockRifleBeamMuzFlash.uc
Normal file
75
Sources/Classes/FX_SuperShockRifleBeamMuzFlash.uc
Normal file
@@ -0,0 +1,75 @@
|
||||
/*************************************************************
|
||||
*
|
||||
*
|
||||
*
|
||||
*************************************************************/
|
||||
|
||||
class FX_SuperShockRifleBeamMuzFlash extends ShockBeamMuzFlash;
|
||||
|
||||
|
||||
/*
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter22
|
||||
FadeOut=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.300000,Max=0.300000),Y=(Min=0.700000,Max=0.700000))
|
||||
FadeOutStartTime=0.060000
|
||||
MaxParticles=1
|
||||
Name="ShockMuzzle"
|
||||
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=3.000000)
|
||||
StartSizeRange=(X=(Min=6.000000,Max=6.000000),Y=(Min=6.000000,Max=6.000000),Z=(Min=6.000000,Max=6.000000))
|
||||
Texture=Texture'XEffectMat.Shock.ShockComboFlash'
|
||||
LifetimeRange=(Min=0.400000,Max=0.400000)
|
||||
End Object
|
||||
Emitters(0)=SpriteEmitter'SpriteEmitter22'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter23
|
||||
FadeOut=True
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.600000,Max=0.600000),Y=(Min=0.800000,Max=0.800000))
|
||||
Opacity=0.800000
|
||||
FadeOutStartTime=0.060000
|
||||
MaxParticles=1
|
||||
Name="ShockFlare"
|
||||
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=3.000000)
|
||||
StartSizeRange=(X=(Min=12.000000,Max=12.000000),Y=(Min=12.000000,Max=12.000000),Z=(Min=12.000000,Max=12.000000))
|
||||
Texture=Texture'EpicParticles.Flares.BurnFlare1'
|
||||
LifetimeRange=(Min=0.400000,Max=0.400000)
|
||||
End Object
|
||||
Emitters(1)=SpriteEmitter'SpriteEmitter23'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter24
|
||||
FadeOut=True
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.700000,Max=0.700000),Y=(Min=0.600000,Max=0.600000))
|
||||
Opacity=0.590000
|
||||
FadeOutStartTime=0.060000
|
||||
MaxParticles=1
|
||||
Name="SpriteEmitter24"
|
||||
SpinsPerSecondRange=(X=(Max=0.010000))
|
||||
StartSpinRange=(X=(Max=0.700000))
|
||||
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=3.000000)
|
||||
StartSizeRange=(X=(Min=16.000000,Max=16.000000),Y=(Min=16.000000,Max=16.000000),Z=(Min=16.000000,Max=16.000000))
|
||||
Texture=Texture'AW-2004Particles.Weapons.PlasmaStar2'
|
||||
LifetimeRange=(Min=0.400000,Max=0.400000)
|
||||
End Object
|
||||
Emitters(2)=SpriteEmitter'SpriteEmitter24'
|
||||
*/
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
Skins(0)=FinalBlend'UT2341Weapons_Tex.SuperShock.SuperShockFlashFinal'
|
||||
}
|
||||
281
Sources/Classes/FX_SuperShockRifleImpact.uc
Normal file
281
Sources/Classes/FX_SuperShockRifleImpact.uc
Normal file
@@ -0,0 +1,281 @@
|
||||
/*************************************************************
|
||||
*
|
||||
*
|
||||
*
|
||||
*************************************************************/
|
||||
|
||||
class FX_SuperShockRifleImpact extends Emitter;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter27
|
||||
UseCollision=True
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
Acceleration=(X=-1500.000000)
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(Y=(Min=0.400000,Max=0.400000),Z=(Min=0.000000,Max=0.000000))
|
||||
FadeOutStartTime=0.800000
|
||||
SpinCCWorCW=(X=0.750000)
|
||||
SpinsPerSecondRange=(X=(Min=0.500000,Max=1.000000),Y=(Min=0.500000,Max=1.000000),Z=(Min=0.500000,Max=1.000000))
|
||||
StartSpinRange=(X=(Max=1.000000),Y=(Max=1.000000),Z=(Max=1.000000))
|
||||
SizeScale(0)=(RelativeTime=0.140000,RelativeSize=0.100000)
|
||||
SizeScaleRepeats=1.000000
|
||||
StartSizeRange=(X=(Min=12.000000,Max=12.000000),Y=(Min=12.000000,Max=12.000000),Z=(Min=12.000000,Max=12.000000))
|
||||
InitialParticlesPerSecond=5000.000000
|
||||
Texture=Texture'AW-2004Particles.Weapons.PlasmaStar'
|
||||
LifetimeRange=(Min=2.000000,Max=2.000000)
|
||||
End Object
|
||||
Emitters(0)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_SuperShockRifleImpact.SpriteEmitter27'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter28
|
||||
UseCollision=True
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
Acceleration=(Z=-1500.000000)
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(Y=(Min=0.400000,Max=0.400000),Z=(Min=0.000000,Max=0.000000))
|
||||
Opacity=0.860000
|
||||
FadeOutStartTime=0.800000
|
||||
SpinCCWorCW=(X=0.750000)
|
||||
SpinsPerSecondRange=(X=(Min=0.500000,Max=1.000000),Y=(Min=0.500000,Max=1.000000),Z=(Min=0.500000,Max=1.000000))
|
||||
StartSpinRange=(X=(Max=1.000000),Y=(Max=1.000000),Z=(Max=1.000000))
|
||||
SizeScale(0)=(RelativeTime=0.140000,RelativeSize=0.100000)
|
||||
SizeScaleRepeats=1.000000
|
||||
StartSizeRange=(X=(Min=18.000000,Max=18.000000),Y=(Min=18.000000,Max=18.000000),Z=(Min=18.000000,Max=18.000000))
|
||||
InitialParticlesPerSecond=5000.000000
|
||||
Texture=Texture'AW-2004Particles.Weapons.PlasmaStar'
|
||||
LifetimeRange=(Min=2.000000,Max=2.000000)
|
||||
StartVelocityRange=(X=(Min=-400.000000,Max=700.000000),Y=(Min=-400.000000,Max=400.000000),Z=(Min=-300.000000,Max=400.000000))
|
||||
End Object
|
||||
Emitters(1)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_SuperShockRifleImpact.SpriteEmitter28'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter29
|
||||
UseDirectionAs=PTDU_Normal
|
||||
ProjectionNormal=(X=1.000000,Z=0.000000)
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(Y=(Min=0.400000,Max=0.400000),Z=(Min=0.000000,Max=0.000000))
|
||||
Opacity=0.490000
|
||||
FadeOutStartTime=0.600000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
SpinsPerSecondRange=(X=(Max=0.200000))
|
||||
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=4.000000)
|
||||
StartSizeRange=(X=(Min=30.000000,Max=30.000000),Y=(Min=30.000000,Max=30.000000),Z=(Min=30.000000,Max=30.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'AW-2004Particles.Energy.AirBlast'
|
||||
LifetimeRange=(Min=1.000000,Max=1.000000)
|
||||
End Object
|
||||
Emitters(2)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_SuperShockRifleImpact.SpriteEmitter29'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter31
|
||||
UseDirectionAs=PTDU_Normal
|
||||
ProjectionNormal=(X=1.000000,Z=0.000000)
|
||||
FadeOut=True
|
||||
FadeIn=True
|
||||
RespawnDeadParticles=False
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(Y=(Min=0.400000,Max=0.400000),Z=(Min=0.000000,Max=0.000000))
|
||||
Opacity=0.880000
|
||||
FadeOutStartTime=0.600000
|
||||
FadeInEndTime=0.060000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
SpinsPerSecondRange=(X=(Max=0.200000))
|
||||
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=4.000000)
|
||||
StartSizeRange=(X=(Min=50.000000,Max=50.000000),Y=(Min=50.000000,Max=50.000000),Z=(Min=50.000000,Max=50.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'AW-2004Particles.Weapons.HardSpot'
|
||||
LifetimeRange=(Min=1.000000,Max=1.000000)
|
||||
End Object
|
||||
Emitters(3)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_SuperShockRifleImpact.SpriteEmitter31'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter32
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(Y=(Min=0.400000,Max=0.400000),Z=(Min=0.000000,Max=0.000000))
|
||||
Opacity=0.790000
|
||||
FadeOutStartTime=0.600000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
StartLocationRange=(Z=(Min=10.000000,Max=10.000000))
|
||||
SpinsPerSecondRange=(X=(Min=0.500000,Max=0.900000))
|
||||
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=4.000000)
|
||||
StartSizeRange=(X=(Min=20.000000,Max=20.000000),Y=(Min=20.000000,Max=20.000000),Z=(Min=20.000000,Max=20.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'AW-2004Particles.Weapons.PlasmaStar'
|
||||
LifetimeRange=(Min=1.000000,Max=1.000000)
|
||||
End Object
|
||||
Emitters(4)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_SuperShockRifleImpact.SpriteEmitter32'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter33
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(Y=(Min=0.400000,Max=0.400000),Z=(Min=0.000000,Max=0.000000))
|
||||
Opacity=0.790000
|
||||
FadeOutStartTime=0.600000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
StartLocationRange=(Z=(Min=10.000000,Max=10.000000))
|
||||
SpinsPerSecondRange=(X=(Min=0.900000,Max=2.000000))
|
||||
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=4.000000)
|
||||
StartSizeRange=(X=(Min=20.000000,Max=20.000000),Y=(Min=20.000000,Max=20.000000),Z=(Min=20.000000,Max=20.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'AW-2004Particles.Weapons.PlasmaStar'
|
||||
LifetimeRange=(Min=1.000000,Max=1.000000)
|
||||
End Object
|
||||
Emitters(5)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_SuperShockRifleImpact.SpriteEmitter33'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter34
|
||||
UseDirectionAs=PTDU_Normal
|
||||
ProjectionNormal=(X=1.000000,Z=0.000000)
|
||||
FadeOut=True
|
||||
FadeIn=True
|
||||
RespawnDeadParticles=False
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(Y=(Min=0.400000,Max=0.400000),Z=(Min=0.000000,Max=0.000000))
|
||||
Opacity=0.790000
|
||||
FadeOutStartTime=0.600000
|
||||
FadeInEndTime=0.060000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
SpinsPerSecondRange=(X=(Max=0.200000))
|
||||
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=4.000000)
|
||||
StartSizeRange=(X=(Min=74.000000,Max=74.000000),Y=(Min=74.000000,Max=74.000000),Z=(Min=74.000000,Max=74.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'AW-2004Particles.Weapons.PlasmaStar2'
|
||||
LifetimeRange=(Min=1.000000,Max=1.000000)
|
||||
End Object
|
||||
Emitters(6)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_SuperShockRifleImpact.SpriteEmitter34'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter35
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(Y=(Min=0.600000,Max=0.600000),Z=(Min=0.200000,Max=0.200000))
|
||||
Opacity=0.490000
|
||||
FadeOutStartTime=0.600000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
StartLocationRange=(Z=(Min=20.000000,Max=20.000000))
|
||||
SpinsPerSecondRange=(X=(Min=0.100000,Max=0.100000))
|
||||
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=4.000000)
|
||||
StartSizeRange=(X=(Min=20.000000,Max=20.000000),Y=(Min=20.000000,Max=20.000000),Z=(Min=20.000000,Max=20.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'EpicParticles.Flares.FlashFlare1'
|
||||
LifetimeRange=(Min=1.000000,Max=1.000000)
|
||||
End Object
|
||||
Emitters(7)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_SuperShockRifleImpact.SpriteEmitter35'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter41
|
||||
UseDirectionAs=PTDU_Normal
|
||||
ProjectionNormal=(X=1.000000,Z=0.000000)
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(Y=(Min=0.600000,Max=0.600000),Z=(Min=0.200000,Max=0.200000))
|
||||
Opacity=0.370000
|
||||
FadeOutStartTime=0.600000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
MaxParticles=1
|
||||
SpinsPerSecondRange=(X=(Max=0.200000))
|
||||
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=4.000000)
|
||||
StartSizeRange=(X=(Min=34.000000,Max=34.000000),Y=(Min=34.000000,Max=34.000000),Z=(Min=34.000000,Max=34.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'AW-2004Particles.Energy.AirBlast'
|
||||
LifetimeRange=(Min=1.000000,Max=1.000000)
|
||||
End Object
|
||||
Emitters(8)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_SuperShockRifleImpact.SpriteEmitter41'
|
||||
|
||||
Begin Object Class=BeamEmitter Name=BeamEmitter6
|
||||
BeamDistanceRange=(Min=200.000000,Max=200.000000)
|
||||
DetermineEndPointBy=PTEP_Distance
|
||||
LowFrequencyNoiseRange=(X=(Max=10.000000),Y=(Max=10.000000),Z=(Max=10.000000))
|
||||
LowFrequencyPoints=2
|
||||
HighFrequencyNoiseRange=(X=(Min=-10.000000,Max=10.000000),Y=(Min=-10.000000,Max=10.000000),Z=(Min=-10.000000,Max=10.000000))
|
||||
HFScaleFactors(0)=(FrequencyScale=(X=0.400000,Y=0.400000,Z=0.400000),RelativeLength=0.280000)
|
||||
UseHighFrequencyScale=True
|
||||
BranchProbability=(Min=1.000000,Max=1.000000)
|
||||
BranchSpawnAmountRange=(Min=5.000000,Max=5.000000)
|
||||
LinkupLifetime=True
|
||||
FadeOut=True
|
||||
FadeIn=True
|
||||
RespawnDeadParticles=False
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
AutomaticInitialSpawning=False
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(Y=(Min=0.600000,Max=0.600000),Z=(Min=0.200000,Max=0.200000))
|
||||
Opacity=0.380000
|
||||
FadeOutStartTime=2.000000
|
||||
FadeInEndTime=2.000000
|
||||
CoordinateSystem=PTCS_Relative
|
||||
StartLocationShape=PTLS_Sphere
|
||||
SphereRadiusRange=(Max=25.000000)
|
||||
SizeScale(0)=(RelativeTime=0.520000,RelativeSize=-1.000000)
|
||||
SizeScaleRepeats=1.000000
|
||||
StartSizeRange=(X=(Min=10.000000,Max=10.000000),Y=(Min=10.000000,Max=10.000000),Z=(Min=10.000000,Max=10.000000))
|
||||
InitialParticlesPerSecond=1000.000000
|
||||
Texture=Texture'AW-2004Particles.Energy.BeamBolt1a'
|
||||
LifetimeRange=(Min=0.500000,Max=0.750000)
|
||||
StartVelocityRange=(X=(Min=-20.000000,Max=20.000000),Y=(Min=-20.000000,Max=20.000000),Z=(Min=-20.000000,Max=20.000000))
|
||||
End Object
|
||||
Emitters(9)=BeamEmitter'UT2341WeaponsReducedv1a.FX_SuperShockRifleImpact.BeamEmitter6'
|
||||
|
||||
bNoDelete=False
|
||||
}
|
||||
42
Sources/Classes/FX_SuperShockRifleMuzFlash3rd.uc
Normal file
42
Sources/Classes/FX_SuperShockRifleMuzFlash3rd.uc
Normal file
@@ -0,0 +1,42 @@
|
||||
/*************************************************************
|
||||
*
|
||||
*
|
||||
*
|
||||
*************************************************************/
|
||||
|
||||
class FX_SuperShockRifleMuzFlash3rd extends ShockProjMuzFlash3rd;
|
||||
|
||||
/*
|
||||
defaultproperties
|
||||
{
|
||||
mNumPerFlash=1
|
||||
mParticleType=PT_Mesh
|
||||
mStartParticles=0
|
||||
mMaxParticles=6
|
||||
mLifeRange(0)=0.130000
|
||||
mLifeRange(1)=0.130000
|
||||
mRegenRange(0)=0.000000
|
||||
mRegenRange(1)=0.000000
|
||||
mSpawnVecB=(Z=0.000000)
|
||||
mSpeedRange(0)=0.000000
|
||||
mSpeedRange(1)=0.000000
|
||||
mPosRelative=True
|
||||
mAirResistance=0.000000
|
||||
mRandOrient=True
|
||||
mSizeRange(0)=0.350000
|
||||
mSizeRange(1)=0.400000
|
||||
mGrowthRate=3.200000
|
||||
mColorRange(0)=(R=50)
|
||||
mColorRange(1)=(R=50)
|
||||
mAttenKa=0.000000
|
||||
mRandTextures=True
|
||||
mMeshNodes(0)=StaticMesh'XEffects.MinigunFlashMesh'
|
||||
Skins(0)=FinalBlend'XGameShaders.WeaponShaders.ShockMuzFlash3rdFinal'
|
||||
Style=STY_Additive
|
||||
}
|
||||
*/
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
Skins(0)=FinalBlend'UT2341Weapons_Tex.SuperShock.SuperShockFlash3rdFinal'
|
||||
}
|
||||
190
Sources/Classes/FX_UT2341WarpEffectBlue.uc
Normal file
190
Sources/Classes/FX_UT2341WarpEffectBlue.uc
Normal file
@@ -0,0 +1,190 @@
|
||||
class FX_UT2341WarpEffectBlue extends Emitter;
|
||||
|
||||
function PostBeginPlay()
|
||||
{
|
||||
If ( Role == ROLE_Authority )
|
||||
Instigator = Pawn(Owner);
|
||||
if ( Level.NetMode == NM_DedicatedServer )
|
||||
LifeSpan = 0.15;
|
||||
Super.PostBeginPlay();
|
||||
}
|
||||
|
||||
simulated function PostNetBeginPlay()
|
||||
{
|
||||
local PlayerController PC;
|
||||
local float Dist;
|
||||
|
||||
if ( Instigator != None )
|
||||
{
|
||||
SetLocation(Instigator.Location);
|
||||
SetBase(Instigator);
|
||||
if ( (Level.NetMode == NM_Standalone) || (Level.NetMode == NM_Client) )
|
||||
{
|
||||
PC = Level.GetLocalPlayerController();
|
||||
if ( (PC != None) && (PC.ViewTarget != None) )
|
||||
{
|
||||
Dist = VSize(PC.ViewTarget.Location - Location);
|
||||
if ( Dist > PC.Region.Zone.DistanceFogEnd )
|
||||
LifeSpan = 0.01;
|
||||
}
|
||||
}
|
||||
}
|
||||
PlaySound(Sound'UT2341Weapons_Sounds.General.Resp2a',SLOT_None);
|
||||
Super.PostNetBeginPlay();
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
Begin Object Class=MeshEmitter Name=MeshEmitter0
|
||||
StaticMesh=StaticMesh'XEffects.TeleRing'
|
||||
RenderTwoSided=True
|
||||
UseParticleColor=True
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
AutomaticInitialSpawning=False
|
||||
Acceleration=(Z=12.000000)
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.080000,Max=0.080000),Y=(Min=0.190000,Max=0.190000))
|
||||
FadeOutStartTime=0.200000
|
||||
MaxParticles=3
|
||||
SpinCCWorCW=(Y=0.000000,Z=0.000000)
|
||||
SpinsPerSecondRange=(X=(Min=1.000000,Max=2.000000),Z=(Min=0.010000,Max=0.020000))
|
||||
StartSpinRange=(X=(Min=-1.000000,Max=1.000000))
|
||||
SizeScale(0)=(RelativeTime=0.370000,RelativeSize=1.100000)
|
||||
SizeScale(1)=(RelativeTime=1.000000,RelativeSize=1.200000)
|
||||
StartSizeRange=(X=(Min=0.800000,Max=0.800000),Y=(Min=0.800000,Max=0.800000),Z=(Min=0.800000,Max=0.800000))
|
||||
InitialParticlesPerSecond=5000.000000
|
||||
LifetimeRange=(Min=1.250000,Max=1.250000)
|
||||
StartVelocityRange=(Z=(Min=-10.000000,Max=-10.000000))
|
||||
End Object
|
||||
Emitters(0)=MeshEmitter'UT2341WeaponsReducedv1a.FX_UT2341WarpEffectBlue.MeshEmitter0'
|
||||
|
||||
Begin Object Class=MeshEmitter Name=MeshEmitter1
|
||||
StaticMesh=StaticMesh'XEffects.TeleRing'
|
||||
RenderTwoSided=True
|
||||
UseParticleColor=True
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
AutomaticInitialSpawning=False
|
||||
Acceleration=(Z=12.000000)
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.080000,Max=0.080000),Y=(Min=0.290000,Max=0.290000))
|
||||
FadeOutStartTime=0.200000
|
||||
MaxParticles=3
|
||||
StartLocationRange=(Z=(Min=40.000000,Max=40.000000))
|
||||
SpinCCWorCW=(Y=0.000000,Z=0.000000)
|
||||
SpinsPerSecondRange=(X=(Min=1.000000,Max=2.000000),Z=(Min=0.010000,Max=0.020000))
|
||||
StartSpinRange=(X=(Min=-1.000000,Max=1.000000))
|
||||
SizeScale(0)=(RelativeTime=0.370000,RelativeSize=1.100000)
|
||||
SizeScale(1)=(RelativeTime=1.000000,RelativeSize=1.200000)
|
||||
StartSizeRange=(X=(Min=0.750000,Max=0.750000),Y=(Min=0.750000,Max=0.750000),Z=(Min=0.750000,Max=0.750000))
|
||||
InitialParticlesPerSecond=5000.000000
|
||||
LifetimeRange=(Min=1.250000,Max=1.250000)
|
||||
InitialDelayRange=(Max=0.100000)
|
||||
StartVelocityRange=(Z=(Min=-10.000000,Max=-10.000000))
|
||||
End Object
|
||||
Emitters(1)=MeshEmitter'UT2341WeaponsReducedv1a.FX_UT2341WarpEffectBlue.MeshEmitter1'
|
||||
|
||||
Begin Object Class=MeshEmitter Name=MeshEmitter2
|
||||
StaticMesh=StaticMesh'XEffects.TeleRing'
|
||||
RenderTwoSided=True
|
||||
UseParticleColor=True
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
AutomaticInitialSpawning=False
|
||||
Acceleration=(Z=12.000000)
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.180000,Max=0.180000),Y=(Min=0.300000,Max=0.300000))
|
||||
FadeOutStartTime=0.200000
|
||||
MaxParticles=3
|
||||
StartLocationRange=(Z=(Min=-40.000000,Max=-40.000000))
|
||||
SpinCCWorCW=(Y=0.000000,Z=0.000000)
|
||||
SpinsPerSecondRange=(X=(Min=1.000000,Max=2.000000),Z=(Min=0.010000,Max=0.020000))
|
||||
StartSpinRange=(X=(Min=-1.000000,Max=1.000000))
|
||||
SizeScale(0)=(RelativeTime=0.370000,RelativeSize=1.050000)
|
||||
SizeScale(1)=(RelativeTime=1.000000,RelativeSize=1.200000)
|
||||
StartSizeRange=(X=(Min=0.750000,Max=0.750000),Y=(Min=0.750000,Max=0.750000),Z=(Min=0.750000,Max=0.750000))
|
||||
InitialParticlesPerSecond=5000.000000
|
||||
LifetimeRange=(Min=1.250000,Max=1.250000)
|
||||
InitialDelayRange=(Max=0.100000)
|
||||
StartVelocityRange=(Z=(Min=-10.000000,Max=-10.000000))
|
||||
End Object
|
||||
Emitters(2)=MeshEmitter'UT2341WeaponsReducedv1a.FX_UT2341WarpEffectBlue.MeshEmitter2'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter2
|
||||
UseCollision=True
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
Acceleration=(X=10.000000)
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
Opacity=0.800000
|
||||
FadeOutFactor=(Z=0.000000)
|
||||
FadeOutStartTime=1.360000
|
||||
MaxParticles=15
|
||||
StartLocationRange=(X=(Min=-20.100000,Max=20.100000),Y=(Min=-20.000000,Max=20.000000),Z=(Min=-60.000000,Max=60.000000))
|
||||
SpinCCWorCW=(X=0.750000)
|
||||
SpinsPerSecondRange=(X=(Min=0.500000,Max=1.000000),Y=(Min=0.500000,Max=1.000000),Z=(Min=0.500000,Max=1.000000))
|
||||
StartSpinRange=(X=(Max=1.000000),Y=(Max=1.000000),Z=(Max=1.000000))
|
||||
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=0.100000)
|
||||
StartSizeRange=(X=(Min=16.000000,Max=16.000000),Y=(Min=16.000000,Max=16.000000),Z=(Min=16.000000,Max=16.000000))
|
||||
InitialParticlesPerSecond=5000.000000
|
||||
Texture=Texture'AW-2004Particles.Weapons.PlasmaStar'
|
||||
LifetimeRange=(Min=1.300000,Max=1.300000)
|
||||
StartVelocityRange=(X=(Min=-30.000000,Max=40.000000),Y=(Min=-60.000000,Max=60.000000),Z=(Min=-20.000000,Max=20.000000))
|
||||
End Object
|
||||
Emitters(3)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_UT2341WarpEffectBlue.SpriteEmitter2'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter3
|
||||
UseCollision=True
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
Acceleration=(X=10.000000)
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(X=(Min=0.400000,Max=0.400000),Y=(Min=0.600000,Max=0.600000))
|
||||
Opacity=0.800000
|
||||
FadeOutStartTime=0.400000
|
||||
MaxParticles=15
|
||||
StartLocationRange=(X=(Min=-20.000000,Max=20.000000),Y=(Min=-30.000000,Max=30.000000),Z=(Min=-60.000000,Max=60.000000))
|
||||
SpinCCWorCW=(X=0.750000)
|
||||
SpinsPerSecondRange=(X=(Min=0.500000,Max=1.000000),Y=(Min=0.500000,Max=1.000000),Z=(Min=0.500000,Max=1.000000))
|
||||
StartSpinRange=(X=(Max=1.000000),Y=(Max=1.000000),Z=(Max=1.000000))
|
||||
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=0.100000)
|
||||
StartSizeRange=(X=(Min=21.000000,Max=21.000000),Y=(Min=21.000000,Max=21.000000),Z=(Min=21.000000,Max=21.000000))
|
||||
InitialParticlesPerSecond=5000.000000
|
||||
Texture=Texture'AW-2004Particles.Weapons.PlasmaStar'
|
||||
LifetimeRange=(Min=1.600000,Max=1.600000)
|
||||
InitialDelayRange=(Max=0.100000)
|
||||
StartVelocityRange=(X=(Min=-30.000000,Max=40.000000),Y=(Min=-60.000000,Max=60.000000),Z=(Min=-20.000000,Max=20.000000))
|
||||
End Object
|
||||
Emitters(4)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_UT2341WarpEffectBlue.SpriteEmitter3'
|
||||
|
||||
AutoDestroy=True
|
||||
bNoDelete=False
|
||||
bNetTemporary=True
|
||||
bReplicateInstigator=True
|
||||
RemoteRole=ROLE_SimulatedProxy
|
||||
}
|
||||
194
Sources/Classes/FX_UT2341WarpEffectRed.uc
Normal file
194
Sources/Classes/FX_UT2341WarpEffectRed.uc
Normal file
@@ -0,0 +1,194 @@
|
||||
class FX_UT2341WarpEffectRed extends Emitter;
|
||||
|
||||
function PostBeginPlay()
|
||||
{
|
||||
If ( Role == ROLE_Authority )
|
||||
Instigator = Pawn(Owner);
|
||||
if ( Level.NetMode == NM_DedicatedServer )
|
||||
LifeSpan = 0.15;
|
||||
Super.PostBeginPlay();
|
||||
}
|
||||
|
||||
simulated function PostNetBeginPlay()
|
||||
{
|
||||
local PlayerController PC;
|
||||
local float Dist;
|
||||
|
||||
if ( Instigator != None )
|
||||
{
|
||||
SetLocation(Instigator.Location);
|
||||
SetBase(Instigator);
|
||||
if ( (Level.NetMode == NM_Standalone) || (Level.NetMode == NM_Client) )
|
||||
{
|
||||
PC = Level.GetLocalPlayerController();
|
||||
if ( (PC != None) && (PC.ViewTarget != None) )
|
||||
{
|
||||
Dist = VSize(PC.ViewTarget.Location - Location);
|
||||
if ( Dist > PC.Region.Zone.DistanceFogEnd )
|
||||
LifeSpan = 0.01;
|
||||
}
|
||||
}
|
||||
}
|
||||
PlaySound(Sound'UT2341Weapons_Sounds.General.Resp2a',SLOT_None);
|
||||
Super.PostNetBeginPlay();
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
Begin Object Class=MeshEmitter Name=MeshEmitter0
|
||||
StaticMesh=StaticMesh'XEffects.TeleRing'
|
||||
RenderTwoSided=True
|
||||
UseParticleColor=True
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
AutomaticInitialSpawning=False
|
||||
Acceleration=(Z=12.000000)
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(Y=(Min=0.190000,Max=0.190000),Z=(Min=0.080000,Max=0.080000))
|
||||
FadeOutStartTime=0.800000
|
||||
MaxParticles=3
|
||||
SpinCCWorCW=(Y=0.000000,Z=0.000000)
|
||||
SpinsPerSecondRange=(X=(Min=1.000000,Max=2.000000),Z=(Min=0.010000,Max=0.020000))
|
||||
StartSpinRange=(X=(Min=-1.000000,Max=1.000000))
|
||||
SizeScale(0)=(RelativeTime=0.370000,RelativeSize=1.100000)
|
||||
SizeScale(1)=(RelativeTime=1.000000,RelativeSize=1.200000)
|
||||
StartSizeRange=(X=(Min=0.800000,Max=0.800000),Y=(Min=0.800000,Max=0.800000),Z=(Min=0.800000,Max=0.800000))
|
||||
InitialParticlesPerSecond=5000.000000
|
||||
LifetimeRange=(Min=1.250000,Max=1.250000)
|
||||
StartVelocityRange=(Z=(Min=-10.000000,Max=-10.000000))
|
||||
End Object
|
||||
Emitters(0)=MeshEmitter'UT2341WeaponsReducedv1a.FX_UT2341WarpEffectRed.MeshEmitter0'
|
||||
|
||||
Begin Object Class=MeshEmitter Name=MeshEmitter1
|
||||
StaticMesh=StaticMesh'XEffects.TeleRing'
|
||||
RenderTwoSided=True
|
||||
UseParticleColor=True
|
||||
FadeOut=True
|
||||
FadeIn=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
AutomaticInitialSpawning=False
|
||||
Acceleration=(Z=12.000000)
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(Y=(Min=0.190000,Max=0.190000),Z=(Min=0.080000,Max=0.080000))
|
||||
FadeOutStartTime=1.000000
|
||||
FadeInEndTime=0.120000
|
||||
MaxParticles=3
|
||||
StartLocationRange=(Z=(Min=40.000000,Max=40.000000))
|
||||
SpinCCWorCW=(Y=0.000000,Z=0.000000)
|
||||
SpinsPerSecondRange=(X=(Min=1.000000,Max=2.000000),Z=(Min=0.010000,Max=0.020000))
|
||||
StartSpinRange=(X=(Min=-1.000000,Max=1.000000))
|
||||
SizeScale(0)=(RelativeTime=0.370000,RelativeSize=1.100000)
|
||||
SizeScale(1)=(RelativeTime=1.000000,RelativeSize=1.200000)
|
||||
StartSizeRange=(X=(Min=0.750000,Max=0.750000),Y=(Min=0.750000,Max=0.750000),Z=(Min=0.750000,Max=0.750000))
|
||||
InitialParticlesPerSecond=5000.000000
|
||||
LifetimeRange=(Min=1.250000,Max=1.250000)
|
||||
InitialDelayRange=(Max=0.100000)
|
||||
StartVelocityRange=(Z=(Min=-10.000000,Max=-10.000000))
|
||||
End Object
|
||||
Emitters(1)=MeshEmitter'UT2341WeaponsReducedv1a.FX_UT2341WarpEffectRed.MeshEmitter1'
|
||||
|
||||
Begin Object Class=MeshEmitter Name=MeshEmitter2
|
||||
StaticMesh=StaticMesh'XEffects.TeleRing'
|
||||
RenderTwoSided=True
|
||||
UseParticleColor=True
|
||||
FadeOut=True
|
||||
FadeIn=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
AutomaticInitialSpawning=False
|
||||
Acceleration=(Z=12.000000)
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(Y=(Min=0.190000,Max=0.190000),Z=(Min=0.080000,Max=0.080000))
|
||||
FadeOutStartTime=1.000000
|
||||
FadeInEndTime=0.120000
|
||||
MaxParticles=3
|
||||
StartLocationRange=(Z=(Min=-40.000000,Max=-40.000000))
|
||||
SpinCCWorCW=(Y=0.000000,Z=0.000000)
|
||||
SpinsPerSecondRange=(X=(Min=1.000000,Max=2.000000),Z=(Min=0.010000,Max=0.020000))
|
||||
StartSpinRange=(X=(Min=-1.000000,Max=1.000000))
|
||||
SizeScale(0)=(RelativeTime=0.370000,RelativeSize=1.050000)
|
||||
SizeScale(1)=(RelativeTime=1.000000,RelativeSize=1.200000)
|
||||
StartSizeRange=(X=(Min=0.750000,Max=0.750000),Y=(Min=0.750000,Max=0.750000),Z=(Min=0.750000,Max=0.750000))
|
||||
InitialParticlesPerSecond=5000.000000
|
||||
LifetimeRange=(Min=1.250000,Max=1.250000)
|
||||
InitialDelayRange=(Max=0.100000)
|
||||
StartVelocityRange=(Z=(Min=-10.000000,Max=-10.000000))
|
||||
End Object
|
||||
Emitters(2)=MeshEmitter'UT2341WeaponsReducedv1a.FX_UT2341WarpEffectRed.MeshEmitter2'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter2
|
||||
UseCollision=True
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
Acceleration=(X=10.000000)
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
Opacity=0.800000
|
||||
FadeOutFactor=(Z=0.000000)
|
||||
FadeOutStartTime=1.360000
|
||||
MaxParticles=15
|
||||
StartLocationRange=(X=(Min=-20.100000,Max=20.100000),Y=(Min=-20.000000,Max=20.000000),Z=(Min=-60.000000,Max=60.000000))
|
||||
SpinCCWorCW=(X=0.750000)
|
||||
SpinsPerSecondRange=(X=(Min=0.500000,Max=1.000000),Y=(Min=0.500000,Max=1.000000),Z=(Min=0.500000,Max=1.000000))
|
||||
StartSpinRange=(X=(Max=1.000000),Y=(Max=1.000000),Z=(Max=1.000000))
|
||||
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=0.100000)
|
||||
StartSizeRange=(X=(Min=16.000000,Max=16.000000),Y=(Min=16.000000,Max=16.000000),Z=(Min=16.000000,Max=16.000000))
|
||||
InitialParticlesPerSecond=5000.000000
|
||||
Texture=Texture'AW-2004Particles.Weapons.PlasmaStar'
|
||||
LifetimeRange=(Min=1.300000,Max=1.300000)
|
||||
StartVelocityRange=(X=(Min=-30.000000,Max=40.000000),Y=(Min=-60.000000,Max=60.000000),Z=(Min=-20.000000,Max=20.000000))
|
||||
End Object
|
||||
Emitters(3)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_UT2341WarpEffectRed.SpriteEmitter2'
|
||||
|
||||
Begin Object Class=SpriteEmitter Name=SpriteEmitter3
|
||||
UseCollision=True
|
||||
FadeOut=True
|
||||
RespawnDeadParticles=False
|
||||
SpinParticles=True
|
||||
UseSizeScale=True
|
||||
UseRegularSizeScale=False
|
||||
UniformSize=True
|
||||
AutomaticInitialSpawning=False
|
||||
Acceleration=(X=10.000000)
|
||||
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
|
||||
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
|
||||
ColorMultiplierRange=(Y=(Min=0.600000,Max=0.600000),Z=(Min=0.400000,Max=0.400000))
|
||||
Opacity=0.800000
|
||||
FadeOutStartTime=0.400000
|
||||
MaxParticles=15
|
||||
StartLocationRange=(X=(Min=-20.000000,Max=20.000000),Y=(Min=-30.000000,Max=30.000000),Z=(Min=-60.000000,Max=60.000000))
|
||||
SpinCCWorCW=(X=0.750000)
|
||||
SpinsPerSecondRange=(X=(Min=0.500000,Max=1.000000),Y=(Min=0.500000,Max=1.000000),Z=(Min=0.500000,Max=1.000000))
|
||||
StartSpinRange=(X=(Max=1.000000),Y=(Max=1.000000),Z=(Max=1.000000))
|
||||
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=0.100000)
|
||||
StartSizeRange=(X=(Min=21.000000,Max=21.000000),Y=(Min=21.000000,Max=21.000000),Z=(Min=21.000000,Max=21.000000))
|
||||
InitialParticlesPerSecond=5000.000000
|
||||
Texture=Texture'AW-2004Particles.Weapons.PlasmaStar'
|
||||
LifetimeRange=(Min=1.600000,Max=1.600000)
|
||||
InitialDelayRange=(Max=0.100000)
|
||||
StartVelocityRange=(X=(Min=-30.000000,Max=40.000000),Y=(Min=-60.000000,Max=60.000000),Z=(Min=-20.000000,Max=20.000000))
|
||||
End Object
|
||||
Emitters(4)=SpriteEmitter'UT2341WeaponsReducedv1a.FX_UT2341WarpEffectRed.SpriteEmitter3'
|
||||
|
||||
AutoDestroy=True
|
||||
bNoDelete=False
|
||||
bNetTemporary=True
|
||||
bReplicateInstigator=True
|
||||
RemoteRole=ROLE_SimulatedProxy
|
||||
}
|
||||
12
Sources/Classes/Mut_UT2341Instagib.uc
Normal file
12
Sources/Classes/Mut_UT2341Instagib.uc
Normal file
@@ -0,0 +1,12 @@
|
||||
class Mut_UT2341Instagib extends MutInstaGib;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
WeaponName="UT2341SuperShockRifle"
|
||||
AmmoName="UT2341SuperShockAmmo"
|
||||
WeaponString="UT2341WeaponsReducedv1a.UT2341SuperShockRifle"
|
||||
AmmoString="UT2341WeaponsReducedv1a.UT2341SuperShockAmmo"
|
||||
DefaultWeaponName="UT2341WeaponsReducedv1a.UT2341SuperShockRifle"
|
||||
FriendlyName="UT2341: Instagib"
|
||||
Description="Instagib, UT2341-style."
|
||||
}
|
||||
371
Sources/Classes/Mut_UT2341Replacement.uc
Normal file
371
Sources/Classes/Mut_UT2341Replacement.uc
Normal file
@@ -0,0 +1,371 @@
|
||||
class Mut_UT2341Replacement extends Mutator;
|
||||
|
||||
var config bool bReplaceAssaultRifle;
|
||||
var config bool bReplaceBioRifle;
|
||||
var config bool bReplaceONSMineLayer;
|
||||
var config bool bReplaceShockRifle;
|
||||
var config bool bReplaceLinkGun;
|
||||
var config bool bReplaceMinigun;
|
||||
var config bool bReplaceFlakCannon;
|
||||
var config bool bReplaceONSGrenadeLauncer;
|
||||
var config bool bReplaceRocketLauncher;
|
||||
var config bool bReplaceSniperRifle;
|
||||
var config bool bReplaceClassicSniperRifle;
|
||||
var config bool bReplaceRedeemer;
|
||||
var config bool bReplacePainter;
|
||||
var config bool bReplaceStartWeapons;
|
||||
|
||||
|
||||
simulated function PreBeginPlay()
|
||||
{
|
||||
local xPickupBase P;
|
||||
|
||||
Super.PreBeginPlay();
|
||||
|
||||
//Apparently CheckReplacement doesn't work on the client side
|
||||
foreach AllActors (class'xPickupBase', P)
|
||||
{
|
||||
P.bHidden = True;
|
||||
P.myEmitter.bHidden = True;
|
||||
P.SetDrawType(DT_None);
|
||||
P.SetStaticMesh(None);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function string GetInventoryClassOverride(string InventoryClassName)
|
||||
{
|
||||
switch(InventoryClassName)
|
||||
{
|
||||
case "XWeapons.AssaultRifle":
|
||||
if(bReplaceAssaultRifle)
|
||||
return "UT2341WeaponsReducedv1a.UT2341Ripper";
|
||||
break;
|
||||
|
||||
case "XWeapons.BioRifle":
|
||||
if(bReplaceBioRifle)
|
||||
return "UT2341WeaponsReducedv1a.UT2341BioRifle";
|
||||
break;
|
||||
|
||||
case "XWeapons.ONSMineLayer":
|
||||
if(bReplaceONSMineLayer)
|
||||
return "UT2341WeaponsReducedv1a.UT2341Ripper";
|
||||
break;
|
||||
|
||||
case "XWeapons.ShockRifle":
|
||||
if(bReplaceShockRifle)
|
||||
return "UT2341WeaponsReducedv1a.UT2341ShockRifle";
|
||||
break;
|
||||
|
||||
case "XWeapons.LinkGun":
|
||||
if(bReplaceLinkGun)
|
||||
return "UT2341WeaponsReducedv1a.UT2341PulseGun";
|
||||
break;
|
||||
|
||||
case "XWeapons.Minigun":
|
||||
if(bReplaceMinigun)
|
||||
return "UT2341WeaponsReducedv1a.UT2341Minigun";
|
||||
break;
|
||||
|
||||
case "XWeapons.FlakCannon":
|
||||
if(bReplaceFlakCannon)
|
||||
return "UT2341WeaponsReducedv1a.UT2341FlakCannon";
|
||||
break;
|
||||
|
||||
case "XWeapons.ONSGrenadeLauncher":
|
||||
if(bReplaceONSGrenadeLauncer)
|
||||
return "UT2341WeaponsReducedv1a.UT2341Ripper";
|
||||
break;
|
||||
|
||||
case "XWeapons.RocketLauncher":
|
||||
if(bReplaceRocketLauncher)
|
||||
return "UT2341WeaponsReducedv1a.UT2341RocketLauncher";
|
||||
break;
|
||||
|
||||
case "XWeapons.SniperRifle":
|
||||
if(bReplaceSniperRifle)
|
||||
return "UT2341WeaponsReducedv1a.UT2341SniperRifle";
|
||||
break;
|
||||
|
||||
case "XWeapons.ClassicSniperRifle":
|
||||
if(bReplaceClassicSniperRifle)
|
||||
return "UT2341WeaponsReducedv1a.UT2341SniperRifle";
|
||||
break;
|
||||
|
||||
case "XWeapons.Redeemer":
|
||||
if(bReplaceRedeemer)
|
||||
return "UT2341WeaponsReducedv1a.UT2341Redeemer";
|
||||
break;
|
||||
|
||||
case "XWeapons.Painter":
|
||||
if(bReplacePainter)
|
||||
return "UT2341WeaponsReducedv1a.UT2341Redeemer";
|
||||
break;
|
||||
|
||||
case "XWeapons.ONSPainter":
|
||||
if(bReplacePainter)
|
||||
return "UT2341WeaponsReducedv1a.UT2341Redeemer";
|
||||
break;
|
||||
}
|
||||
|
||||
if ( NextMutator != None )
|
||||
return NextMutator.GetInventoryClassOverride(InventoryClassName);
|
||||
return InventoryClassName;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
function bool CheckReplacement( Actor Other, out byte bSuperRelevant )
|
||||
{
|
||||
local int i;
|
||||
local WeaponLocker L;
|
||||
local PhysicsVolume PV;
|
||||
bSuperRelevant = 0;
|
||||
|
||||
PV = PhysicsVolume(Other);
|
||||
if ( PV != None )
|
||||
{
|
||||
PV.bAlwaysRelevant = true;
|
||||
PV.RemoteRole = ROLE_DumbProxy;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
if (xPawn(Other) != None)
|
||||
{
|
||||
if(bReplaceStartWeapons)
|
||||
{
|
||||
xPawn(Other).RequiredEquipment[0] = "UT2341WeaponsReducedv1a.UT2341Enforcer";
|
||||
|
||||
xPawn(Other).RequiredEquipment[1] = "UT2341WeaponsReducedv1a.UT2341Hammer";
|
||||
|
||||
if (xLastManStandingGame(Level.Game) != None)
|
||||
xPawn(Other).RequiredEquipment[2] = "UT2341WeaponsReducedv1a.UT2341Ripper";
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
else if (xPickupBase(Other) != None)
|
||||
{
|
||||
Other.bHidden = True;
|
||||
Other.SetDrawType(DT_None);
|
||||
Other.SetStaticMesh(None);
|
||||
|
||||
if ( xWeaponBase(Other) != None )
|
||||
{
|
||||
switch(xWeaponBase(Other).WeaponType)
|
||||
{
|
||||
case class'AssaultRifle':
|
||||
if(bReplaceAssaultRifle)
|
||||
xWeaponBase(Other).WeaponType = class'UT2341Ripper';
|
||||
break;
|
||||
|
||||
case class'BioRifle':
|
||||
if(bReplaceBioRifle)
|
||||
xWeaponBase(Other).WeaponType = class'UT2341BioRifle';
|
||||
break;
|
||||
|
||||
case class'ONSMineLayer':
|
||||
if(bReplaceONSMineLayer)
|
||||
xWeaponBase(Other).WeaponType = class'UT2341Ripper';
|
||||
break;
|
||||
|
||||
case class'ShockRifle':
|
||||
if(bReplaceShockRifle)
|
||||
xWeaponBase(Other).WeaponType = class'UT2341ShockRifle';
|
||||
break;
|
||||
|
||||
case class'LinkGun':
|
||||
if(bReplaceLinkGun)
|
||||
xWeaponBase(Other).WeaponType = class'UT2341PulseGun';
|
||||
break;
|
||||
|
||||
case class'Minigun':
|
||||
if(bReplaceMinigun)
|
||||
xWeaponBase(Other).WeaponType = class'UT2341Minigun';
|
||||
break;
|
||||
|
||||
case class'FlakCannon':
|
||||
if(bReplaceFlakCannon)
|
||||
xWeaponBase(Other).WeaponType = class'UT2341FlakCannon';
|
||||
break;
|
||||
|
||||
case class'ONSGrenadeLauncher':
|
||||
if(bReplaceONSGrenadeLauncer)
|
||||
xWeaponBase(Other).WeaponType = class'UT2341Ripper';
|
||||
break;
|
||||
|
||||
case class'RocketLauncher':
|
||||
if(bReplaceRocketLauncher)
|
||||
xWeaponBase(Other).WeaponType = class'UT2341RocketLauncher';
|
||||
break;
|
||||
|
||||
case class'SniperRifle':
|
||||
if(bReplaceSniperRifle)
|
||||
xWeaponBase(Other).WeaponType = class'UT2341SniperRifle';
|
||||
break;
|
||||
|
||||
case class'ClassicSniperRifle':
|
||||
if(bReplaceClassicSniperRifle)
|
||||
xWeaponBase(Other).WeaponType = class'UT2341SniperRifle';
|
||||
break;
|
||||
|
||||
case class'Redeemer':
|
||||
if(bReplaceRedeemer)
|
||||
xWeaponBase(Other).WeaponType = class'UT2341Redeemer';
|
||||
break;
|
||||
|
||||
case class'Painter':
|
||||
if(bReplacePainter)
|
||||
xWeaponBase(Other).WeaponType = class'UT2341Redeemer';
|
||||
break;
|
||||
|
||||
case class'ONSPainter':
|
||||
if(bReplacePainter)
|
||||
xWeaponBase(Other).WeaponType = class'UT2341Redeemer';
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
else if (Pickup(Other) != None)
|
||||
{
|
||||
if ( WeaponLocker(Other) != None )
|
||||
{
|
||||
L = WeaponLocker(Other);
|
||||
for (i = 0; i < L.Weapons.Length; i++)
|
||||
{
|
||||
switch(L.Weapons[i].WeaponClass)
|
||||
{
|
||||
case class'BioRifle':
|
||||
if(bReplaceAssaultRifle)
|
||||
L.Weapons[i].WeaponClass = class'UT2341BioRifle';
|
||||
break;
|
||||
case class'AssaultRifle':
|
||||
if(bReplaceBioRifle)
|
||||
L.Weapons[i].WeaponClass = class'UT2341Ripper';
|
||||
break;
|
||||
case class'ONSMineLayer':
|
||||
if(bReplaceONSMineLayer)
|
||||
L.Weapons[i].WeaponClass = class'UT2341Ripper';
|
||||
break;
|
||||
case class'ShockRifle':
|
||||
if(bReplaceShockRifle)
|
||||
L.Weapons[i].WeaponClass = class'UT2341ShockRifle';
|
||||
break;
|
||||
case class'LinkGun':
|
||||
if(bReplaceLinkGun)
|
||||
L.Weapons[i].WeaponClass = class'UT2341PulseGun';
|
||||
break;
|
||||
case class'Minigun':
|
||||
if(bReplaceMinigun)
|
||||
L.Weapons[i].WeaponClass = class'UT2341Minigun';
|
||||
break;
|
||||
case class'FlakCannon':
|
||||
if(bReplaceFlakCannon)
|
||||
L.Weapons[i].WeaponClass = class'UT2341FlakCannon';
|
||||
break;
|
||||
case class'RocketLauncher':
|
||||
if(bReplaceRocketLauncher)
|
||||
L.Weapons[i].WeaponClass = class'UT2341RocketLauncher';
|
||||
break;
|
||||
case class'SniperRifle':
|
||||
if(bReplaceSniperRifle)
|
||||
L.Weapons[i].WeaponClass = class'UT2341SniperRifle';
|
||||
break;
|
||||
case class'ClassicSniperRifle':
|
||||
if(bReplaceClassicSniperRifle)
|
||||
L.Weapons[i].WeaponClass = class'UT2341SniperRifle';
|
||||
break;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else if (UTAmmoPickup(Other) != None)
|
||||
{
|
||||
switch(UTAmmoPickup(Other).Class)
|
||||
{
|
||||
case class'AssaultAmmoPickup':
|
||||
if(bReplaceAssaultRifle)
|
||||
ReplaceWith( Other, "UT2341WeaponsReducedv1a.UT2341RipperAmmoPickup");
|
||||
break;
|
||||
case class'BioAmmoPickup':
|
||||
if(bReplaceBioRifle)
|
||||
ReplaceWith( Other, "UT2341WeaponsReducedv1a.UT2341BioAmmoPickup");
|
||||
break;
|
||||
case class'ONSMineAmmoPickup':
|
||||
if(bReplaceONSMineLayer)
|
||||
ReplaceWith( Other, "UT2341WeaponsReducedv1a.UT2341RipperAmmoPickup");
|
||||
break;
|
||||
case class'ShockAmmoPickup':
|
||||
if(bReplaceShockRifle)
|
||||
ReplaceWith( Other, "UT2341WeaponsReducedv1a.UT2341ShockRifleAmmoPickup");
|
||||
break;
|
||||
case class'LinkAmmoPickup':
|
||||
if(bReplaceLinkGun)
|
||||
ReplaceWith( Other, "UT2341WeaponsReducedv1a.UT2341PulseAmmoPickup");
|
||||
break;
|
||||
case class'MinigunAmmoPickup':
|
||||
if(bReplaceMinigun)
|
||||
ReplaceWith( Other, "UT2341WeaponsReducedv1a.UT2341MinigunAmmoPickup");
|
||||
break;
|
||||
case class'FlakAmmoPickup':
|
||||
if(bReplaceFlakCannon)
|
||||
ReplaceWith( Other, "UT2341WeaponsReducedv1a.UT2341FlakAmmoPickup");
|
||||
break;
|
||||
case class'ONSGrenadeAmmoPickup':
|
||||
if(bReplaceONSGrenadeLauncer)
|
||||
ReplaceWith( Other, "UT2341WeaponsReducedv1a.UT2341RipperAmmoPickup");
|
||||
break;
|
||||
case class'RocketAmmoPickup':
|
||||
if(bReplaceRocketLauncher)
|
||||
ReplaceWith( Other, "UT2341WeaponsReducedv1a.UT2341RocketAmmoPickup");
|
||||
break;
|
||||
case class'SniperAmmoPickup':
|
||||
if(bReplaceSniperRifle)
|
||||
ReplaceWith( Other, "UT2341WeaponsReducedv1a.UT2341SniperAmmoPickup");
|
||||
break;
|
||||
case class'ClassicSniperAmmoPickup':
|
||||
if(bReplaceClassicSniperRifle)
|
||||
ReplaceWith( Other, "UT2341WeaponsReducedv1a.UT2341SniperAmmoPickup");
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
else
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
GroupName = "Arena"
|
||||
FriendlyName = "Unreal Tournament 2341"
|
||||
Description = "Replaces the standard weapons with UT99 equivalents."
|
||||
bNetTemporary = True
|
||||
bAlwaysRelevant = True
|
||||
RemoteRole = ROLE_SimulatedProxy
|
||||
bReplaceAssaultRifle = True
|
||||
bReplaceBioRifle = True
|
||||
bReplaceONSMineLayer = True
|
||||
bReplaceShockRifle = True
|
||||
bReplaceLinkGun = True
|
||||
bReplaceMinigun = True
|
||||
bReplaceFlakCannon = True
|
||||
bReplaceONSGrenadeLauncer = True
|
||||
bReplaceRocketLauncher = True
|
||||
bReplaceSniperRifle = True
|
||||
bReplaceClassicSniperRifle = True
|
||||
bReplaceRedeemer = True
|
||||
bReplacePainter = True
|
||||
bReplaceStartWeapons = True
|
||||
}
|
||||
13
Sources/Classes/UT2341BioAmmo.uc
Normal file
13
Sources/Classes/UT2341BioAmmo.uc
Normal file
@@ -0,0 +1,13 @@
|
||||
class UT2341BioAmmo extends Ammunition;
|
||||
|
||||
#EXEC OBJ LOAD FILE=InterfaceContent.utx
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
MaxAmmo=100
|
||||
InitialAmount=25
|
||||
PickupClass=Class'UT2341WeaponsReducedv1a.UT2341BioAmmoPickup'
|
||||
IconMaterial=Texture'HUDContent.Generic.HUD'
|
||||
IconCoords=(X1=383,Y1=82,X2=412,Y2=129)
|
||||
ItemName="Bio-Rifle Goop"
|
||||
}
|
||||
24
Sources/Classes/UT2341BioAmmoPickup.uc
Normal file
24
Sources/Classes/UT2341BioAmmoPickup.uc
Normal file
@@ -0,0 +1,24 @@
|
||||
class UT2341BioAmmoPickup extends UTAmmoPickup;
|
||||
|
||||
#exec OBJ LOAD FILE=PickupSounds.uax
|
||||
|
||||
function RespawnEffect()
|
||||
{
|
||||
spawn(class'FX_PickupRespawn');
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
AmmoAmount=25
|
||||
MaxDesireability=0.320000
|
||||
InventoryType=Class'UT2341WeaponsReducedv1a.UT2341BioAmmo'
|
||||
PickupMessage="You picked up some Tarydium sludge."
|
||||
PickupSound=Sound'UT2341Weapons_Sounds.General.AmmoSnd'
|
||||
PickupForce="FlakAmmoPickup"
|
||||
DrawType=DT_StaticMesh
|
||||
StaticMesh=StaticMesh'UT2341Weapons_SM.General.UTBioAmmo'
|
||||
DrawScale=0.300000
|
||||
PrePivot=(Z=40.000000)
|
||||
AmbientGlow=64
|
||||
CollisionHeight=8.250000
|
||||
}
|
||||
40
Sources/Classes/UT2341BioAttachment.uc
Normal file
40
Sources/Classes/UT2341BioAttachment.uc
Normal file
@@ -0,0 +1,40 @@
|
||||
class UT2341BioAttachment extends xWeaponAttachment;
|
||||
|
||||
var xEmitter MuzFlash3rd;
|
||||
|
||||
simulated function Destroyed()
|
||||
{
|
||||
if (MuzFlash3rd != None)
|
||||
MuzFlash3rd.Destroy();
|
||||
Super.Destroyed();
|
||||
}
|
||||
|
||||
simulated event ThirdPersonEffects()
|
||||
{
|
||||
local Rotator R;
|
||||
|
||||
if ( Level.NetMode != NM_DedicatedServer && FlashCount > 0 )
|
||||
{
|
||||
if (MuzFlash3rd == None)
|
||||
{
|
||||
MuzFlash3rd = Spawn(class'XEffects.BioMuzFlash1st');
|
||||
MuzFlash3rd.bHidden = false;
|
||||
AttachToBone(MuzFlash3rd, 'tip');
|
||||
}
|
||||
if (MuzFlash3rd != None)
|
||||
{
|
||||
R.Roll = Rand(65536);
|
||||
SetBoneRotation('Bone_Flesh', R, 0, 1.0); //Easy to see how this mistake was made, eh?
|
||||
MuzFlash3rd.mStartParticles++;
|
||||
}
|
||||
}
|
||||
|
||||
Super.ThirdPersonEffects();
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
bHeavy=True
|
||||
Mesh=SkeletalMesh'UT2341Weapons_Anims.UTGESBioRifle3rd'
|
||||
DrawScale=0.250000
|
||||
}
|
||||
152
Sources/Classes/UT2341BioChargedFire.uc
Normal file
152
Sources/Classes/UT2341BioChargedFire.uc
Normal file
@@ -0,0 +1,152 @@
|
||||
class UT2341BioChargedFire extends ProjectileFire;
|
||||
|
||||
var() float GoopUpRate;
|
||||
var() int MaxGoopLoad;
|
||||
var() int GoopLoad;
|
||||
var() Sound HoldSound;
|
||||
|
||||
function InitEffects()
|
||||
{
|
||||
Super.InitEffects();
|
||||
if( FlashEmitter == None )
|
||||
FlashEmitter = Weapon.GetFireMode(0).FlashEmitter;
|
||||
}
|
||||
|
||||
function DrawMuzzleFlash(Canvas Canvas)
|
||||
{
|
||||
if ( FlashEmitter != None )
|
||||
FlashEmitter.SetRotation(Weapon.Rotation);
|
||||
Super.DrawMuzzleFlash(Canvas);
|
||||
}
|
||||
|
||||
function ModeHoldFire()
|
||||
{
|
||||
if ( Weapon.AmmoAmount(ThisModeNum) > 0 )
|
||||
{
|
||||
Super.ModeHoldFire();
|
||||
GotoState('Hold');
|
||||
}
|
||||
}
|
||||
|
||||
function float MaxRange()
|
||||
{
|
||||
return 1500;
|
||||
}
|
||||
|
||||
simulated function bool AllowFire()
|
||||
{
|
||||
return (Weapon.AmmoAmount(ThisModeNum) > 0 || GoopLoad > 0);
|
||||
}
|
||||
|
||||
simulated function PlayStartHold()
|
||||
{
|
||||
Weapon.PlayAnim('FireLoop', 1.0 / (GoopUpRate*MaxGoopLoad), 0.1);
|
||||
}
|
||||
|
||||
simulated function PlayFiring()
|
||||
{
|
||||
Super.PlayFiring();
|
||||
Weapon.OutOfAmmo();
|
||||
}
|
||||
|
||||
state Hold
|
||||
{
|
||||
simulated function BeginState()
|
||||
{
|
||||
GoopLoad = 0;
|
||||
SetTimer(GoopUpRate, true);
|
||||
Weapon.PlayOwnedSound(HoldSound,SLOT_Interact,TransientSoundVolume);
|
||||
Weapon.ClientPlayForceFeedback( "BioRiflePowerUp" ); // jdf
|
||||
Timer();
|
||||
}
|
||||
|
||||
simulated function Timer()
|
||||
{
|
||||
if ( Weapon.AmmoAmount(ThisModeNum) > 0 )
|
||||
GoopLoad++;
|
||||
Weapon.ConsumeAmmo(ThisModeNum, 1);
|
||||
if (GoopLoad == MaxGoopLoad || Weapon.AmmoAmount(ThisModeNum) == 0)
|
||||
{
|
||||
SetTimer(0.0, false);
|
||||
Instigator.AmbientSound = sound'NewWeaponSounds.BioGoopLoop';
|
||||
Instigator.SoundRadius = 50;
|
||||
Instigator.SoundVolume = 50;
|
||||
}
|
||||
}
|
||||
|
||||
simulated function EndState()
|
||||
{
|
||||
if ( (Instigator != None) && (Instigator.AmbientSound == sound'NewWeaponSounds.BioGoopLoop') )
|
||||
Instigator.AmbientSound = None;
|
||||
Instigator.SoundRadius = Instigator.Default.SoundRadius;
|
||||
Instigator.SoundVolume = Instigator.Default.SoundVolume;
|
||||
|
||||
StopForceFeedback( "BioRiflePowerUp" ); // jdf
|
||||
}
|
||||
}
|
||||
|
||||
function projectile SpawnProjectile(Vector Start, Rotator Dir)
|
||||
{
|
||||
local UT2341BioGlob Glob;
|
||||
|
||||
GotoState('');
|
||||
|
||||
if (GoopLoad == 0) return None;
|
||||
|
||||
Glob = Weapon.Spawn(class'UT2341BioGlob',,, Start, Dir);
|
||||
if ( Glob != None )
|
||||
{
|
||||
Glob.Damage *= DamageAtten;
|
||||
Glob.SetGoopLevel(GoopLoad);
|
||||
Glob.AdjustSpeed();
|
||||
}
|
||||
GoopLoad = 0;
|
||||
if ( Weapon.AmmoAmount(ThisModeNum) <= 0 )
|
||||
Weapon.OutOfAmmo();
|
||||
return Glob;
|
||||
}
|
||||
|
||||
function StartBerserk()
|
||||
{
|
||||
if ( (Level.GRI != None) && (Level.GRI.WeaponBerserk > 1.0) )
|
||||
return;
|
||||
GoopUpRate = default.GoopUpRate*0.75;
|
||||
}
|
||||
|
||||
function StopBerserk()
|
||||
{
|
||||
if ( (Level.GRI != None) && (Level.GRI.WeaponBerserk > 1.0) )
|
||||
return;
|
||||
GoopUpRate = default.GoopUpRate;
|
||||
}
|
||||
|
||||
function StartSuperBerserk()
|
||||
{
|
||||
GoopUpRate = default.GoopUpRate/Level.GRI.WeaponBerserk;
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
GoopUpRate=0.550000
|
||||
MaxGoopLoad=10
|
||||
HoldSound=Sound'UT2341Weapons_Sounds.BioRifle.GelLoad'
|
||||
ProjSpawnOffset=(X=20.000000,Y=9.000000,Z=-6.000000)
|
||||
bSplashDamage=True
|
||||
bRecommendSplashDamage=True
|
||||
bTossed=True
|
||||
bFireOnRelease=True
|
||||
FireEndAnim=
|
||||
FireSound=Sound'UT2341Weapons_Sounds.BioRifle.GelShot'
|
||||
FireForce="BioRifleFire"
|
||||
FireRate=0.330000
|
||||
AmmoClass=Class'UT2341WeaponsReducedv1a.UT2341BioAmmo'
|
||||
ShakeRotMag=(X=100.000000)
|
||||
ShakeRotRate=(X=1000.000000)
|
||||
ShakeRotTime=2.000000
|
||||
ShakeOffsetMag=(X=-4.000000,Z=-4.000000)
|
||||
ShakeOffsetRate=(X=1000.000000,Z=1000.000000)
|
||||
ShakeOffsetTime=2.000000
|
||||
ProjectileClass=Class'UT2341WeaponsReducedv1a.UT2341BioGlob'
|
||||
BotRefireRate=0.500000
|
||||
WarnTargetPct=0.800000
|
||||
}
|
||||
37
Sources/Classes/UT2341BioFire.uc
Normal file
37
Sources/Classes/UT2341BioFire.uc
Normal file
@@ -0,0 +1,37 @@
|
||||
class UT2341BioFire extends ProjectileFire;
|
||||
|
||||
function DrawMuzzleFlash(Canvas Canvas)
|
||||
{
|
||||
if (FlashEmitter != None)
|
||||
FlashEmitter.SetRotation(Weapon.Rotation);
|
||||
Super.DrawMuzzleFlash(Canvas);
|
||||
}
|
||||
|
||||
function float MaxRange()
|
||||
{
|
||||
return 1500;
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
ProjSpawnOffset=(X=20.000000,Y=9.000000,Z=-6.000000)
|
||||
bSplashDamage=True
|
||||
bRecommendSplashDamage=True
|
||||
bTossed=True
|
||||
FireLoopAnim=
|
||||
FireEndAnim=
|
||||
FireSound=Sound'UT2341Weapons_Sounds.BioRifle.GelShot'
|
||||
FireForce="BioRifleFire"
|
||||
FireRate=0.280000
|
||||
AmmoClass=Class'UT2341WeaponsReducedv1a.UT2341BioAmmo'
|
||||
AmmoPerFire=1
|
||||
ShakeRotMag=(X=70.000000)
|
||||
ShakeRotRate=(X=1000.000000)
|
||||
ShakeRotTime=1.800000
|
||||
ShakeOffsetMag=(Z=-2.000000)
|
||||
ShakeOffsetRate=(Z=1000.000000)
|
||||
ShakeOffsetTime=1.800000
|
||||
ProjectileClass=Class'UT2341WeaponsReducedv1a.UT2341BioGlob'
|
||||
BotRefireRate=0.800000
|
||||
FlashEmitterClass=Class'XEffects.BioMuzFlash1st'
|
||||
}
|
||||
389
Sources/Classes/UT2341BioGlob.uc
Normal file
389
Sources/Classes/UT2341BioGlob.uc
Normal file
@@ -0,0 +1,389 @@
|
||||
/*
|
||||
UT99's bio glob base damage is 30 - however, the damaging function (Timer()) in 99
|
||||
multiplies bio damage by the current drawscale
|
||||
|
||||
primary shots have drawscale 2.0
|
||||
alt fire shots have drawscale between 1.8 and 4.28
|
||||
|
||||
we therefore specify the primary damage as 60, and scale damage by (1 + 0.155 * (GoopLevel - 1))
|
||||
*/
|
||||
|
||||
class UT2341BioGlob extends Projectile;
|
||||
|
||||
var xEmitter Trail;
|
||||
var() float GloblingSpeed;
|
||||
var() float RestTime;
|
||||
var() float TouchDetonationDelay; // gives player a split second to jump to gain extra momentum from blast
|
||||
var() float DripTime;
|
||||
var() int MaxGoopLevel;
|
||||
|
||||
var int GoopLevel;
|
||||
var float GoopVolume;
|
||||
var Vector SurfaceNormal;
|
||||
var int Rand3;
|
||||
var bool bCheckedSurface;
|
||||
var() bool bMergeGlobs;
|
||||
var bool bDrip;
|
||||
var bool bOnMover;
|
||||
|
||||
var() Sound ExplodeSound;
|
||||
var AvoidMarker Fear;
|
||||
|
||||
replication
|
||||
{
|
||||
reliable if (bNetInitial && Role == ROLE_Authority)
|
||||
Rand3;
|
||||
}
|
||||
|
||||
simulated function PostBeginPlay()
|
||||
{
|
||||
Super.PostBeginPlay();
|
||||
|
||||
SetOwner(None);
|
||||
|
||||
LoopAnim('flying', 1.0);
|
||||
|
||||
if (Role == ROLE_Authority)
|
||||
{
|
||||
Velocity = Vector(Rotation) * Speed;
|
||||
Velocity.Z += TossZ;
|
||||
}
|
||||
|
||||
if (Role == ROLE_Authority)
|
||||
Rand3 = Rand(3);
|
||||
if ( (Level.NetMode != NM_DedicatedServer) && ((Level.DetailMode == DM_Low) || Level.bDropDetail) )
|
||||
{
|
||||
bDynamicLight = false;
|
||||
LightType = LT_None;
|
||||
}
|
||||
}
|
||||
|
||||
function AdjustSpeed()
|
||||
{
|
||||
if ( GoopLevel > 1 )
|
||||
{
|
||||
//UT had different stats for the alt glob
|
||||
Damage = 100;
|
||||
Velocity = Vector(Rotation) * 1000;
|
||||
Velocity.Z += TossZ;
|
||||
}
|
||||
}
|
||||
|
||||
simulated function PostNetBeginPlay()
|
||||
{
|
||||
if (Role < ROLE_Authority && Physics == PHYS_None)
|
||||
{
|
||||
Landed(Vector(Rotation));
|
||||
}
|
||||
}
|
||||
|
||||
simulated function Destroyed()
|
||||
{
|
||||
if ( !bNoFX && EffectIsRelevant(Location,false) )
|
||||
{
|
||||
//Spawn(class'xEffects.GoopSmoke');
|
||||
//Spawn(class'xEffects.GoopSparks');
|
||||
Spawn(class'FX_BioExplosion');
|
||||
}
|
||||
if ( Fear != None )
|
||||
Fear.Destroy();
|
||||
if (Trail != None)
|
||||
Trail.Destroy();
|
||||
Super.Destroyed();
|
||||
}
|
||||
|
||||
simulated function MergeWithGlob(int AdditionalGoopLevel)
|
||||
{
|
||||
}
|
||||
|
||||
auto state Flying
|
||||
{
|
||||
simulated function Landed( Vector HitNormal )
|
||||
{
|
||||
local Rotator NewRot;
|
||||
local int CoreGoopLevel;
|
||||
|
||||
if ( Level.NetMode != NM_DedicatedServer )
|
||||
{
|
||||
PlaySound(ImpactSound, SLOT_Misc);
|
||||
// explosion effects
|
||||
}
|
||||
|
||||
SurfaceNormal = HitNormal;
|
||||
|
||||
// spawn globlings
|
||||
CoreGoopLevel = Rand3 + MaxGoopLevel - 3;
|
||||
if (GoopLevel > CoreGoopLevel)
|
||||
{
|
||||
if (Role == ROLE_Authority)
|
||||
SplashGlobs(GoopLevel - CoreGoopLevel);
|
||||
SetGoopLevel(CoreGoopLevel);
|
||||
}
|
||||
spawn(class'BioDecal',,,, rotator(-HitNormal));
|
||||
|
||||
bCollideWorld = false;
|
||||
SetCollisionSize(GoopVolume*10.0, GoopVolume*10.0);
|
||||
bProjTarget = true;
|
||||
|
||||
NewRot = Rotator(HitNormal);
|
||||
NewRot.Roll += 32768;
|
||||
SetRotation(NewRot);
|
||||
SetPhysics(PHYS_None);
|
||||
bCheckedsurface = false;
|
||||
if ( (Level.Game != None) && (Level.Game.NumBots > 0) )
|
||||
Fear = Spawn(class'AvoidMarker');
|
||||
GotoState('OnGround');
|
||||
}
|
||||
|
||||
simulated function HitWall( Vector HitNormal, Actor Wall )
|
||||
{
|
||||
Landed(HitNormal);
|
||||
if ( !Wall.bStatic && !Wall.bWorldGeometry )
|
||||
{
|
||||
bOnMover = true;
|
||||
SetBase(Wall);
|
||||
if (Base == None)
|
||||
BlowUp(Location);
|
||||
}
|
||||
}
|
||||
|
||||
simulated function ProcessTouch(Actor Other, Vector HitLocation)
|
||||
{
|
||||
local UT2341BioGlob Glob;
|
||||
|
||||
Glob = UT2341BioGlob(Other);
|
||||
|
||||
if ( Glob != None )
|
||||
{
|
||||
if (Glob.Owner == None || (Glob.Owner != Owner && Glob.Owner != self))
|
||||
{
|
||||
if (bMergeGlobs)
|
||||
{
|
||||
Glob.MergeWithGlob(GoopLevel); // balancing on the brink of infinite recursion
|
||||
bNoFX = true;
|
||||
Destroy();
|
||||
}
|
||||
else
|
||||
{
|
||||
BlowUp( HitLocation );
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (Other != Instigator && (Other.IsA('Pawn') || Other.IsA('DestroyableObjective') || Other.bProjTarget))
|
||||
BlowUp( HitLocation );
|
||||
else if ( Other != Instigator && Other.bBlockActors )
|
||||
HitWall( Normal(HitLocation-Location), Other );
|
||||
}
|
||||
}
|
||||
|
||||
state OnGround
|
||||
{
|
||||
simulated function BeginState()
|
||||
{
|
||||
PlayAnim('hit');
|
||||
SetTimer(RestTime, false);
|
||||
}
|
||||
|
||||
simulated function Timer()
|
||||
{
|
||||
if (bDrip)
|
||||
{
|
||||
bDrip = false;
|
||||
SetCollisionSize(default.CollisionHeight, default.CollisionRadius);
|
||||
Velocity = PhysicsVolume.Gravity * 0.2;
|
||||
SetPhysics(PHYS_Falling);
|
||||
bCollideWorld = true;
|
||||
bCheckedsurface = false;
|
||||
bProjTarget = false;
|
||||
LoopAnim('flying', 1.0);
|
||||
GotoState('Flying');
|
||||
}
|
||||
else
|
||||
{
|
||||
BlowUp(Location);
|
||||
}
|
||||
}
|
||||
|
||||
simulated function ProcessTouch(Actor Other, Vector HitLocation)
|
||||
{
|
||||
if ( Other.IsA('Pawn') && (Other != Base) )
|
||||
{
|
||||
bDrip = false;
|
||||
SetTimer(TouchDetonationDelay, false);
|
||||
}
|
||||
}
|
||||
|
||||
function TakeDamage( int Damage, Pawn InstigatedBy, Vector HitLocation, Vector Momentum, class<DamageType> DamageType )
|
||||
{
|
||||
if (DamageType.default.bDetonatesGoop)
|
||||
{
|
||||
bDrip = false;
|
||||
SetTimer(0.1, false);
|
||||
}
|
||||
}
|
||||
|
||||
simulated function AnimEnd(int Channel)
|
||||
{
|
||||
local float DotProduct;
|
||||
|
||||
if (!bCheckedSurface)
|
||||
{
|
||||
DotProduct = SurfaceNormal dot Vect(0,0,-1);
|
||||
if (DotProduct > 0.7)
|
||||
{
|
||||
PlayAnim('Drip', 0.66);
|
||||
bDrip = true;
|
||||
SetTimer(DripTime, false);
|
||||
if (bOnMover)
|
||||
BlowUp(Location);
|
||||
}
|
||||
else if (DotProduct > -0.5)
|
||||
{
|
||||
PlayAnim('Slide', 1.0);
|
||||
if (bOnMover)
|
||||
BlowUp(Location);
|
||||
}
|
||||
bCheckedSurface = true;
|
||||
}
|
||||
}
|
||||
|
||||
simulated function MergeWithGlob(int AdditionalGoopLevel)
|
||||
{
|
||||
local int NewGoopLevel, ExtraSplash;
|
||||
NewGoopLevel = AdditionalGoopLevel + GoopLevel;
|
||||
if (NewGoopLevel > MaxGoopLevel)
|
||||
{
|
||||
Rand3 = (Rand3 + 1) % 3;
|
||||
ExtraSplash = Rand3;
|
||||
if (Role == ROLE_Authority)
|
||||
SplashGlobs(NewGoopLevel - MaxGoopLevel + ExtraSplash);
|
||||
NewGoopLevel = MaxGoopLevel - ExtraSplash;
|
||||
}
|
||||
SetGoopLevel(NewGoopLevel);
|
||||
SetCollisionSize(GoopVolume*10.0, GoopVolume*10.0);
|
||||
PlaySound(ImpactSound, SLOT_Misc);
|
||||
PlayAnim('hit');
|
||||
bCheckedSurface = false;
|
||||
SetTimer(RestTime, false);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function BlowUp(Vector HitLocation)
|
||||
{
|
||||
if (Role == ROLE_Authority)
|
||||
{
|
||||
// simulate ut99 drawscale-based calc for charged glob
|
||||
if (GoopLevel > 1)
|
||||
{
|
||||
Damage *= 1 + (0.155 * (GoopLevel - 1));
|
||||
DamageRadius = FMin(275, DamageRadius + (12.5 * (GoopLevel - 1)));
|
||||
}
|
||||
|
||||
MomentumTransfer = MomentumTransfer * GoopVolume;
|
||||
|
||||
if (Physics == PHYS_Flying)
|
||||
MomentumTransfer *= 0.5;
|
||||
|
||||
DelayedHurtRadius(Damage, DamageRadius, MyDamageType, MomentumTransfer, HitLocation);
|
||||
}
|
||||
|
||||
PlaySound(ExplodeSound, SLOT_Misc);
|
||||
|
||||
Destroy();
|
||||
//GotoState('shriveling');
|
||||
}
|
||||
|
||||
singular function SplashGlobs(int NumGloblings)
|
||||
{
|
||||
local int g;
|
||||
local UT2341BioGlob NewGlob;
|
||||
local Vector VNorm;
|
||||
|
||||
for (g=0; g<NumGloblings; g++)
|
||||
{
|
||||
NewGlob = Spawn(Class, self,, Location+GoopVolume*(CollisionHeight+4.0)*SurfaceNormal);
|
||||
if (NewGlob != None)
|
||||
{
|
||||
NewGlob.Velocity = (GloblingSpeed + FRand()*150.0) * (SurfaceNormal + VRand()*0.8);
|
||||
if (Physics == PHYS_Falling)
|
||||
{
|
||||
VNorm = (Velocity dot SurfaceNormal) * SurfaceNormal;
|
||||
NewGlob.Velocity += (-VNorm + (Velocity - VNorm)) * 0.1;
|
||||
}
|
||||
NewGlob.InstigatorController = InstigatorController;
|
||||
}
|
||||
//else log("unable to spawn globling");
|
||||
}
|
||||
}
|
||||
|
||||
state Shriveling
|
||||
{
|
||||
simulated function BeginState()
|
||||
{
|
||||
bProjTarget = false;
|
||||
PlayAnim('shrivel', 1.0);
|
||||
}
|
||||
|
||||
simulated function AnimEnd(int Channel)
|
||||
{
|
||||
Destroy();
|
||||
}
|
||||
|
||||
simulated function ProcessTouch(Actor Other, Vector HitLocation)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
simulated function SetGoopLevel( int NewGoopLevel )
|
||||
{
|
||||
GoopLevel = NewGoopLevel;
|
||||
GoopVolume = sqrt(float(GoopLevel));
|
||||
SetDrawScale(GoopVolume*default.DrawScale);
|
||||
LightBrightness = Min(100 + 15*GoopLevel, 255);
|
||||
LightRadius = 1.7 + 0.2*GoopLevel;
|
||||
FluidSurfaceShootStrengthMod=5.f + 0.3 * NewGoopLevel;
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
GloblingSpeed=200.000000
|
||||
RestTime=3.800000
|
||||
TouchDetonationDelay=0.150000
|
||||
DripTime=1.800000
|
||||
MaxGoopLevel=5
|
||||
GoopLevel=1
|
||||
GoopVolume=1.000000
|
||||
bMergeGlobs=True
|
||||
ExplodeSound=Sound'UT2341Weapons_Sounds.General.Explo1'
|
||||
Speed=1500.000000
|
||||
MaxSpeed=1900.000000
|
||||
TossZ=140.000000
|
||||
bSwitchToZeroCollision=True
|
||||
Damage=60.000000
|
||||
DamageRadius=165.000000
|
||||
MomentumTransfer=40000.000000
|
||||
MyDamageType=Class'UT2341WeaponsReducedv1a.DamType_BioGel'
|
||||
ImpactSound=Sound'UT2341Weapons_Sounds.BioRifle.GelHit'
|
||||
MaxEffectDistance=7000.000000
|
||||
LightType=LT_Steady
|
||||
LightEffect=LE_QuadraticNonIncidence
|
||||
LightHue=82
|
||||
LightSaturation=10
|
||||
LightBrightness=190.000000
|
||||
LightRadius=0.600000
|
||||
bDynamicLight=True
|
||||
bNetTemporary=False
|
||||
bOnlyDirtyReplication=True
|
||||
Physics=PHYS_Falling
|
||||
LifeSpan=12.000000
|
||||
Mesh=VertMesh'XWeapons_rc.GoopMesh'
|
||||
DrawScale=1.100000
|
||||
Skins(0)=FinalBlend'XEffectMat.goop.GoopFB'
|
||||
AmbientGlow=80
|
||||
SoundVolume=255
|
||||
SoundRadius=100.000000
|
||||
CollisionRadius=2.000000
|
||||
CollisionHeight=2.000000
|
||||
bUseCollisionStaticMesh=True
|
||||
}
|
||||
137
Sources/Classes/UT2341BioRifle.uc
Normal file
137
Sources/Classes/UT2341BioRifle.uc
Normal file
@@ -0,0 +1,137 @@
|
||||
class UT2341BioRifle extends Weapon
|
||||
config(user);
|
||||
|
||||
#EXEC OBJ LOAD FILE=InterfaceContent.utx
|
||||
|
||||
function DropFrom(vector StartLocation)
|
||||
{
|
||||
if ( bCanThrow && (AmmoAmount(0) == 0) )
|
||||
AddAmmo(1,0);
|
||||
Super.DropFrom(StartLocation);
|
||||
}
|
||||
|
||||
// AI Interface
|
||||
function float GetAIRating()
|
||||
{
|
||||
local Bot B;
|
||||
local float EnemyDist;
|
||||
local vector EnemyDir;
|
||||
|
||||
B = Bot(Instigator.Controller);
|
||||
if ( B == None )
|
||||
return AIRating;
|
||||
|
||||
if ( B.Enemy == None )
|
||||
{
|
||||
if ( (B.Target != None) && VSize(B.Target.Location - B.Pawn.Location) > 3500 )
|
||||
return 0.2;
|
||||
return AIRating;
|
||||
}
|
||||
|
||||
// if retreating, favor this weapon
|
||||
EnemyDir = B.Enemy.Location - Instigator.Location;
|
||||
EnemyDist = VSize(EnemyDir);
|
||||
if ( EnemyDist > 1500 )
|
||||
return 0.1;
|
||||
if ( B.IsRetreating() )
|
||||
return (AIRating + 0.4);
|
||||
if ( (B.Enemy.Weapon != None) && B.Enemy.Weapon.bMeleeWeapon )
|
||||
return (AIRating + 0.35);
|
||||
if ( -1 * EnemyDir.Z > EnemyDist )
|
||||
return AIRating + 0.1;
|
||||
if ( EnemyDist > 1000 )
|
||||
return 0.35;
|
||||
return AIRating;
|
||||
}
|
||||
|
||||
/* BestMode()
|
||||
choose between regular or alt-fire
|
||||
*/
|
||||
function byte BestMode()
|
||||
{
|
||||
if ( FRand() < 0.8 )
|
||||
return 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
function float SuggestAttackStyle()
|
||||
{
|
||||
local Bot B;
|
||||
local float EnemyDist;
|
||||
|
||||
B = Bot(Instigator.Controller);
|
||||
if ( (B == None) || (B.Enemy == None) )
|
||||
return 0.4;
|
||||
|
||||
EnemyDist = VSize(B.Enemy.Location - Instigator.Location);
|
||||
if ( EnemyDist > 1500 )
|
||||
return 1.0;
|
||||
if ( EnemyDist > 1000 )
|
||||
return 0.4;
|
||||
return -0.4;
|
||||
}
|
||||
|
||||
function float SuggestDefenseStyle()
|
||||
{
|
||||
local Bot B;
|
||||
|
||||
B = Bot(Instigator.Controller);
|
||||
if ( (B == None) || (B.Enemy == None) )
|
||||
return 0;
|
||||
|
||||
if ( VSize(B.Enemy.Location - Instigator.Location) < 1600 )
|
||||
return -0.6;
|
||||
return 0;
|
||||
}
|
||||
|
||||
// End AI Interface
|
||||
|
||||
simulated function AnimEnd(int Channel)
|
||||
{
|
||||
local name anim;
|
||||
local float frame, rate;
|
||||
GetAnimParams(0, anim, frame, rate);
|
||||
|
||||
if (anim == 'FireLoop')
|
||||
LoopAnim('IDLEFireLoop', 1.0, 0.1);
|
||||
else
|
||||
Super.AnimEnd(Channel);
|
||||
}
|
||||
|
||||
simulated function bool HasAmmo()
|
||||
{
|
||||
return ( (AmmoAmount(0) >= 1) || FireMode[1].bIsFiring );
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
FireModeClass(0)=Class'UT2341WeaponsReducedv1a.UT2341BioFire'
|
||||
FireModeClass(1)=Class'UT2341WeaponsReducedv1a.UT2341BioChargedFire'
|
||||
PutDownAnim="PutDown"
|
||||
SelectSound=Sound'UT2341Weapons_Sounds.BioRifle.GelSelect'
|
||||
SelectForce="SwitchToFlakCannon"
|
||||
AIRating=0.550000
|
||||
CurrentRating=0.550000
|
||||
Description="Classification: Toxic Rifle||Primary Fire: Wads of Tarydium byproduct are lobbed at a medium rate of fire.||Secondary Fire: When trigger is held down, the BioRifle will create a much larger wad of byproduct. When this wad is launched, it will burst into smaller wads which will adhere to any surfaces.||Techniques: Byproducts will adhere to walls, floors, or ceilings. Chain reactions can be caused by covering entryways with this lethal green waste."
|
||||
EffectOffset=(X=100.000000,Y=25.000000)
|
||||
DisplayFOV=80.000000
|
||||
Priority=4
|
||||
HudColor=(B=255,G=0,R=0)
|
||||
SmallViewOffset=(X=4.000000,Y=-4.000000,Z=-15.000000)
|
||||
CenteredOffsetY=-8.000000
|
||||
CustomCrosshair=7
|
||||
CustomCrossHairColor=(G=0,R=0)
|
||||
CustomCrossHairScale=1.333000
|
||||
CustomCrossHairTextureName="Crosshairs.Hud.Crosshair_Triad1"
|
||||
InventoryGroup=3
|
||||
PickupClass=Class'UT2341WeaponsReducedv1a.UT2341BioRiflePickup'
|
||||
PlayerViewOffset=(X=4.000000,Y=-4.000000,Z=-15.000000)
|
||||
PlayerViewPivot=(Pitch=1024)
|
||||
BobDamping=2.200000
|
||||
AttachmentClass=Class'UT2341WeaponsReducedv1a.UT2341BioAttachment'
|
||||
IconMaterial=Texture'UT2341Weapons_Tex.Icons.Icon_BioRifle'
|
||||
IconCoords=(X2=127,Y2=31)
|
||||
ItemName="GES Bio-Rifle"
|
||||
Mesh=SkeletalMesh'UT2341Weapons_Anims.UTGESBioRifleFP'
|
||||
DrawScale=2.000000
|
||||
}
|
||||
36
Sources/Classes/UT2341BioRiflePickup.uc
Normal file
36
Sources/Classes/UT2341BioRiflePickup.uc
Normal file
@@ -0,0 +1,36 @@
|
||||
class UT2341BioRiflePickup extends UTWeaponPickup;
|
||||
|
||||
static function StaticPrecache(LevelInfo L)
|
||||
{
|
||||
L.AddPrecacheMaterial(Texture'XEffects.xbiosplat2');
|
||||
L.AddPrecacheMaterial(Texture'XEffects.xbiosplat');
|
||||
L.AddPrecacheMaterial(Texture'XGameShaders.bio_flash');
|
||||
L.AddPrecacheMaterial(Texture'WeaponSkins.BioGoo.BRInnerGoo');
|
||||
L.AddPrecacheMaterial(Texture'WeaponSkins.BioGoo.BRInnerBubbles');
|
||||
L.AddPrecacheStaticMesh(StaticMesh'WeaponStaticMesh.BioRiflePickup');
|
||||
}
|
||||
|
||||
simulated function UpdatePrecacheMaterials()
|
||||
{
|
||||
Level.AddPrecacheMaterial(Texture'XEffects.xbiosplat2');
|
||||
Level.AddPrecacheMaterial(Texture'XEffects.xbiosplat');
|
||||
Level.AddPrecacheMaterial(Texture'XGameShaders.bio_flash');
|
||||
Level.AddPrecacheMaterial(Texture'WeaponSkins.BioGoo.BRInnerGoo');
|
||||
Level.AddPrecacheMaterial(Texture'WeaponSkins.BioGoo.BRInnerBubbles');
|
||||
|
||||
super.UpdatePrecacheMaterials();
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
MaxDesireability=0.750000
|
||||
InventoryType=Class'UT2341WeaponsReducedv1a.UT2341BioRifle'
|
||||
PickupMessage="You got the Bio-Rifle."
|
||||
PickupSound=Sound'UT2341Weapons_Sounds.General.WeaponPickup'
|
||||
PickupForce="FlakCannonPickup"
|
||||
DrawType=DT_StaticMesh
|
||||
StaticMesh=StaticMesh'UT2341Weapons_SM.General.UTGESBioRifle'
|
||||
DrawScale=2.000000
|
||||
AmbientGlow=48
|
||||
RotationRate=(Yaw=5000)
|
||||
}
|
||||
864
Sources/Classes/UT2341Enforcer.uc
Normal file
864
Sources/Classes/UT2341Enforcer.uc
Normal file
@@ -0,0 +1,864 @@
|
||||
//=============================================================================
|
||||
// Enforcer.
|
||||
//
|
||||
// Pain in the arse dual-wielded weapon. Slave is driven by master.
|
||||
//=============================================================================
|
||||
class UT2341Enforcer extends Weapon
|
||||
config(user);
|
||||
|
||||
#EXEC OBJ LOAD FILE=InterfaceContent.utx
|
||||
|
||||
enum EGunState
|
||||
{
|
||||
GS_Single,
|
||||
GS_Master,
|
||||
GS_Slave
|
||||
};
|
||||
|
||||
var EGunState GunState;
|
||||
|
||||
var UT2341Enforcer Enforcer2;
|
||||
|
||||
replication
|
||||
{
|
||||
reliable if (Role == ROLE_Authority)
|
||||
GunState, Enforcer2;
|
||||
reliable if (Role < ROLE_Authority)
|
||||
GrantMePower;
|
||||
}
|
||||
|
||||
|
||||
simulated function bool FirstPersonView()
|
||||
{
|
||||
return (Instigator.IsLocallyControlled() && (PlayerController(Instigator.Controller) != None) && !PlayerController(Instigator.Controller).bBehindView);
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
// ClientWeaponSet
|
||||
//
|
||||
// Don't autoswitch to a slave
|
||||
// Slave should bring itself up if the master's the active weapon
|
||||
//===========================================================================
|
||||
simulated function ClientWeaponSet(bool bPossiblySwitch)
|
||||
{
|
||||
local int Mode;
|
||||
|
||||
Instigator = Pawn(Owner);
|
||||
|
||||
bPendingSwitch = (bPossiblySwitch && GunState != GS_Slave);
|
||||
|
||||
if( Instigator == None )
|
||||
{
|
||||
GotoState('PendingClientWeaponSet');
|
||||
return;
|
||||
}
|
||||
|
||||
for( Mode = 0; Mode < NUM_FIRE_MODES; Mode++ )
|
||||
{
|
||||
if( FireModeClass[Mode] != None )
|
||||
{
|
||||
// laurent -- added check for vehicles (ammo not replicated but unlimited)
|
||||
if( ( FireMode[Mode] == None ) || ( FireMode[Mode].AmmoClass != None ) && !bNoAmmoInstances && Ammo[Mode] == None && FireMode[Mode].AmmoPerFire > 0 )
|
||||
{
|
||||
GotoState('PendingClientWeaponSet');
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
FireMode[Mode].Instigator = Instigator;
|
||||
FireMode[Mode].Level = Level;
|
||||
}
|
||||
|
||||
ClientState = WS_Hidden;
|
||||
GotoState('Hidden');
|
||||
|
||||
if (GunState == GS_Slave)
|
||||
{
|
||||
Enforcer2.ItemName = "Double Enforcers";
|
||||
if (Instigator.Weapon == Enforcer2 && Instigator.PendingWeapon == None)
|
||||
BringUp();
|
||||
return;
|
||||
}
|
||||
|
||||
if( Level.NetMode == NM_DedicatedServer || !Instigator.IsHumanControlled() )
|
||||
return;
|
||||
|
||||
if( Instigator.Weapon == self || Instigator.PendingWeapon == self ) // this weapon was switched to while waiting for replication, switch to it now
|
||||
{
|
||||
if (Instigator.PendingWeapon != None)
|
||||
Instigator.ChangedWeapon();
|
||||
else
|
||||
BringUp();
|
||||
return;
|
||||
}
|
||||
|
||||
if( Instigator.PendingWeapon != None && Instigator.PendingWeapon.bForceSwitch )
|
||||
return;
|
||||
|
||||
if( Instigator.Weapon == None )
|
||||
{
|
||||
Instigator.PendingWeapon = self;
|
||||
Instigator.ChangedWeapon();
|
||||
}
|
||||
else if ( bPossiblySwitch && !Instigator.Weapon.IsFiring() )
|
||||
{
|
||||
if ( PlayerController(Instigator.Controller) != None && PlayerController(Instigator.Controller).bNeverSwitchOnPickup )
|
||||
return;
|
||||
if ( Instigator.PendingWeapon != None )
|
||||
{
|
||||
if ( RateSelf() > Instigator.PendingWeapon.RateSelf() )
|
||||
{
|
||||
Instigator.PendingWeapon = self;
|
||||
Instigator.Weapon.PutDown();
|
||||
}
|
||||
}
|
||||
else if ( RateSelf() > Instigator.Weapon.RateSelf() )
|
||||
{
|
||||
Instigator.PendingWeapon = self;
|
||||
Instigator.Weapon.PutDown();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//===========================================================================
|
||||
// SpawnShell
|
||||
//
|
||||
// Just spawns an actor for the shell. MeshEmitters don't respect the rotation, xEmitters don't respect
|
||||
// the initial shot OR the rotation.
|
||||
//===========================================================================
|
||||
simulated function SpawnShell()
|
||||
{
|
||||
Spawn(class'EnforcerShellCasing', self,,GetBoneCoords('Bone_CaseEjector').Origin, Rotation);
|
||||
}
|
||||
|
||||
|
||||
simulated function Timer()
|
||||
{
|
||||
local int Mode;
|
||||
local float OldDownDelay;
|
||||
|
||||
OldDownDelay = DownDelay;
|
||||
DownDelay = 0;
|
||||
|
||||
//log("Enforcer"@eval(GunState == GS_Slave, "Slave", "Master")@"enters Timer. State:"@GetEnum(enum'EWeaponClientState', ClientState));
|
||||
|
||||
if (ClientState == WS_BringUp)
|
||||
{
|
||||
for( Mode = 0; Mode < NUM_FIRE_MODES; Mode++ )
|
||||
FireMode[Mode].InitEffects();
|
||||
PlayIdle();
|
||||
ClientState = WS_ReadyToFire;
|
||||
//log("Enforcer"@eval(GunState == GS_Slave, "Slave", "Master")@"state Bringup");
|
||||
}
|
||||
else if (ClientState == WS_PutDown)
|
||||
{
|
||||
if ( OldDownDelay > 0 )
|
||||
{
|
||||
if ( HasAnim(PutDownAnim) )
|
||||
PlayAnim(PutDownAnim, PutDownAnimRate, 0.0);
|
||||
SetTimer(PutDownTime, false);
|
||||
//log("Enforcer"@eval(GunState == GS_Slave, "Slave", "Master")@"state PutDown PlayingAnim");
|
||||
return;
|
||||
}
|
||||
if ( Instigator.PendingWeapon == None && GunState != GS_Slave)
|
||||
{
|
||||
PlayIdle();
|
||||
ClientState = WS_ReadyToFire;
|
||||
//log("Enforcer"@eval(GunState == GS_Slave, "Slave", "Master")@"state Putdown No Pending");
|
||||
}
|
||||
else
|
||||
{
|
||||
ClientState = WS_Hidden;
|
||||
if (GunState != GS_Slave)
|
||||
Instigator.ChangedWeapon();
|
||||
if ( (Instigator.Weapon == self || Instigator.Weapon == Enforcer2) && (GunState != GS_Slave || (Instigator.PendingWeapon == None || Instigator.PendingWeapon == Enforcer2)) )
|
||||
{
|
||||
PlayIdle();
|
||||
ClientState = WS_ReadyToFire;
|
||||
//log("Enforcer"@eval(GunState == GS_Slave, "Slave", "Master")@"state Putdown Weapon Self Or Enforcer");
|
||||
}
|
||||
else
|
||||
{
|
||||
for( Mode = 0; Mode < NUM_FIRE_MODES; Mode++ )
|
||||
FireMode[Mode].DestroyEffects();
|
||||
//log("Enforcer"@eval(GunState == GS_Slave, "Slave", "Master")@"state Putdown Fail");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
simulated exec function GrantMePower()
|
||||
{
|
||||
local UT2341Enforcer Gun2;
|
||||
|
||||
if (Level.NetMode == NM_Standalone || Instigator.PlayerReplicationInfo.bAdmin)
|
||||
{
|
||||
Gun2 = Spawn(class);
|
||||
Gun2.GiveTo(Instigator);
|
||||
}
|
||||
}
|
||||
|
||||
simulated function bool WeaponCentered()
|
||||
{
|
||||
return GunState != GS_Slave && ( bSpectated || (Hand > 1) );
|
||||
}
|
||||
|
||||
simulated function vector GetEffectStart()
|
||||
{
|
||||
// jjs - this function should actually never be called in third person views
|
||||
// any effect that needs a 3rdp weapon offset should figure it out itself
|
||||
|
||||
// 1st person
|
||||
if (Instigator.IsFirstPerson())
|
||||
{
|
||||
if ( WeaponCentered() )
|
||||
return CenteredEffectStart();
|
||||
|
||||
return GetBoneCoords('Bone_Flash').Origin;
|
||||
}
|
||||
// 3rd person
|
||||
else
|
||||
{
|
||||
return (Instigator.Location +
|
||||
Instigator.EyeHeight*Vect(0,0,0.5) +
|
||||
Vector(Instigator.Rotation) * 40.0);
|
||||
}
|
||||
}
|
||||
|
||||
simulated function SetOverlayMaterial( Material mat, float time, bool bOverride )
|
||||
{
|
||||
Super.SetOverlayMaterial(mat, time, bOverride);
|
||||
if (GunState == GS_Master && Enforcer2 != None)
|
||||
Enforcer2.SetOverlayMaterial(mat, time, bOverride);
|
||||
}
|
||||
|
||||
function AttachToPawn(Pawn P)
|
||||
{
|
||||
local name BoneName;
|
||||
local Rotator R;
|
||||
|
||||
Instigator = P;
|
||||
if ( ThirdPersonActor == None )
|
||||
{
|
||||
ThirdPersonActor = Spawn(AttachmentClass,Owner);
|
||||
InventoryAttachment(ThirdPersonActor).InitFor(self);
|
||||
}
|
||||
else
|
||||
ThirdPersonActor.NetUpdateTime = Level.TimeSeconds - 1;
|
||||
if (GunState == GS_Slave)
|
||||
{
|
||||
UT2341EnforcerAttachment(ThirdPersonActor).bDualGun = True;
|
||||
BoneName = P.GetOffhandBoneFor(self);
|
||||
R = ThirdPersonActor.RelativeRotation;
|
||||
R.Yaw += 32768;
|
||||
ThirdPersonActor.SetRelativeRotation(R);
|
||||
}
|
||||
else BoneName = P.GetWeaponBoneFor(self);
|
||||
if ( BoneName == '' )
|
||||
{
|
||||
ThirdPersonActor.SetLocation(P.Location);
|
||||
ThirdPersonActor.SetBase(P);
|
||||
}
|
||||
else
|
||||
P.AttachToBone(ThirdPersonActor,BoneName);
|
||||
}
|
||||
|
||||
simulated event RenderOverlays( Canvas Canvas )
|
||||
{
|
||||
local int m;
|
||||
local vector NewScale3D;
|
||||
local rotator CenteredRotation;
|
||||
local name AnimSeq;
|
||||
local float frame,rate;
|
||||
|
||||
if (Instigator == None)
|
||||
return;
|
||||
|
||||
if ( Instigator.Controller != None )
|
||||
{
|
||||
if (GunState == GS_Slave)
|
||||
{
|
||||
Hand = Instigator.Controller.Handedness * -1;
|
||||
if (Hand == 0)
|
||||
Hand = -1;
|
||||
}
|
||||
else
|
||||
Hand = Instigator.Controller.Handedness;
|
||||
}
|
||||
|
||||
if ((Hand < -1.0) || (Hand > 1.0))
|
||||
return;
|
||||
|
||||
// draw muzzleflashes/smoke for all fire modes so idle state won't
|
||||
// cause emitters to just disappear
|
||||
for (m = 0; m < NUM_FIRE_MODES; m++)
|
||||
{
|
||||
if (FireMode[m] != None)
|
||||
{
|
||||
FireMode[m].DrawMuzzleFlash(Canvas);
|
||||
}
|
||||
}
|
||||
|
||||
if ( (OldMesh != None) && (bUseOldWeaponMesh != (OldMesh == Mesh)) )
|
||||
{
|
||||
GetAnimParams(0,AnimSeq,frame,rate);
|
||||
bInitOldMesh = true;
|
||||
if ( bUseOldWeaponMesh )
|
||||
LinkMesh(OldMesh);
|
||||
else
|
||||
LinkMesh(Default.Mesh);
|
||||
PlayAnim(AnimSeq,rate,0.0);
|
||||
}
|
||||
|
||||
if ( (Hand != RenderedHand) || bInitOldMesh )
|
||||
{
|
||||
newScale3D = Default.DrawScale3D;
|
||||
if ( Hand != 0 )
|
||||
newScale3D.Y *= Hand;
|
||||
SetDrawScale3D(newScale3D);
|
||||
SetDrawScale(Default.DrawScale);
|
||||
CenteredRoll = Default.CenteredRoll;
|
||||
CenteredYaw = Default.CenteredYaw;
|
||||
CenteredOffsetY = Default.CenteredOffsetY;
|
||||
PlayerViewPivot = Default.PlayerViewPivot;
|
||||
SmallViewOffset = Default.SmallViewOffset;
|
||||
if ( SmallViewOffset == vect(0,0,0) )
|
||||
SmallViewOffset = Default.PlayerviewOffset;
|
||||
bInitOldMesh = false;
|
||||
if ( Default.SmallEffectOffset == vect(0,0,0) )
|
||||
SmallEffectOffset = EffectOffset + Default.PlayerViewOffset - SmallViewOffset;
|
||||
else
|
||||
SmallEffectOffset = Default.SmallEffectOffset;
|
||||
if ( Mesh == OldMesh )
|
||||
{
|
||||
SmallEffectOffset = EffectOffset + OldPlayerViewOffset - OldSmallViewOffset;
|
||||
PlayerViewPivot = OldPlayerViewPivot;
|
||||
SmallViewOffset = OldSmallViewOffset;
|
||||
if ( Hand != 0 )
|
||||
{
|
||||
PlayerViewPivot.Roll *= Hand;
|
||||
PlayerViewPivot.Yaw *= Hand;
|
||||
}
|
||||
CenteredRoll = OldCenteredRoll;
|
||||
CenteredYaw = OldCenteredYaw;
|
||||
CenteredOffsetY = OldCenteredOffsetY;
|
||||
SetDrawScale(OldDrawScale);
|
||||
}
|
||||
else if ( Hand == 0 )
|
||||
{
|
||||
PlayerViewPivot.Roll = Default.PlayerViewPivot.Roll;
|
||||
PlayerViewPivot.Yaw = Default.PlayerViewPivot.Yaw;
|
||||
}
|
||||
else
|
||||
{
|
||||
PlayerViewPivot.Roll = Default.PlayerViewPivot.Roll * Hand;
|
||||
PlayerViewPivot.Yaw = Default.PlayerViewPivot.Yaw * Hand;
|
||||
}
|
||||
RenderedHand = Hand;
|
||||
}
|
||||
if ( class'PlayerController'.Default.bSmallWeapons )
|
||||
PlayerViewOffset = SmallViewOffset;
|
||||
else if ( Mesh == OldMesh )
|
||||
PlayerViewOffset = OldPlayerViewOffset;
|
||||
else
|
||||
PlayerViewOffset = Default.PlayerViewOffset;
|
||||
if ( Hand == 0 )
|
||||
PlayerViewOffset.Y = CenteredOffsetY;
|
||||
else
|
||||
PlayerViewOffset.Y *= Hand;
|
||||
|
||||
SetLocation( Instigator.Location + Instigator.CalcDrawOffset(self) );
|
||||
if ( Hand == 0 )
|
||||
{
|
||||
CenteredRotation = Instigator.GetViewRotation();
|
||||
CenteredRotation.Yaw += CenteredYaw;
|
||||
CenteredRotation.Roll = CenteredRoll;
|
||||
SetRotation(CenteredRotation);
|
||||
}
|
||||
else
|
||||
SetRotation( Instigator.GetViewRotation() );
|
||||
|
||||
PreDrawFPWeapon(); // Laurent -- Hook to override things before render (like rotation if using a staticmesh)
|
||||
|
||||
bDrawingFirstPerson = true;
|
||||
Canvas.DrawActor(self, false, false, DisplayFOV);
|
||||
bDrawingFirstPerson = false;
|
||||
if ( Hand == 0 )
|
||||
PlayerViewOffset.Y = 0;
|
||||
|
||||
if (GunState == GS_Master && Enforcer2 != None && Enforcer2.ClientState != WS_Hidden)
|
||||
Enforcer2.RenderOverlays(Canvas);
|
||||
}
|
||||
|
||||
simulated function BringUp(optional Weapon PrevWeapon)
|
||||
{
|
||||
local int Mode;
|
||||
|
||||
if ( ClientState == WS_Hidden)
|
||||
{
|
||||
PlayOwnedSound(SelectSound, SLOT_Interact,,,,, false);
|
||||
ClientPlayForceFeedback(SelectForce); // jdf
|
||||
|
||||
if ( Instigator.IsLocallyControlled() )
|
||||
{
|
||||
if ( (Mesh!=None) && HasAnim(SelectAnim) )
|
||||
PlayAnim(SelectAnim, SelectAnimRate, 0.0);
|
||||
}
|
||||
|
||||
ClientState = WS_BringUp;
|
||||
SetTimer(BringUpTime, false);
|
||||
}
|
||||
for (Mode = 0; Mode < NUM_FIRE_MODES; Mode++)
|
||||
{
|
||||
FireMode[Mode].bIsFiring = false;
|
||||
FireMode[Mode].HoldTime = 0.0;
|
||||
FireMode[Mode].bServerDelayStartFire = false;
|
||||
FireMode[Mode].bServerDelayStopFire = false;
|
||||
FireMode[Mode].bInstantStop = false;
|
||||
}
|
||||
if ( (PrevWeapon != None) && PrevWeapon.HasAmmo() && !PrevWeapon.bNoVoluntarySwitch )
|
||||
OldWeapon = PrevWeapon;
|
||||
else
|
||||
OldWeapon = None;
|
||||
|
||||
if (GunState == GS_Master && Enforcer2 != None)
|
||||
Enforcer2.BringUp();
|
||||
if (GunState == GS_Slave)
|
||||
AttachToPawn(Instigator);
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
// Slave should never be accessible to the player.
|
||||
//===========================================================================
|
||||
simulated function Weapon WeaponChange( byte F, bool bSilent )
|
||||
{
|
||||
local Weapon newWeapon;
|
||||
|
||||
if ( InventoryGroup == F )
|
||||
{
|
||||
if ( !HasAmmo() || GunState == GS_Slave)
|
||||
{
|
||||
if ( Inventory == None )
|
||||
newWeapon = None;
|
||||
else
|
||||
newWeapon = Inventory.WeaponChange(F,bSilent);
|
||||
|
||||
if ( !bSilent && (newWeapon == None) && Instigator.IsHumanControlled() )
|
||||
Instigator.ClientMessage( ItemName$MessageNoAmmo );
|
||||
|
||||
return newWeapon;
|
||||
}
|
||||
else
|
||||
return self;
|
||||
}
|
||||
else if ( Inventory == None )
|
||||
return None;
|
||||
else
|
||||
return Inventory.WeaponChange(F,bSilent);
|
||||
}
|
||||
|
||||
simulated function Weapon PrevWeapon(Weapon CurrentChoice, Weapon CurrentWeapon)
|
||||
{
|
||||
if (GunState == GS_Slave)
|
||||
{
|
||||
if ( Inventory == None )
|
||||
return CurrentChoice;
|
||||
else
|
||||
return Inventory.PrevWeapon(CurrentChoice,CurrentWeapon);
|
||||
}
|
||||
|
||||
return Super.PrevWeapon(CurrentChoice, CurrentWeapon);
|
||||
}
|
||||
|
||||
simulated function Weapon NextWeapon(Weapon CurrentChoice, Weapon CurrentWeapon)
|
||||
{
|
||||
if (GunState == GS_Slave)
|
||||
{
|
||||
if ( Inventory == None )
|
||||
return CurrentChoice;
|
||||
else
|
||||
return Inventory.NextWeapon(CurrentChoice,CurrentWeapon);
|
||||
}
|
||||
|
||||
return Super.NextWeapon(CurrentChoice, CurrentWeapon);
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
// DropFrom
|
||||
//
|
||||
// Throw the slave as well.
|
||||
//===========================================================================
|
||||
function DropFrom(vector StartLocation)
|
||||
{
|
||||
local int m;
|
||||
local Pickup Pickup;
|
||||
|
||||
if (!bCanThrow || !HasAmmo())
|
||||
return;
|
||||
|
||||
if (GunState == GS_Master && Enforcer2 != None)
|
||||
Enforcer2.DropFrom(StartLocation + vect(1,1,1));
|
||||
|
||||
ClientWeaponThrown();
|
||||
|
||||
for (m = 0; m < NUM_FIRE_MODES; m++)
|
||||
{
|
||||
if (FireMode[m].bIsFiring)
|
||||
StopFire(m);
|
||||
}
|
||||
|
||||
if ( Instigator != None )
|
||||
{
|
||||
DetachFromPawn(Instigator);
|
||||
}
|
||||
|
||||
Pickup = Spawn(PickupClass,,, StartLocation);
|
||||
if ( Pickup != None )
|
||||
{
|
||||
Pickup.InitDroppedPickupFor(self);
|
||||
Pickup.Velocity = Velocity;
|
||||
if (Instigator.Health > 0)
|
||||
WeaponPickup(Pickup).bThrown = true;
|
||||
}
|
||||
|
||||
Destroy();
|
||||
}
|
||||
|
||||
simulated function bool PutDown()
|
||||
{
|
||||
if (Super.PutDown())
|
||||
{
|
||||
if (GunState == GS_Slave || Enforcer2 == None || Enforcer2.PutDown())
|
||||
{
|
||||
//log("Enforcer"@eval(GunState == GS_Slave, "Slave", "Master")@"PutDown");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
simulated function DetachFromPawn(Pawn P)
|
||||
{
|
||||
if (Enforcer2 != None && GunState != GS_Slave)
|
||||
Enforcer2.DetachFromPawn(P);
|
||||
Super.DetachFromPawn(P);
|
||||
}
|
||||
|
||||
simulated event WeaponTick(float dt)
|
||||
{
|
||||
local int Mode;
|
||||
|
||||
if (GunState == GS_Master && Enforcer2 != None)
|
||||
Enforcer2.WeaponTick(dt);
|
||||
|
||||
if (GunState == GS_Slave)
|
||||
{
|
||||
for (Mode=0; Mode < NUM_FIRE_MODES; Mode++)
|
||||
{
|
||||
if (FireMode[Mode].bIsFiring)
|
||||
{
|
||||
if (FireMode[Mode].NextFireTime <= Level.TimeSeconds)
|
||||
FireMode[Mode].ModeDoFire();
|
||||
if (Instigator.IsLocallyControlled() && Instigator.Controller != None && ((Instigator.Controller.bFire == 0 && Mode == 0) || (Instigator.Controller.bAltFire == 0 && Mode == 1)))
|
||||
ClientStopFire(Mode);
|
||||
}
|
||||
if (FireMode[Mode].NextTimerPop != 0 && FireMode[Mode].NextTimerPop <= Level.TimeSeconds)
|
||||
{
|
||||
FireMode[Mode].Timer();
|
||||
if (FireMode[Mode].bTimerLoop)
|
||||
FireMode[Mode].NextTimerPop = Level.TimeSeconds + FireMode[Mode].TimerInterval;
|
||||
else FireMode[Mode].NextTimerPop = 0.0f;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//// client & server ////
|
||||
simulated function bool StartFire(int Mode)
|
||||
{
|
||||
local int alt;
|
||||
|
||||
if (!ReadyToFire(Mode))
|
||||
return false;
|
||||
|
||||
if (Mode == 0)
|
||||
alt = 1;
|
||||
else
|
||||
alt = 0;
|
||||
|
||||
FireMode[Mode].bIsFiring = true;
|
||||
|
||||
//Stagger firing for slave as old Enforcers did.
|
||||
if (GunState == GS_Slave)
|
||||
FireMode[Mode].NextFireTime = Level.TimeSeconds + FireMode[Mode].PreFireTime + FireMode[Mode].FireRate/2;
|
||||
else
|
||||
FireMode[Mode].NextFireTime = Level.TimeSeconds + FireMode[Mode].PreFireTime;
|
||||
|
||||
if (FireMode[alt].bModeExclusive)
|
||||
{
|
||||
// prevents rapidly alternating fire modes
|
||||
FireMode[Mode].NextFireTime = FMax(FireMode[Mode].NextFireTime, FireMode[alt].NextFireTime);
|
||||
}
|
||||
|
||||
if (Instigator.IsLocallyControlled())
|
||||
{
|
||||
if (FireMode[Mode].PreFireTime > 0.0 || FireMode[Mode].bFireOnRelease)
|
||||
{
|
||||
FireMode[Mode].PlayPreFire();
|
||||
}
|
||||
FireMode[Mode].FireCount = 0;
|
||||
}
|
||||
|
||||
if (GunState == GS_Master && Enforcer2 != None)
|
||||
Enforcer2.StartFire(Mode);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
simulated event StopFire(int Mode)
|
||||
{
|
||||
Super.StopFire(Mode);
|
||||
if (GunState == GS_Master && Enforcer2 != None)
|
||||
Enforcer2.StopFire(Mode);
|
||||
}
|
||||
|
||||
//hack to stop all firing and release any charging firemodes RIGHT THIS INSTANT
|
||||
//used when getting into vehicles
|
||||
simulated function ImmediateStopFire()
|
||||
{
|
||||
Super.ImmediateStopFire();
|
||||
|
||||
if (GunState == GS_Master && Enforcer2 != None)
|
||||
Enforcer2.ImmediateStopFire();
|
||||
}
|
||||
|
||||
function GiveTo(Pawn Other, optional Pickup Pickup)
|
||||
{
|
||||
local int m;
|
||||
local weapon w;
|
||||
local bool bPossiblySwitch, bJustSpawned;
|
||||
|
||||
Instigator = Other;
|
||||
W = Weapon(Instigator.FindInventoryType(class));
|
||||
if ( W == None || W.Class != Class || UT2341Enforcer(W).Enforcer2 == None) // added class check because somebody made FindInventoryType() return subclasses for some reason
|
||||
{
|
||||
bJustSpawned = true;
|
||||
Super(Inventory).GiveTo(Other);
|
||||
bPossiblySwitch = true;
|
||||
if (W != None && UT2341Enforcer(W).Enforcer2 == None)
|
||||
{
|
||||
UT2341Enforcer(W).Enforcer2 = self;
|
||||
Enforcer2 = UT2341Enforcer(W);
|
||||
W.ItemName = "Double Enforcers";
|
||||
GunState = GS_Slave;
|
||||
bPossiblySwitch=False; //Never allow a slave to trigger an autoswitch
|
||||
UT2341Enforcer(W).GunState = GS_Master;
|
||||
}
|
||||
W = self;
|
||||
}
|
||||
|
||||
else if ( !W.HasAmmo() )
|
||||
bPossiblySwitch = true;
|
||||
if ( Pickup == None && GunState != GS_Slave)
|
||||
bPossiblySwitch = true;
|
||||
|
||||
for (m = 0; m < NUM_FIRE_MODES; m++)
|
||||
{
|
||||
if ( FireMode[m] != None )
|
||||
{
|
||||
FireMode[m].Instigator = Instigator;
|
||||
W.GiveAmmo(m,WeaponPickup(Pickup),(bJustSpawned && GunState != GS_Slave));
|
||||
}
|
||||
}
|
||||
|
||||
if ( Instigator.Weapon != W)
|
||||
W.ClientWeaponSet(bPossiblySwitch);
|
||||
|
||||
if ( !bJustSpawned )
|
||||
{
|
||||
for (m = 0; m < NUM_FIRE_MODES; m++)
|
||||
Ammo[m] = None;
|
||||
Destroy();
|
||||
}
|
||||
|
||||
if (W == self && GunState == GS_Slave && Instigator.Weapon == Enforcer2 && Instigator.PendingWeapon == None)
|
||||
BringUp();
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
// GiveAmmo
|
||||
//
|
||||
// Enforcers should start with 30, not the amount defined in the base ammo, which is for the Mini
|
||||
//===========================================================================
|
||||
function GiveAmmo(int m, WeaponPickup WP, bool bJustSpawned)
|
||||
{
|
||||
local bool bJustSpawnedAmmo;
|
||||
local int addAmount, InitialAmount;
|
||||
|
||||
if ( FireMode[m] != None && FireMode[m].AmmoClass != None )
|
||||
{
|
||||
Ammo[m] = Ammunition(Instigator.FindInventoryType(FireMode[m].AmmoClass));
|
||||
bJustSpawnedAmmo = false;
|
||||
|
||||
if ( bNoAmmoInstances )
|
||||
{
|
||||
if ( (FireMode[m].AmmoClass == None) || ((m != 0) && (FireMode[m].AmmoClass == FireMode[0].AmmoClass)) )
|
||||
return;
|
||||
|
||||
InitialAmount = FireMode[m].AmmoClass.Default.InitialAmount;
|
||||
if ( (WP != None) && ((WP.AmmoAmount[0] > 0) || (WP.AmmoAmount[1] > 0)) )
|
||||
{
|
||||
InitialAmount = WP.AmmoAmount[m];
|
||||
}
|
||||
|
||||
InitialAmount *= 0.3;
|
||||
|
||||
if ( Ammo[m] != None )
|
||||
{
|
||||
addamount = InitialAmount + Ammo[m].AmmoAmount;
|
||||
Ammo[m].Destroy();
|
||||
}
|
||||
else
|
||||
addAmount = InitialAmount;
|
||||
|
||||
AddAmmo(addAmount,m);
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( (Ammo[m] == None) && (FireMode[m].AmmoClass != None) )
|
||||
{
|
||||
Ammo[m] = Spawn(FireMode[m].AmmoClass, Instigator);
|
||||
Instigator.AddInventory(Ammo[m]);
|
||||
bJustSpawnedAmmo = true;
|
||||
}
|
||||
else if ( (m == 0) || (FireMode[m].AmmoClass != FireMode[0].AmmoClass) )
|
||||
bJustSpawnedAmmo = ( bJustSpawned || ((WP != None) && !WP.bWeaponStay) );
|
||||
|
||||
if ( (WP != None) && ((WP.AmmoAmount[0] > 0) || (WP.AmmoAmount[1] > 0)) )
|
||||
{
|
||||
addAmount = WP.AmmoAmount[m];
|
||||
}
|
||||
else if ( bJustSpawnedAmmo )
|
||||
{
|
||||
addAmount = Ammo[m].InitialAmount * 0.3;
|
||||
}
|
||||
|
||||
Ammo[m].AddAmmo(addAmount);
|
||||
Ammo[m].GotoState('');
|
||||
}
|
||||
}
|
||||
}
|
||||
function bool HandlePickupQuery( pickup Item )
|
||||
{
|
||||
local int i;
|
||||
|
||||
if ( bNoAmmoInstances )
|
||||
{
|
||||
// handle ammo pickups
|
||||
for ( i=0; i<2; i++ )
|
||||
{
|
||||
if ( (item.inventorytype == AmmoClass[i]) && (AmmoClass[i] != None) )
|
||||
{
|
||||
if ( AmmoCharge[i] >= MaxAmmo(i) )
|
||||
return true;
|
||||
item.AnnouncePickup(Pawn(Owner));
|
||||
AddAmmo(Ammo(item).AmmoAmount, i);
|
||||
item.SetRespawn();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (class == Item.InventoryType)
|
||||
{
|
||||
if(WeaponPickup(Item) != None && !WeaponPickup(Item).AllowRepeatPickup())
|
||||
return true;
|
||||
//if (Enforcer2 == None)
|
||||
return false;
|
||||
//return true;
|
||||
}
|
||||
|
||||
if ( Inventory == None )
|
||||
return false;
|
||||
|
||||
return Inventory.HandlePickupQuery(Item);
|
||||
}
|
||||
|
||||
simulated function DisplayDebug(Canvas Canvas, out float YL, out float YPos)
|
||||
{
|
||||
super.DisplayDebug(Canvas, YL, YPos);
|
||||
|
||||
if (GunState == GS_Master)
|
||||
Enforcer2.DisplayDebug(Canvas, YL, YPos);
|
||||
}
|
||||
|
||||
function byte BestMode()
|
||||
{
|
||||
local Bot B;
|
||||
|
||||
B = Bot(Instigator.Controller);
|
||||
if ( (B != None) && (B.Enemy != None) )
|
||||
{
|
||||
if ( VSize(B.Location - B.Enemy.Location) < 1024 )
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
function float GetAIRating()
|
||||
{
|
||||
local Bot B;
|
||||
|
||||
if ( Enforcer2 == None )
|
||||
return AIRating;
|
||||
|
||||
B = Bot(Instigator.Controller);
|
||||
if ( B == None )
|
||||
return AIRating;
|
||||
|
||||
if ( B.Enemy == None )
|
||||
return AIRating;
|
||||
|
||||
return (AIRating + 0.0003 * FClamp(1500 - VSize(B.Enemy.Location - Instigator.Location),0,1000));
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
FireModeClass(0)=Class'UT2341WeaponsReducedv1a.UT2341EnforcerFire'
|
||||
FireModeClass(1)=Class'UT2341WeaponsReducedv1a.UT2341EnforcerAltFire'
|
||||
PutDownAnim="PutDown"
|
||||
SelectSound=Sound'UT2341Weapons_Sounds.Enforcer.Cocking'
|
||||
SelectForce="SwitchToMiniGun"
|
||||
AIRating=0.400000
|
||||
CurrentRating=0.400000
|
||||
bNoAmmoInstances=False
|
||||
Description="Classification: Light PistolnnPrimary Fire: Accurate but slow firing instant hit.nnSecondary Fire: Sideways, or 'Gangsta' firing mode, shoots faster and less accurately than the primary fire.nnTechniques: Collect two for twice the damage."
|
||||
EffectOffset=(X=100.000000,Y=30.000000,Z=-16.000000)
|
||||
Priority=9
|
||||
HudColor=(B=255)
|
||||
SmallViewOffset=(X=-2.000000,Z=-13.000000)
|
||||
CenteredOffsetY=-6.000000
|
||||
CenteredRoll=0
|
||||
CenteredYaw=-500
|
||||
CustomCrosshair=12
|
||||
CustomCrossHairTextureName="Crosshairs.Hud.Crosshair_Circle1"
|
||||
InventoryGroup=2
|
||||
PickupClass=Class'UT2341WeaponsReducedv1a.UT2341EnforcerPickup'
|
||||
PlayerViewOffset=(X=-2.000000,Z=-13.000000)
|
||||
BobDamping=2.250000
|
||||
AttachmentClass=Class'UT2341WeaponsReducedv1a.UT2341EnforcerAttachment'
|
||||
IconMaterial=Texture'UT2341Weapons_Tex.Icons.Icon_Enforcer'
|
||||
IconCoords=(X2=128,Y2=32)
|
||||
ItemName="Enforcer"
|
||||
LightType=LT_Pulse
|
||||
LightEffect=LE_NonIncidence
|
||||
LightHue=30
|
||||
LightSaturation=150
|
||||
LightBrightness=255.000000
|
||||
LightRadius=5.000000
|
||||
LightPeriod=3
|
||||
Mesh=SkeletalMesh'UT2341Weapons_Anims.UTEnforcer_FP'
|
||||
DrawScale=2.000000
|
||||
SoundRadius=400.000000
|
||||
}
|
||||
169
Sources/Classes/UT2341EnforcerAltFire.uc
Normal file
169
Sources/Classes/UT2341EnforcerAltFire.uc
Normal file
@@ -0,0 +1,169 @@
|
||||
/*************************************************************
|
||||
*
|
||||
*
|
||||
*
|
||||
*************************************************************/
|
||||
class UT2341EnforcerAltFire extends InstantFire;
|
||||
|
||||
var() class<Emitter> NewFlashClass;
|
||||
var Emitter NewFlashEmitter;
|
||||
|
||||
function InitEffects()
|
||||
{
|
||||
// don't even spawn on server
|
||||
if ( (Level.NetMode == NM_DedicatedServer) || (AIController(Instigator.Controller) != None) )
|
||||
return;
|
||||
if ( (NewFlashClass != None) && ((NewFlashEmitter == None) || NewFlashEmitter.bDeleteMe) )
|
||||
{
|
||||
NewFlashEmitter = Weapon.Spawn(NewFlashClass);
|
||||
Weapon.AttachToBone(NewFlashEmitter, 'tip');
|
||||
}
|
||||
if ( (SmokeEmitterClass != None) && ((SmokeEmitter == None) || SmokeEmitter.bDeleteMe) )
|
||||
{
|
||||
SmokeEmitter = Weapon.Spawn(SmokeEmitterClass);
|
||||
}
|
||||
}
|
||||
|
||||
function DrawMuzzleFlash(Canvas Canvas)
|
||||
{
|
||||
// Draw smoke first
|
||||
if (SmokeEmitter != None && SmokeEmitter.Base != Weapon)
|
||||
{
|
||||
SmokeEmitter.SetLocation( Weapon.GetEffectStart() );
|
||||
Canvas.DrawActor( SmokeEmitter, false, false, Weapon.DisplayFOV );
|
||||
}
|
||||
|
||||
if (NewFlashEmitter != None && NewFlashEmitter.Base != Weapon)
|
||||
{
|
||||
NewFlashEmitter.SetLocation( Weapon.GetEffectStart() );
|
||||
Canvas.DrawActor( NewFlashEmitter, false, false, Weapon.DisplayFOV );
|
||||
}
|
||||
}
|
||||
|
||||
function FlashMuzzleFlash()
|
||||
{
|
||||
local rotator r;
|
||||
|
||||
r.Roll = Rand(65535);
|
||||
Weapon.SetBoneRotation('Bone_Flash', r, 0, 1.f);
|
||||
if (NewFlashEmitter != None)
|
||||
NewFlashEmitter.Trigger(Weapon, Instigator);
|
||||
}
|
||||
|
||||
simulated function DestroyEffects()
|
||||
{
|
||||
if (NewFlashEmitter != None)
|
||||
NewFlashEmitter.Destroy();
|
||||
|
||||
if (SmokeEmitter != None)
|
||||
SmokeEmitter.Destroy();
|
||||
}
|
||||
|
||||
function DoFireEffect()
|
||||
{
|
||||
local Vector StartTrace;
|
||||
local Rotator R, Aim;
|
||||
local Vector X,Y,Z;
|
||||
|
||||
Instigator.MakeNoise(1.0);
|
||||
|
||||
StartTrace = Instigator.Location + Instigator.EyePosition();
|
||||
|
||||
Aim = AdjustAim(StartTrace, AimError);
|
||||
Weapon.GetViewAxes(X, Y, Z);
|
||||
|
||||
Spread = FMin(default.Spread + (0.05 * FireCount), 0.3);
|
||||
if (UT2341Enforcer(Weapon).GunState != GS_Single)
|
||||
Spread = FClamp(3 * Spread, 0.075, 0.3);
|
||||
|
||||
R = rotator(Vector(Aim) + (Spread * (FRand() -0.5) * Y) + (Spread * (FRand() -0.5) * Z));
|
||||
DoTrace(StartTrace, R);
|
||||
}
|
||||
|
||||
function PlayFireEnd()
|
||||
{
|
||||
//no pls
|
||||
}
|
||||
|
||||
function DoTrace(Vector Start, Rotator Dir)
|
||||
{
|
||||
local Vector X,Y,Z, End, HitLocation, HitNormal;
|
||||
local Actor Other;
|
||||
local SniperWallHitEffect S;
|
||||
|
||||
Weapon.GetViewAxes(X, Y, Z);
|
||||
|
||||
X = Vector(Dir);
|
||||
End = Start + TraceRange * X;
|
||||
|
||||
Other = Weapon.Trace(HitLocation, HitNormal, End, Start, true);
|
||||
|
||||
if ( Other != None && (Other != Instigator) )
|
||||
{
|
||||
if ( !Other.bWorldGeometry && Other.bCanBeDamaged )
|
||||
Other.TakeDamage(DamageMax, Instigator, HitLocation, Momentum*X, DamageType);
|
||||
else
|
||||
HitLocation = HitLocation + 2.0 * HitNormal;
|
||||
}
|
||||
else
|
||||
{
|
||||
HitLocation = End;
|
||||
HitNormal = Normal(Start - End);
|
||||
}
|
||||
|
||||
if ( (HitNormal != Vect(0,0,0)) && (HitScanBlockingVolume(Other) == None) )
|
||||
{
|
||||
S = Weapon.Spawn(class'SniperWallHitEffect',,, HitLocation, rotator(-1 * HitNormal));
|
||||
if ( S != None )
|
||||
S.FireStart = Start;
|
||||
}
|
||||
}
|
||||
|
||||
function PlayFiring()
|
||||
{
|
||||
Super.PlayFiring();
|
||||
|
||||
if (Weapon.Role == ROLE_Authority)
|
||||
{
|
||||
Spread = FMin(default.Spread + (0.05 * FireCount), 0.3);
|
||||
|
||||
if (UT2341Enforcer(Weapon).GunState != GS_Single)
|
||||
Spread = FClamp(3 * Spread, 0.075, 0.3);
|
||||
}
|
||||
UT2341Enforcer(Weapon).SpawnShell();
|
||||
}
|
||||
|
||||
function ServerPlayFiring()
|
||||
{
|
||||
FireCount++;
|
||||
}
|
||||
|
||||
function StopFiring()
|
||||
{
|
||||
Spread = default.Spread;
|
||||
FireCount = 0;
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
NewFlashClass=Class'UT2341WeaponsReducedv1a.FX_EnforcerMuzFlash'
|
||||
DamageType=Class'UT2341WeaponsReducedv1a.DamType_Enforcer'
|
||||
DamageMin=25
|
||||
DamageMax=25
|
||||
PreFireTime=0.200000
|
||||
PreFireAnim="PreAlt"
|
||||
FireAnim="FireAlt"
|
||||
FireEndAnim="AltEnd"
|
||||
PreFireAnimRate=2.000000
|
||||
FireAnimRate=2.000000
|
||||
FireEndAnimRate=2.000000
|
||||
FireSound=Sound'UT2341Weapons_Sounds.Enforcer.Shot'
|
||||
FireRate=0.290000
|
||||
AmmoClass=Class'UT2341WeaponsReducedv1a.UT2341MinigunAmmo'
|
||||
AmmoPerFire=1
|
||||
BotRefireRate=0.400000
|
||||
WarnTargetPct=0.500000
|
||||
aimerror=850.000000
|
||||
Spread=0.040000
|
||||
SpreadStyle=SS_Random
|
||||
}
|
||||
112
Sources/Classes/UT2341EnforcerAttachment.uc
Normal file
112
Sources/Classes/UT2341EnforcerAttachment.uc
Normal file
@@ -0,0 +1,112 @@
|
||||
class UT2341EnforcerAttachment extends xWeaponAttachment;
|
||||
|
||||
var Emitter mMuzFlash3rd;
|
||||
|
||||
var bool bDualGun;
|
||||
var UT2341EnforcerAttachment Enforcer2Attachment;
|
||||
var float AimAlpha;
|
||||
|
||||
replication
|
||||
{
|
||||
reliable if ( Role == ROLE_Authority )
|
||||
bDualGun, Enforcer2Attachment;
|
||||
}
|
||||
|
||||
simulated function Hide(bool NewbHidden)
|
||||
{
|
||||
bHidden = NewbHidden;
|
||||
if ( Enforcer2Attachment != None )
|
||||
Enforcer2Attachment.bHidden = bHidden;
|
||||
}
|
||||
|
||||
simulated function Tick(float deltatime)
|
||||
{
|
||||
local rotator newRot;
|
||||
|
||||
if ( !bDualGun || (Level.NetMode == NM_DedicatedServer) )
|
||||
{
|
||||
Disable('Tick');
|
||||
return;
|
||||
}
|
||||
|
||||
AimAlpha = AimAlpha * ( 1 - 2*DeltaTime);
|
||||
|
||||
// point in firing direction
|
||||
if ( Instigator != None )
|
||||
{
|
||||
newRot = Instigator.Rotation;
|
||||
if ( AimAlpha < 0.5 )
|
||||
newRot.Yaw += 4500 * (1 - 2*AimAlpha);
|
||||
Instigator.SetBoneDirection('lfarm', newRot,, 1.0, 1);
|
||||
|
||||
newRot.Roll += 32768;
|
||||
Instigator.SetBoneDirection(AttachmentBone, newRot,, 1.0, 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
simulated function Destroyed()
|
||||
{
|
||||
if ( bDualGun )
|
||||
{
|
||||
if ( Instigator != None )
|
||||
{
|
||||
Instigator.SetBoneDirection(AttachmentBone, Rotation,, 0, 0);
|
||||
Instigator.SetBoneDirection('lfarm', Rotation,, 0, 0);
|
||||
}
|
||||
}
|
||||
if (mMuzFlash3rd != None)
|
||||
mMuzFlash3rd.Destroy();
|
||||
Super.Destroyed();
|
||||
}
|
||||
|
||||
simulated function SetOverlayMaterial( Material mat, float time, bool bOverride )
|
||||
{
|
||||
Super.SetOverlayMaterial(mat, time, bOverride);
|
||||
if ( !bDualGun && (Enforcer2Attachment != None) )
|
||||
Enforcer2Attachment.SetOverlayMaterial(mat, time, bOverride);
|
||||
}
|
||||
|
||||
simulated event ThirdPersonEffects()
|
||||
{
|
||||
if ( (FlashCount != 0) && (Level.NetMode != NM_DedicatedServer) )
|
||||
{
|
||||
if (FiringMode == 0)
|
||||
WeaponLight();
|
||||
|
||||
if ( Level.TimeSeconds - Instigator.LastRenderTime < 0.2 )
|
||||
{
|
||||
if (mMuzFlash3rd == None)
|
||||
{
|
||||
mMuzFlash3rd = Spawn(class'FX_EnforcerMuzFlash');
|
||||
AttachToBone(mMuzFlash3rd, 'tip');
|
||||
}
|
||||
if (mMuzFlash3rd != None)
|
||||
mMuzFlash3rd.Trigger(Self, None);
|
||||
}
|
||||
}
|
||||
|
||||
Super.ThirdPersonEffects();
|
||||
}
|
||||
|
||||
simulated function Vector GetTipLocation()
|
||||
{
|
||||
local Coords C;
|
||||
|
||||
C = GetBoneCoords('tip');
|
||||
return C.Origin;
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
LightType=LT_Steady
|
||||
LightEffect=LE_NonIncidence
|
||||
LightHue=30
|
||||
LightSaturation=224
|
||||
LightBrightness=255.000000
|
||||
LightRadius=5.000000
|
||||
LightPeriod=3
|
||||
Mesh=SkeletalMesh'UT2341Weapons_Anims.UTEnforcer3rd'
|
||||
RelativeLocation=(X=3.000000,Z=3.000000)
|
||||
DrawScale=0.120000
|
||||
}
|
||||
143
Sources/Classes/UT2341EnforcerFire.uc
Normal file
143
Sources/Classes/UT2341EnforcerFire.uc
Normal file
@@ -0,0 +1,143 @@
|
||||
/*************************************************************
|
||||
*
|
||||
*
|
||||
*
|
||||
*************************************************************/
|
||||
class UT2341EnforcerFire extends InstantFire;
|
||||
|
||||
var() class<Emitter> NewFlashClass;
|
||||
var Emitter NewFlashEmitter;
|
||||
|
||||
function InitEffects()
|
||||
{
|
||||
// don't even spawn on server
|
||||
if ( (Level.NetMode == NM_DedicatedServer) || (AIController(Instigator.Controller) != None) )
|
||||
return;
|
||||
if ( (NewFlashClass != None) && ((NewFlashEmitter == None) || NewFlashEmitter.bDeleteMe) )
|
||||
{
|
||||
NewFlashEmitter = Weapon.Spawn(NewFlashClass);
|
||||
Weapon.AttachToBone(NewFlashEmitter, 'tip');
|
||||
}
|
||||
if ( (SmokeEmitterClass != None) && ((SmokeEmitter == None) || SmokeEmitter.bDeleteMe) )
|
||||
{
|
||||
SmokeEmitter = Weapon.Spawn(SmokeEmitterClass);
|
||||
}
|
||||
}
|
||||
|
||||
function DrawMuzzleFlash(Canvas Canvas)
|
||||
{
|
||||
// Draw smoke first
|
||||
if (SmokeEmitter != None && SmokeEmitter.Base != Weapon)
|
||||
{
|
||||
SmokeEmitter.SetLocation( Weapon.GetEffectStart() );
|
||||
Canvas.DrawActor( SmokeEmitter, false, false, Weapon.DisplayFOV );
|
||||
}
|
||||
|
||||
if (NewFlashEmitter != None && NewFlashEmitter.Base != Weapon)
|
||||
{
|
||||
NewFlashEmitter.SetLocation( Weapon.GetEffectStart() );
|
||||
Canvas.DrawActor( NewFlashEmitter, false, false, Weapon.DisplayFOV );
|
||||
}
|
||||
}
|
||||
|
||||
function FlashMuzzleFlash()
|
||||
{
|
||||
local rotator r;
|
||||
|
||||
r.Roll = Rand(65535);
|
||||
Weapon.SetBoneRotation('Bone_Flash', r, 0, 1.f);
|
||||
if (NewFlashEmitter != None)
|
||||
NewFlashEmitter.Trigger(Weapon, Instigator);
|
||||
}
|
||||
|
||||
function DoFireEffect()
|
||||
{
|
||||
local Vector StartTrace;
|
||||
local Rotator R, Aim;
|
||||
local Vector X,Y,Z;
|
||||
|
||||
Instigator.MakeNoise(1.0);
|
||||
|
||||
StartTrace = Instigator.Location + Instigator.EyePosition();
|
||||
|
||||
Aim = AdjustAim(StartTrace, AimError);
|
||||
Weapon.GetViewAxes(X, Y, Z);
|
||||
//R = rotator(vector(Aim) + VRand()*FRand()*Spread);
|
||||
//UT99 Enforcer spread implementation - Spread == UT99's Accuracy value/10
|
||||
if (UT2341Enforcer(Weapon).GunState != GS_Single)
|
||||
Spread = 0.075;
|
||||
R = rotator(Vector(Aim) + (Spread * (FRand() -0.5) * Y) + (Spread * (FRand() -0.5) * Z));
|
||||
DoTrace(StartTrace, R);
|
||||
}
|
||||
|
||||
simulated function DestroyEffects()
|
||||
{
|
||||
if (NewFlashEmitter != None)
|
||||
NewFlashEmitter.Destroy();
|
||||
|
||||
if (SmokeEmitter != None)
|
||||
SmokeEmitter.Destroy();
|
||||
}
|
||||
|
||||
function DoTrace(Vector Start, Rotator Dir)
|
||||
{
|
||||
local Vector X,Y,Z, End, HitLocation, HitNormal;
|
||||
local Actor Other;
|
||||
local SniperWallHitEffect S;
|
||||
|
||||
Weapon.GetViewAxes(X, Y, Z);
|
||||
|
||||
X = Vector(Dir);
|
||||
End = Start + TraceRange * X;
|
||||
Other = Weapon.Trace(HitLocation, HitNormal, End, Start, true);
|
||||
|
||||
if ( Other != None && (Other != Instigator) )
|
||||
{
|
||||
if ( !Other.bWorldGeometry && Other.bCanBeDamaged )
|
||||
Other.TakeDamage(DamageMax, Instigator, HitLocation, Momentum*X, DamageType);
|
||||
else
|
||||
HitLocation = HitLocation + 2.0 * HitNormal;
|
||||
}
|
||||
else
|
||||
{
|
||||
HitLocation = End;
|
||||
HitNormal = Normal(Start - End);
|
||||
}
|
||||
|
||||
if ( (HitNormal != Vect(0,0,0)) && (HitScanBlockingVolume(Other) == None) )
|
||||
{
|
||||
S = Weapon.Spawn(class'SniperWallHitEffect',,, HitLocation, rotator(-1 * HitNormal));
|
||||
if ( S != None )
|
||||
S.FireStart = Start;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function PlayFiring()
|
||||
{
|
||||
Super.PlayFiring();
|
||||
|
||||
UT2341Enforcer(Weapon).SpawnShell();
|
||||
}
|
||||
|
||||
function StopFiring()
|
||||
{
|
||||
Spread = default.Spread;
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
NewFlashClass=Class'UT2341WeaponsReducedv1a.FX_EnforcerMuzFlash'
|
||||
DamageType=Class'UT2341WeaponsReducedv1a.DamType_Enforcer'
|
||||
DamageMin=25
|
||||
DamageMax=25
|
||||
FireSound=Sound'UT2341Weapons_Sounds.Enforcer.Shot'
|
||||
FireRate=0.400000
|
||||
AmmoClass=Class'UT2341WeaponsReducedv1a.UT2341MinigunAmmo'
|
||||
AmmoPerFire=1
|
||||
BotRefireRate=0.400000
|
||||
WarnTargetPct=0.500000
|
||||
aimerror=850.000000
|
||||
Spread=0.020000
|
||||
SpreadStyle=SS_Random
|
||||
}
|
||||
35
Sources/Classes/UT2341EnforcerPickup.uc
Normal file
35
Sources/Classes/UT2341EnforcerPickup.uc
Normal file
@@ -0,0 +1,35 @@
|
||||
//=============================================================================
|
||||
// Minigun.
|
||||
//=============================================================================
|
||||
class UT2341EnforcerPickup extends UTWeaponPickup;
|
||||
|
||||
static function StaticPrecache(LevelInfo L)
|
||||
{
|
||||
L.AddPrecacheMaterial(Texture'XEffects.ShellCasingTex');
|
||||
L.AddPrecacheMaterial(Texture'AW-2004Explosions.Part_explode2s');
|
||||
L.AddPrecacheMaterial(Texture'AW-2004Particles.TracerShot');
|
||||
L.AddPrecacheStaticMesh(StaticMesh'UT2341Weapons_SM.UTMinigun');
|
||||
}
|
||||
|
||||
simulated function UpdatePrecacheMaterials()
|
||||
{
|
||||
Level.AddPrecacheMaterial(Texture'XEffects.ShellCasingTex');
|
||||
Level.AddPrecacheMaterial(Texture'AW-2004Explosions.Part_explode2s');
|
||||
Level.AddPrecacheMaterial(Texture'AW-2004Particles.TracerShot');
|
||||
|
||||
super.UpdatePrecacheMaterials();
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
MaxDesireability=0.730000
|
||||
InventoryType=Class'UT2341WeaponsReducedv1a.UT2341Enforcer'
|
||||
PickupMessage="You got an Enforcer."
|
||||
PickupSound=Sound'UT2341Weapons_Sounds.General.WeaponPickup'
|
||||
PickupForce="MinigunPickup"
|
||||
DrawType=DT_StaticMesh
|
||||
StaticMesh=StaticMesh'UT2341Weapons_SM.General.UTEnforcer'
|
||||
DrawScale=0.220000
|
||||
AmbientGlow=64
|
||||
RotationRate=(Yaw=5000)
|
||||
}
|
||||
31
Sources/Classes/UT2341FlakAltFire.uc
Normal file
31
Sources/Classes/UT2341FlakAltFire.uc
Normal file
@@ -0,0 +1,31 @@
|
||||
class UT2341FlakAltFire extends ProjectileFire;
|
||||
|
||||
function InitEffects()
|
||||
{
|
||||
Super.InitEffects();
|
||||
if ( FlashEmitter == None )
|
||||
FlashEmitter = Weapon.GetFireMode(0).FlashEmitter;
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
ProjSpawnOffset=(X=25.000000,Y=9.000000,Z=-12.000000)
|
||||
bSplashDamage=True
|
||||
bRecommendSplashDamage=True
|
||||
bTossed=True
|
||||
FireAnim="FireAltLoad"
|
||||
FireEndAnim=
|
||||
FireAnimRate=0.900000
|
||||
FireSound=Sound'UT2341Weapons_Sounds.flak.Explode1'
|
||||
FireForce="FlakCannonAltFire"
|
||||
FireRate=1.000000
|
||||
AmmoClass=Class'UT2341WeaponsReducedv1a.UT2341FlakAmmo'
|
||||
AmmoPerFire=1
|
||||
ShakeRotTime=2.000000
|
||||
ShakeOffsetMag=(X=-20.000000)
|
||||
ShakeOffsetRate=(X=-1000.000000)
|
||||
ShakeOffsetTime=2.000000
|
||||
ProjectileClass=Class'UT2341WeaponsReducedv1a.UT2341FlakShell'
|
||||
BotRefireRate=0.500000
|
||||
WarnTargetPct=0.900000
|
||||
}
|
||||
12
Sources/Classes/UT2341FlakAmmo.uc
Normal file
12
Sources/Classes/UT2341FlakAmmo.uc
Normal file
@@ -0,0 +1,12 @@
|
||||
class UT2341FlakAmmo extends Ammunition;
|
||||
|
||||
#EXEC OBJ LOAD FILE=InterfaceContent.utx
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
MaxAmmo=50
|
||||
PickupClass=Class'UT2341WeaponsReducedv1a.UT2341FlakAmmoPickup'
|
||||
IconMaterial=Texture'HUDContent.Generic.HUD'
|
||||
IconCoords=(X1=394,Y1=40,X2=457,Y2=81)
|
||||
ItemName="Flak Shells"
|
||||
}
|
||||
22
Sources/Classes/UT2341FlakAmmoPickup.uc
Normal file
22
Sources/Classes/UT2341FlakAmmoPickup.uc
Normal file
@@ -0,0 +1,22 @@
|
||||
class UT2341FlakAmmoPickup extends UTAmmoPickup;
|
||||
|
||||
function RespawnEffect()
|
||||
{
|
||||
spawn(class'FX_PickupRespawn');
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
AmmoAmount=10
|
||||
MaxDesireability=0.320000
|
||||
InventoryType=Class'UT2341WeaponsReducedv1a.UT2341FlakAmmo'
|
||||
PickupMessage="You picked up 10 Flak Shells."
|
||||
PickupSound=Sound'UT2341Weapons_Sounds.General.AmmoSnd'
|
||||
PickupForce="FlakAmmoPickup"
|
||||
DrawType=DT_StaticMesh
|
||||
StaticMesh=StaticMesh'UT2341Weapons_SM.General.UTFlakAmmo'
|
||||
DrawScale=0.250000
|
||||
PrePivot=(Z=40.000000)
|
||||
AmbientGlow=48
|
||||
CollisionHeight=8.250000
|
||||
}
|
||||
64
Sources/Classes/UT2341FlakAttachment.uc
Normal file
64
Sources/Classes/UT2341FlakAttachment.uc
Normal file
@@ -0,0 +1,64 @@
|
||||
class UT2341FlakAttachment extends xWeaponAttachment;
|
||||
|
||||
var class<FlakMuzFlash3rd> mMuzFlashClass;
|
||||
var xEmitter mMuzFlash3rd;
|
||||
|
||||
simulated function PostNetBeginPlay()
|
||||
{
|
||||
Super.PostNetBeginPlay();
|
||||
PlayAnim('Select', 1.35);
|
||||
}
|
||||
|
||||
simulated function Destroyed()
|
||||
{
|
||||
if (mMuzFlash3rd != None)
|
||||
mMuzFlash3rd.Destroy();
|
||||
Super.Destroyed();
|
||||
}
|
||||
|
||||
simulated event ThirdPersonEffects()
|
||||
{
|
||||
local rotator r;
|
||||
|
||||
if ( Level.NetMode != NM_DedicatedServer && FlashCount > 0 )
|
||||
{
|
||||
WeaponLight();
|
||||
if (mMuzFlash3rd == None)
|
||||
{
|
||||
mMuzFlash3rd = Spawn(mMuzFlashClass);
|
||||
AttachToBone(mMuzFlash3rd, 'tip');
|
||||
}
|
||||
if (mMuzFlash3rd != None)
|
||||
{
|
||||
r.Roll = Rand(65536);
|
||||
SetBoneRotation('Bone_Flash', r, 0, 1.f);
|
||||
mMuzFlash3rd.mStartParticles++;
|
||||
}
|
||||
}
|
||||
|
||||
if (FiringMode == 0)
|
||||
PlayAnim('FireLoad',1.35);
|
||||
else PlayAnim('FireAltLoad',1.25);
|
||||
|
||||
Super.ThirdPersonEffects();
|
||||
}
|
||||
|
||||
simulated function Notify_AttachmentLoad()
|
||||
{
|
||||
if (Level.NetMode != NM_DedicatedServer && !Instigator.IsLocallyControlled())
|
||||
PlaySound(Sound'UT2341Weapons_Sounds.Flak.load1', SLOT_None,0.65,,,,false);
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
mMuzFlashClass=Class'XEffects.FlakMuzFlash3rd'
|
||||
bHeavy=True
|
||||
LightType=LT_Steady
|
||||
LightEffect=LE_NonIncidence
|
||||
LightHue=30
|
||||
LightSaturation=150
|
||||
LightBrightness=255.000000
|
||||
LightRadius=4.000000
|
||||
Mesh=SkeletalMesh'UT2341Weapons_Anims.UTFlakCannon3rd'
|
||||
DrawScale=0.100000
|
||||
}
|
||||
142
Sources/Classes/UT2341FlakCannon.uc
Normal file
142
Sources/Classes/UT2341FlakCannon.uc
Normal file
@@ -0,0 +1,142 @@
|
||||
//=============================================================================
|
||||
// Flak Cannon
|
||||
//=============================================================================
|
||||
class UT2341FlakCannon extends Weapon
|
||||
config(user);
|
||||
|
||||
#EXEC OBJ LOAD FILE=InterfaceContent.utx
|
||||
|
||||
simulated function Notify_Hydraulic()
|
||||
{
|
||||
if (Instigator.IsLocallyControlled())
|
||||
PlaySound(Sound'UT2341Weapons_Sounds.Flak.load1', SLOT_None,0.65,,,,false);
|
||||
}
|
||||
|
||||
simulated function Notify_HydraulicSelect()
|
||||
{
|
||||
PlayOwnedSound(Sound'UT2341Weapons_Sounds.Flak.Hidraul2', SLOT_None,0.8,,,,false);
|
||||
}
|
||||
|
||||
// AI Interface
|
||||
function float GetAIRating()
|
||||
{
|
||||
local Bot B;
|
||||
local float EnemyDist;
|
||||
local vector EnemyDir;
|
||||
|
||||
B = Bot(Instigator.Controller);
|
||||
if ( B == None )
|
||||
return AIRating;
|
||||
|
||||
if ( (B.Target != None) && (Pawn(B.Target) == None) && (VSize(B.Target.Location - Instigator.Location) < 1250) )
|
||||
return 0.9;
|
||||
|
||||
if ( B.Enemy == None )
|
||||
{
|
||||
if ( (B.Target != None) && VSize(B.Target.Location - B.Pawn.Location) > 3500 )
|
||||
return 0.2;
|
||||
return AIRating;
|
||||
}
|
||||
|
||||
EnemyDir = B.Enemy.Location - Instigator.Location;
|
||||
EnemyDist = VSize(EnemyDir);
|
||||
if ( EnemyDist > 750 )
|
||||
{
|
||||
if ( EnemyDist > 2000 )
|
||||
{
|
||||
if ( EnemyDist > 3500 )
|
||||
return 0.2;
|
||||
return (AIRating - 0.3);
|
||||
}
|
||||
if ( EnemyDir.Z < -0.5 * EnemyDist )
|
||||
return (AIRating - 0.3);
|
||||
}
|
||||
else if ( (B.Enemy.Weapon != None) && B.Enemy.Weapon.bMeleeWeapon )
|
||||
return (AIRating + 0.35);
|
||||
else if ( EnemyDist < 400 )
|
||||
return (AIRating + 0.2);
|
||||
return FMax(AIRating + 0.2 - (EnemyDist - 400) * 0.0008, 0.2);
|
||||
}
|
||||
|
||||
/* BestMode()
|
||||
choose between regular or alt-fire
|
||||
*/
|
||||
function byte BestMode()
|
||||
{
|
||||
local vector EnemyDir;
|
||||
local float EnemyDist;
|
||||
local bot B;
|
||||
|
||||
B = Bot(Instigator.Controller);
|
||||
if ( (B == None) || (B.Enemy == None) )
|
||||
return 0;
|
||||
|
||||
EnemyDir = B.Enemy.Location - Instigator.Location;
|
||||
EnemyDist = VSize(EnemyDir);
|
||||
if ( EnemyDist > 750 )
|
||||
{
|
||||
if ( EnemyDir.Z < -0.5 * EnemyDist )
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
else if ( (B.Enemy.Weapon != None) && B.Enemy.Weapon.bMeleeWeapon )
|
||||
return 0;
|
||||
else if ( (EnemyDist < 400) || (EnemyDir.Z > 30) )
|
||||
return 0;
|
||||
else if ( FRand() < 0.65 )
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
function float SuggestAttackStyle()
|
||||
{
|
||||
if ( (AIController(Instigator.Controller) != None)
|
||||
&& (AIController(Instigator.Controller).Skill < 3) )
|
||||
return 0.4;
|
||||
return 0.8;
|
||||
}
|
||||
|
||||
function float SuggestDefenseStyle()
|
||||
{
|
||||
return -0.4;
|
||||
}
|
||||
// End AI Interface
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
FireModeClass(0)=Class'UT2341WeaponsReducedv1a.UT2341FlakFire'
|
||||
FireModeClass(1)=Class'UT2341WeaponsReducedv1a.UT2341FlakAltFire'
|
||||
PutDownAnim="PutDown"
|
||||
BringUpTime=1.000000
|
||||
SelectSound=Sound'UT2341Weapons_Sounds.flak.pdown'
|
||||
SelectForce="SwitchToFlakCannon"
|
||||
AIRating=0.750000
|
||||
CurrentRating=0.750000
|
||||
Description="Classification: Heavy Shrapnel||Primary Fire: White hot chunks of scrap metal are sprayed forth, shotgun style.||Secondary Fire: A grenade full of shrapnel is lobbed at the enemy.||Techniques: The Flak Cannon is far more useful in close range combat situations."
|
||||
EffectOffset=(X=200.000000,Y=32.000000,Z=-25.000000)
|
||||
DisplayFOV=80.000000
|
||||
Priority=13
|
||||
HudColor=(G=128)
|
||||
SmallViewOffset=(X=5.000000,Z=-7.000000)
|
||||
CenteredOffsetY=-4.000000
|
||||
CenteredRoll=3000
|
||||
CenteredYaw=-500
|
||||
CustomCrosshair=9
|
||||
CustomCrossHairColor=(B=0,G=128)
|
||||
CustomCrossHairTextureName="Crosshairs.Hud.Crosshair_Triad3"
|
||||
InventoryGroup=8
|
||||
PickupClass=Class'UT2341WeaponsReducedv1a.UT2341FlakCannonPickup'
|
||||
PlayerViewOffset=(X=5.000000,Z=-7.000000)
|
||||
BobDamping=1.400000
|
||||
AttachmentClass=Class'UT2341WeaponsReducedv1a.UT2341FlakAttachment'
|
||||
IconMaterial=Texture'UT2341Weapons_Tex.Icons.Icon_FlakCannon'
|
||||
IconCoords=(X2=128,Y2=32)
|
||||
ItemName="Flak Cannon"
|
||||
LightType=LT_Steady
|
||||
LightEffect=LE_NonIncidence
|
||||
LightHue=30
|
||||
LightSaturation=150
|
||||
LightBrightness=255.000000
|
||||
LightRadius=4.000000
|
||||
Mesh=SkeletalMesh'UT2341Weapons_Anims.UTFlakCannonFP'
|
||||
}
|
||||
61
Sources/Classes/UT2341FlakCannonPickup.uc
Normal file
61
Sources/Classes/UT2341FlakCannonPickup.uc
Normal file
@@ -0,0 +1,61 @@
|
||||
//=============================================================================
|
||||
// FlakCannonPickup.
|
||||
//=============================================================================
|
||||
class UT2341FlakCannonPickup extends UTWeaponPickup;
|
||||
|
||||
#exec OBJ LOAD FILE=WeaponStaticMesh.usx
|
||||
|
||||
static function StaticPrecache(LevelInfo L)
|
||||
{
|
||||
L.AddPrecacheMaterial(Texture'XEffects.FlakTrailTex');
|
||||
if ( L.DetailMode != DM_Low )
|
||||
L.AddPrecacheMaterial(Texture'XEffects.fexpt');
|
||||
L.AddPrecacheMaterial(Texture'XEffects.ExplosionFlashTex');
|
||||
L.AddPrecacheMaterial(Texture'XEffects.GoldGlow');
|
||||
L.AddPrecacheMaterial(Texture'WeaponSkins.FlakTex0');
|
||||
L.AddPrecacheMaterial(Texture'WeaponSkins.FlakTex1');
|
||||
L.AddPrecacheMaterial(Texture'WeaponSkins.FlakChunkTex');
|
||||
L.AddPrecacheMaterial(Texture'XWeapons.NewFlakSkin');
|
||||
L.AddPrecacheMaterial(Texture'XGameShaders.flak_flash');
|
||||
L.AddPrecacheStaticMesh(StaticMesh'WeaponStaticMesh.flakchunk');
|
||||
L.AddPrecacheStaticMesh(StaticMesh'WeaponStaticMesh.flakshell');
|
||||
L.AddPrecacheStaticMesh(StaticMesh'WeaponStaticMesh.FlakCannonPickup');
|
||||
}
|
||||
|
||||
simulated function UpdatePrecacheMaterials()
|
||||
{
|
||||
Level.AddPrecacheMaterial(Texture'XEffects.FlakTrailTex');
|
||||
if ( Level.DetailMode != DM_Low )
|
||||
Level.AddPrecacheMaterial(Texture'XEffects.fexpt');
|
||||
Level.AddPrecacheMaterial(Texture'XEffects.ExplosionFlashTex');
|
||||
Level.AddPrecacheMaterial(Texture'XEffects.GoldGlow');
|
||||
Level.AddPrecacheMaterial(Texture'WeaponSkins.FlakTex0');
|
||||
Level.AddPrecacheMaterial(Texture'WeaponSkins.FlakTex1');
|
||||
Level.AddPrecacheMaterial(Texture'WeaponSkins.FlakChunkTex');
|
||||
Level.AddPrecacheMaterial(Texture'XWeapons.NewFlakSkin');
|
||||
Level.AddPrecacheMaterial(Texture'XGameShaders.flak_flash');
|
||||
|
||||
super.UpdatePrecacheMaterials();
|
||||
}
|
||||
|
||||
simulated function UpdatePrecacheStaticMeshes()
|
||||
{
|
||||
Level.AddPrecacheStaticMesh(StaticMesh'WeaponStaticMesh.flakchunk');
|
||||
Level.AddPrecacheStaticMesh(StaticMesh'WeaponStaticMesh.flakshell');
|
||||
Super.UpdatePrecacheStaticMeshes();
|
||||
}
|
||||
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
MaxDesireability=0.750000
|
||||
InventoryType=Class'UT2341WeaponsReducedv1a.UT2341FlakCannon'
|
||||
PickupMessage="You got the Flak Cannon."
|
||||
PickupSound=Sound'UT2341Weapons_Sounds.General.WeaponPickup'
|
||||
PickupForce="FlakCannonPickup"
|
||||
DrawType=DT_StaticMesh
|
||||
StaticMesh=StaticMesh'UT2341Weapons_SM.General.UTFlakCannon'
|
||||
DrawScale=1.500000
|
||||
AmbientGlow=48
|
||||
RotationRate=(Yaw=5000)
|
||||
}
|
||||
208
Sources/Classes/UT2341FlakChunk.uc
Normal file
208
Sources/Classes/UT2341FlakChunk.uc
Normal file
@@ -0,0 +1,208 @@
|
||||
//=============================================================================
|
||||
// FlakChunk.
|
||||
//=============================================================================
|
||||
class UT2341FlakChunk extends Projectile;
|
||||
|
||||
var Emitter Glow;
|
||||
var byte Bounces;
|
||||
var float DamageAtten;
|
||||
var sound ImpactSounds[3];
|
||||
|
||||
var ConstantColor myConstantColor;
|
||||
var Combiner myCombiner;
|
||||
|
||||
replication
|
||||
{
|
||||
reliable if (bNetInitial && Role == ROLE_Authority)
|
||||
Bounces;
|
||||
}
|
||||
|
||||
simulated function Destroyed()
|
||||
{
|
||||
if (Glow!=None)
|
||||
Glow.Destroy();
|
||||
|
||||
if (Level.NetMode != NM_DedicatedServer)
|
||||
{
|
||||
myCombiner.Material1 = None;
|
||||
myCombiner.Material2 = None;
|
||||
myCombiner.Mask = None;
|
||||
Level.ObjectPool.FreeObject(myCombiner);
|
||||
|
||||
Level.ObjectPool.FreeObject(myConstantColor);
|
||||
}
|
||||
|
||||
Super.Destroyed();
|
||||
}
|
||||
|
||||
simulated function PostBeginPlay()
|
||||
{
|
||||
local float r;
|
||||
|
||||
if ( Level.NetMode != NM_DedicatedServer )
|
||||
{
|
||||
if ( !PhysicsVolume.bWaterVolume )
|
||||
{
|
||||
Glow = Spawn(class'FX_FlakChunkGlow',self);
|
||||
Glow.SetBase(self);
|
||||
}
|
||||
}
|
||||
|
||||
if (Role == ROLE_Authority)
|
||||
{
|
||||
Velocity = Vector(Rotation) * (Speed + (FRand() * 200 - 100));
|
||||
if (PhysicsVolume.bWaterVolume)
|
||||
Velocity *= 0.65;
|
||||
}
|
||||
|
||||
r = FRand();
|
||||
if (r > 0.75)
|
||||
Bounces = 2;
|
||||
else if (r > 0.25)
|
||||
Bounces = 1;
|
||||
else
|
||||
Bounces = 0;
|
||||
|
||||
SetRotation(RotRand());
|
||||
|
||||
Super.PostBeginPlay();
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
// PostNetBeginPlay
|
||||
//
|
||||
// Apparently, SetOverlayMaterial doesn't work for this class.
|
||||
// Hence, this irritating and convoluted method!
|
||||
//===========================================================================
|
||||
simulated function PostNetBeginPlay()
|
||||
{
|
||||
if (Level.NetMode != NM_DedicatedServer)
|
||||
{
|
||||
myConstantColor = ConstantColor(Level.ObjectPool.AllocateObject(class'ConstantColor'));
|
||||
myConstantColor.Color.R = 255;
|
||||
myConstantColor.Color.G = 255;
|
||||
myConstantColor.Color.B = 255;
|
||||
myConstantColor.Color.A = 0;
|
||||
myCombiner = Combiner(Level.ObjectPool.AllocateObject(class'Combiner'));
|
||||
|
||||
myCombiner.CombineOperation = CO_AlphaBlend_With_Mask;
|
||||
myCombiner.AlphaOperation = AO_Use_Mask;
|
||||
myCombiner.Material2 = Texture'WeaponSkins.Skins.FlakChunkTex';
|
||||
myCombiner.Material1 = Texture'UT2341Weapons_Tex.Flak.FlakChunkHot';
|
||||
myCombiner.Mask = myConstantColor;
|
||||
|
||||
Skins[0] = myCombiner;
|
||||
}
|
||||
}
|
||||
|
||||
simulated function ProcessTouch (Actor Other, vector HitLocation)
|
||||
{
|
||||
if ( (FlakChunk(Other) == None) && ((Physics == PHYS_Falling) || (Other != Instigator)) )
|
||||
{
|
||||
speed = VSize(Velocity);
|
||||
if ( speed > 200 )
|
||||
{
|
||||
if (FRand() > 0.5)
|
||||
PlaySound(Sound'UT2341Weapons_Sounds.Flak.ChunkHit');
|
||||
if ( Role == ROLE_Authority )
|
||||
{
|
||||
if ( Instigator == None || Instigator.Controller == None )
|
||||
Other.SetDelayedDamageInstigatorController( InstigatorController );
|
||||
|
||||
Other.TakeDamage( Damage, Instigator, HitLocation,
|
||||
(MomentumTransfer * Velocity/speed), MyDamageType );
|
||||
}
|
||||
}
|
||||
Destroy();
|
||||
}
|
||||
}
|
||||
|
||||
simulated function Landed( Vector HitNormal )
|
||||
{
|
||||
SetPhysics(PHYS_None);
|
||||
LifeSpan = 1.0;
|
||||
}
|
||||
|
||||
simulated function HitWall( vector HitNormal, actor Wall )
|
||||
{
|
||||
if ( !Wall.bStatic && !Wall.bWorldGeometry
|
||||
&& ((Mover(Wall) == None) || Mover(Wall).bDamageTriggered) )
|
||||
{
|
||||
if ( Level.NetMode != NM_Client )
|
||||
{
|
||||
if ( Instigator == None || Instigator.Controller == None )
|
||||
Wall.SetDelayedDamageInstigatorController( InstigatorController );
|
||||
Wall.TakeDamage( Damage, instigator, Location, MomentumTransfer * Normal(Velocity), MyDamageType);
|
||||
}
|
||||
Destroy();
|
||||
return;
|
||||
}
|
||||
|
||||
SetPhysics(PHYS_Falling);
|
||||
if (Bounces > 0)
|
||||
{
|
||||
if ( !Level.bDropDetail && (FRand() < 0.4) )
|
||||
Playsound(ImpactSounds[Rand(3)]);
|
||||
|
||||
Velocity = 0.65 * (Velocity - 2.0*HitNormal*(Velocity dot HitNormal));
|
||||
Bounces = Bounces - 1;
|
||||
return;
|
||||
}
|
||||
bBounce = false;
|
||||
}
|
||||
|
||||
simulated function PhysicsVolumeChange( PhysicsVolume Volume )
|
||||
{
|
||||
if (Volume.bWaterVolume)
|
||||
{
|
||||
if ( Glow != None )
|
||||
Glow.Destroy();
|
||||
Velocity *= 0.65;
|
||||
}
|
||||
}
|
||||
|
||||
simulated function Tick(float DeltaTime)
|
||||
{
|
||||
Super.Tick(DeltaTime);
|
||||
|
||||
if (Level.NetMode == NM_DedicatedServer)
|
||||
return;
|
||||
|
||||
if (myConstantColor != None)
|
||||
{
|
||||
if ( (DeltaTime * 255 + myConstantColor.Color.A) > 255)
|
||||
{
|
||||
MyConstantColor.Color.A = 255;
|
||||
Disable('Tick');
|
||||
}
|
||||
else myConstantColor.Color.A += DeltaTime * 2 * 255;
|
||||
|
||||
AmbientGlow = 255 - myConstantColor.Color.A;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
n.b
|
||||
flak chunk speed values match ut99 exactly, with no compensatory mechanism,
|
||||
because flak was too strong
|
||||
*/
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
Bounces=1
|
||||
ImpactSounds(0)=Sound'UT2341Weapons_Sounds.flak.Hit1'
|
||||
ImpactSounds(1)=Sound'UT2341Weapons_Sounds.flak.Hit3'
|
||||
ImpactSounds(2)=Sound'UT2341Weapons_Sounds.flak.Hit5'
|
||||
Speed=2750.000000
|
||||
MaxSpeed=2970.000000
|
||||
Damage=24.000000
|
||||
MomentumTransfer=10000.000000
|
||||
MyDamageType=Class'UT2341WeaponsReducedv1a.DamType_Flak'
|
||||
DrawType=DT_StaticMesh
|
||||
StaticMesh=StaticMesh'WeaponStaticMesh.FlakChunk'
|
||||
CullDistance=3000.000000
|
||||
LifeSpan=2.000000
|
||||
DrawScale=21.000000
|
||||
AmbientGlow=64
|
||||
bBounce=True
|
||||
}
|
||||
31
Sources/Classes/UT2341FlakFire.uc
Normal file
31
Sources/Classes/UT2341FlakFire.uc
Normal file
@@ -0,0 +1,31 @@
|
||||
class UT2341FlakFire extends ProjectileFire;
|
||||
|
||||
function InitEffects()
|
||||
{
|
||||
Super.InitEffects();
|
||||
if ( FlashEmitter != None )
|
||||
Weapon.AttachToBone(FlashEmitter, 'tip');
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
ProjPerFire=8
|
||||
ProjSpawnOffset=(X=15.000000,Y=5.000000,Z=-6.000000)
|
||||
FireAnim="FireLoad"
|
||||
FireEndAnim=
|
||||
FireAnimRate=1.250000
|
||||
FireSound=Sound'UT2341Weapons_Sounds.flak.shot1'
|
||||
FireForce="FlakCannonFire"
|
||||
FireRate=0.785000
|
||||
AmmoClass=Class'UT2341WeaponsReducedv1a.UT2341FlakAmmo'
|
||||
AmmoPerFire=1
|
||||
ShakeRotTime=2.000000
|
||||
ShakeOffsetMag=(X=-20.000000)
|
||||
ShakeOffsetRate=(X=-1000.000000)
|
||||
ShakeOffsetTime=2.000000
|
||||
ProjectileClass=Class'UT2341WeaponsReducedv1a.UT2341FlakChunk'
|
||||
BotRefireRate=0.700000
|
||||
FlashEmitterClass=Class'XEffects.FlakMuzFlash1st'
|
||||
Spread=2000.000000
|
||||
SpreadStyle=SS_Random
|
||||
}
|
||||
127
Sources/Classes/UT2341FlakShell.uc
Normal file
127
Sources/Classes/UT2341FlakShell.uc
Normal file
@@ -0,0 +1,127 @@
|
||||
//=============================================================================
|
||||
// flakshell
|
||||
//=============================================================================
|
||||
class UT2341FlakShell extends Projectile;
|
||||
|
||||
#exec OBJ LOAD File=UT2341Weapons_Sounds.uax
|
||||
|
||||
var xEmitter Trail;
|
||||
var vector initialDir;
|
||||
var actor Glow;
|
||||
|
||||
simulated function PostBeginPlay()
|
||||
{
|
||||
local Rotator R;
|
||||
local PlayerController PC;
|
||||
|
||||
if ( !PhysicsVolume.bWaterVolume && (Level.NetMode != NM_DedicatedServer) )
|
||||
{
|
||||
PC = Level.GetLocalPlayerController();
|
||||
if ( (PC.ViewTarget != None) && VSize(PC.ViewTarget.Location - Location) < 6000 )
|
||||
Trail = Spawn(class'FlakShellTrail',self);
|
||||
Glow = Spawn(class'FlakGlow', self);
|
||||
}
|
||||
|
||||
Super.PostBeginPlay();
|
||||
Velocity = Vector(Rotation) * Speed;
|
||||
R = Rotation;
|
||||
R.Roll = 32768;
|
||||
SetRotation(R);
|
||||
Velocity.z += TossZ;
|
||||
initialDir = Velocity;
|
||||
}
|
||||
|
||||
simulated function destroyed()
|
||||
{
|
||||
if ( Trail != None )
|
||||
Trail.mRegen=False;
|
||||
if ( glow != None )
|
||||
Glow.Destroy();
|
||||
Super.Destroyed();
|
||||
}
|
||||
|
||||
|
||||
simulated function ProcessTouch(Actor Other, Vector HitLocation)
|
||||
{
|
||||
if ( Other != Instigator )
|
||||
{
|
||||
SpawnEffects(HitLocation, -1 * Normal(Velocity) );
|
||||
Explode(HitLocation,Normal(HitLocation-Other.Location));
|
||||
}
|
||||
}
|
||||
|
||||
simulated function SpawnEffects( vector HitLocation, vector HitNormal )
|
||||
{
|
||||
local PlayerController PC;
|
||||
|
||||
PlaySound (Sound'UT2341Weapons_Sounds.General.Expl04',,3*TransientSoundVolume);
|
||||
if ( EffectIsRelevant(Location,false) )
|
||||
{
|
||||
PC = Level.GetLocalPlayerController();
|
||||
if ( (PC.ViewTarget != None) && VSize(PC.ViewTarget.Location - Location) < 3000 )
|
||||
spawn(class'FlakExplosion',,,HitLocation + HitNormal*16 );
|
||||
spawn(class'FlashExplosion',,,HitLocation + HitNormal*16 );
|
||||
spawn(class'RocketSmokeRing',,,HitLocation + HitNormal*16, rotator(HitNormal) );
|
||||
if ( (ExplosionDecal != None) && (Level.NetMode != NM_DedicatedServer) )
|
||||
Spawn(ExplosionDecal,self,,HitLocation, rotator(-HitNormal));
|
||||
}
|
||||
}
|
||||
|
||||
simulated function Landed( vector HitNormal )
|
||||
{
|
||||
SpawnEffects( Location, HitNormal );
|
||||
Explode(Location,HitNormal);
|
||||
}
|
||||
|
||||
simulated function HitWall (vector HitNormal, actor Wall)
|
||||
{
|
||||
Landed(HitNormal);
|
||||
}
|
||||
|
||||
simulated function Explode(vector HitLocation, vector HitNormal)
|
||||
{
|
||||
local vector start;
|
||||
local rotator rot;
|
||||
local int i;
|
||||
local UT2341FlakChunk NewChunk;
|
||||
|
||||
start = Location + 10 * HitNormal;
|
||||
if ( Role == ROLE_Authority )
|
||||
{
|
||||
HurtRadius(damage, 220, MyDamageType, MomentumTransfer, HitLocation);
|
||||
for (i=0; i<4; i++)
|
||||
{
|
||||
rot = Rotation;
|
||||
rot.yaw += FRand()*32000-16000;
|
||||
rot.pitch += FRand()*32000-16000;
|
||||
rot.roll += FRand()*32000-16000;
|
||||
NewChunk = Spawn( class 'UT2341FlakChunk',, '', Start, rot);
|
||||
}
|
||||
}
|
||||
Destroy();
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
Speed=1380.000000
|
||||
TossZ=225.000000
|
||||
Damage=105.000000
|
||||
MomentumTransfer=75000.000000
|
||||
MyDamageType=Class'UT2341WeaponsReducedv1a.DamType_FlakShell'
|
||||
ExplosionDecal=Class'XEffects.ShockAltDecal'
|
||||
DrawType=DT_StaticMesh
|
||||
StaticMesh=StaticMesh'WeaponStaticMesh.FlakShell'
|
||||
CullDistance=4000.000000
|
||||
Physics=PHYS_Falling
|
||||
AmbientSound=Sound'WeaponSounds.BaseProjectileSounds.BFlakCannonProjectile'
|
||||
LifeSpan=6.000000
|
||||
DrawScale=8.000000
|
||||
Skins(0)=Texture'XWeapons.Skins.NewFlakSkin'
|
||||
AmbientGlow=100
|
||||
SoundVolume=255
|
||||
SoundRadius=100.000000
|
||||
bProjTarget=True
|
||||
ForceType=FT_Constant
|
||||
ForceRadius=60.000000
|
||||
ForceScale=5.000000
|
||||
}
|
||||
167
Sources/Classes/UT2341Hammer.uc
Normal file
167
Sources/Classes/UT2341Hammer.uc
Normal file
@@ -0,0 +1,167 @@
|
||||
//=============================================================================
|
||||
// Shield Gun
|
||||
//=============================================================================
|
||||
class UT2341Hammer extends Weapon
|
||||
config(user)
|
||||
HideDropDown;
|
||||
|
||||
replication
|
||||
{
|
||||
reliable if (Role == ROLE_Authority)
|
||||
ClientForceRelease;
|
||||
}
|
||||
|
||||
simulated function ClientForceRelease(byte Mode)
|
||||
{
|
||||
if (Role < ROLE_Authority)
|
||||
StopFire(Mode);
|
||||
}
|
||||
|
||||
// AI Interface
|
||||
function GiveTo(Pawn Other, optional Pickup Pickup)
|
||||
{
|
||||
Super.GiveTo(Other, Pickup);
|
||||
|
||||
if ( Bot(Other.Controller) != None )
|
||||
Bot(Other.Controller).bHasImpactHammer = true;
|
||||
}
|
||||
|
||||
function bool CanAttack(Actor Other)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
simulated function Timer()
|
||||
{
|
||||
local Bot B;
|
||||
|
||||
if (ClientState == WS_BringUp)
|
||||
{
|
||||
// check if owner is bot waiting to do impact jump
|
||||
B = Bot(Instigator.Controller);
|
||||
if ( (B != None) && B.bPreparingMove && (B.ImpactTarget != None) )
|
||||
{
|
||||
B.ImpactJump();
|
||||
B = None;
|
||||
}
|
||||
}
|
||||
Super.Timer();
|
||||
if ( (B != None) && (B.Enemy != None) )
|
||||
BotFire(false);
|
||||
}
|
||||
|
||||
function FireHack(byte Mode)
|
||||
{
|
||||
if ( Mode == 0 )
|
||||
{
|
||||
FireMode[0].PlayFiring();
|
||||
FireMode[0].FlashMuzzleFlash();
|
||||
FireMode[0].StartMuzzleSmoke();
|
||||
IncrementFlashCount(0);
|
||||
}
|
||||
}
|
||||
|
||||
/* BestMode()
|
||||
choose between regular or alt-fire
|
||||
*/
|
||||
function byte BestMode()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
// super desireable for bot waiting to impact jump
|
||||
function float GetAIRating()
|
||||
{
|
||||
local Bot B;
|
||||
local float EnemyDist;
|
||||
|
||||
B = Bot(Instigator.Controller);
|
||||
if ( B == None )
|
||||
return AIRating;
|
||||
|
||||
if ( B.bPreparingMove && (B.ImpactTarget != None) )
|
||||
return 9;
|
||||
|
||||
if ( B.Enemy == None )
|
||||
return AIRating;
|
||||
|
||||
EnemyDist = VSize(B.Enemy.Location - Instigator.Location);
|
||||
if ( B.Stopped() && (EnemyDist > 100) )
|
||||
return 0.1;
|
||||
|
||||
if ( (EnemyDist < 750) && (B.Skill <= 2) && !B.Enemy.IsA('Bot') && (UT2341Hammer(B.Enemy.Weapon) != None) )
|
||||
return FClamp(300/(EnemyDist + 1), 0.6, 0.75);
|
||||
|
||||
if ( EnemyDist > 400 )
|
||||
return 0.1;
|
||||
if ( (Instigator.Weapon != self) && (EnemyDist < 120) )
|
||||
return 0.25;
|
||||
|
||||
return ( FMin(0.6, 90/(EnemyDist + 1)) );
|
||||
}
|
||||
|
||||
// End AI interface
|
||||
|
||||
simulated function AnimEnd(int channel)
|
||||
{
|
||||
if (FireMode[0].bIsFiring)
|
||||
{
|
||||
LoopAnim('FireLoop', 2);
|
||||
Instigator.AmbientSound = UT2341HammerFire(FireMode[0]).ChargingSound;
|
||||
Instigator.SoundVolume = UT2341HammerFire(FireMode[0]).ChargingSoundVolume;
|
||||
}
|
||||
else
|
||||
Super.AnimEnd(channel);
|
||||
}
|
||||
|
||||
function float SuggestAttackStyle()
|
||||
{
|
||||
return 0.8;
|
||||
}
|
||||
|
||||
function float SuggestDefenseStyle()
|
||||
{
|
||||
return -0.8;
|
||||
}
|
||||
|
||||
simulated function float ChargeBar()
|
||||
{
|
||||
return FMin(1,FireMode[0].HoldTime/UT2341HammerFire(FireMode[0]).FullyChargedTime);
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
FireModeClass(0)=Class'UT2341WeaponsReducedv1a.UT2341HammerFire'
|
||||
FireModeClass(1)=Class'UT2341WeaponsReducedv1a.UT2341HammerAltFire'
|
||||
PutDownAnim="PutDown"
|
||||
BringUpTime=0.500000
|
||||
SelectSound=Sound'UT2341Weapons_Sounds.Hammer.ImpactPickup'
|
||||
SelectForce="ShieldGun_change"
|
||||
AIRating=0.350000
|
||||
CurrentRating=0.350000
|
||||
bMeleeWeapon=True
|
||||
bShowChargingBar=True
|
||||
bCanThrow=False
|
||||
Description="Classification: Melee Piston||Primary Fire: When trigger is held down, touch opponents with this piston to inflict massive damage.||Secondary Fire: Damages opponents at close range and has the ability to deflect projectiles.||Techniques: Shoot at the ground while jumping to jump extra high."
|
||||
EffectOffset=(X=15.000000,Y=5.500000,Z=2.000000)
|
||||
DisplayFOV=80.000000
|
||||
Priority=2
|
||||
HudColor=(G=150)
|
||||
SmallViewOffset=(Z=-13.000000)
|
||||
CenteredOffsetY=-9.000000
|
||||
CenteredRoll=1000
|
||||
CustomCrosshair=6
|
||||
CustomCrossHairColor=(B=121,G=188)
|
||||
CustomCrossHairTextureName="Crosshairs.Hud.Crosshair_Pointer"
|
||||
PickupClass=Class'XWeapons.ShieldGunPickup'
|
||||
PlayerViewOffset=(Z=-13.000000)
|
||||
PlayerViewPivot=(Pitch=1024)
|
||||
BobDamping=2.200000
|
||||
AttachmentClass=Class'UT2341WeaponsReducedv1a.UT2341HammerAttachment'
|
||||
IconMaterial=Texture'UT2341Weapons_Tex.Icons.Icon_ImpactHammer'
|
||||
IconCoords=(X2=127,Y2=31)
|
||||
ItemName="Impact Hammer"
|
||||
Mesh=SkeletalMesh'UT2341Weapons_Anims.UTImpactHammerFP'
|
||||
DrawScale=1.500000
|
||||
TransientSoundVolume=1.000000
|
||||
}
|
||||
85
Sources/Classes/UT2341HammerAltFire.uc
Normal file
85
Sources/Classes/UT2341HammerAltFire.uc
Normal file
@@ -0,0 +1,85 @@
|
||||
class UT2341HammerAltFire extends WeaponFire;
|
||||
|
||||
var class<DamageType> DamageType; // weapon fire damage type (no projectile, so we put this here)
|
||||
var float HammerLongRange; // from pawn centre
|
||||
var float Force; // force to other players
|
||||
var float Damage;
|
||||
var float SelfDamageScale; // %damage to self (when shielding a wall)
|
||||
|
||||
simulated function InitEffects()
|
||||
{
|
||||
}
|
||||
|
||||
function Rotator AdjustAim(Vector Start, float InAimError)
|
||||
{
|
||||
local rotator Aim, EnemyAim;
|
||||
|
||||
if ( AIController(Instigator.Controller) != None )
|
||||
{
|
||||
Aim = Instigator.Rotation;
|
||||
if ( Instigator.Controller.Enemy != None )
|
||||
{
|
||||
EnemyAim = rotator(Instigator.Controller.Enemy.Location - Start);
|
||||
Aim.Pitch = EnemyAim.Pitch;
|
||||
}
|
||||
return Aim;
|
||||
}
|
||||
else
|
||||
return super.AdjustAim(Start,InAimError);
|
||||
}
|
||||
|
||||
function DoFireEffect()
|
||||
{
|
||||
local Vector HitLocation, HitNormal, StartTrace, EndTrace, X,Y,Z;
|
||||
local Rotator Aim;
|
||||
local Actor Other;
|
||||
|
||||
Instigator.MakeNoise(1.0);
|
||||
Weapon.GetViewAxes(X,Y,Z);
|
||||
|
||||
StartTrace = Instigator.Location + Instigator.EyePosition();
|
||||
Aim = AdjustAim(StartTrace, AimError);
|
||||
EndTrace = StartTrace + HammerLongRange * Vector(Aim);
|
||||
Other = Weapon.Trace(HitLocation, HitNormal, EndTrace, StartTrace, true);
|
||||
|
||||
if ( Other != None && Other != Instigator )
|
||||
{
|
||||
if ( Pawn(Other) != None || (Decoration(Other) != None && Decoration(Other).bDamageable) || TranslocatorBeacon(Other) != None)
|
||||
{
|
||||
if (Pawn(Other) == None || Pawn(Other).Controller == None || !Pawn(Other).Controller.SameTeamAs(Instigator.Controller))
|
||||
Other.TakeDamage(Damage , Instigator, HitLocation, Force*(X+vect(0,0,0.5)), DamageType);
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( xPawn(Instigator).bBerserk )
|
||||
Force *= 2.0;
|
||||
Instigator.TakeDamage(SelfDamageScale*Damage, Instigator, HitLocation, -Force*X, DamageType);
|
||||
if ( DestroyableObjective(Other) != None )
|
||||
Other.TakeDamage(Damage, Instigator, HitLocation, Force*(X+vect(0,0,0.5)), DamageType);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
DamageType=Class'UT2341WeaponsReducedv1a.DamType_Hammer'
|
||||
HammerLongRange=200.000000
|
||||
Force=35000.000000
|
||||
Damage=30.000000
|
||||
SelfDamageScale=1.200000
|
||||
TransientSoundVolume=1.000000
|
||||
FireLoopAnim=
|
||||
FireEndAnim=
|
||||
TweenTime=0.000000
|
||||
FireSound=Sound'UT2341Weapons_Sounds.Hammer.ImpactAltFire'
|
||||
FireForce="ShieldGunFire"
|
||||
FireRate=0.810000
|
||||
AmmoClass=Class'UT2341WeaponsReducedv1a.UT2341HammerAmmo'
|
||||
ShakeRotTime=2.000000
|
||||
ShakeOffsetMag=(X=-20.000000)
|
||||
ShakeOffsetRate=(X=-1000.000000)
|
||||
ShakeOffsetTime=2.000000
|
||||
BotRefireRate=1.000000
|
||||
WarnTargetPct=0.100000
|
||||
FlashEmitterClass=Class'XEffects.ForceRingA'
|
||||
}
|
||||
8
Sources/Classes/UT2341HammerAmmo.uc
Normal file
8
Sources/Classes/UT2341HammerAmmo.uc
Normal file
@@ -0,0 +1,8 @@
|
||||
class UT2341HammerAmmo extends Ammunition;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
MaxAmmo=1
|
||||
InitialAmount=1
|
||||
ItemName="HammerCharge"
|
||||
}
|
||||
8
Sources/Classes/UT2341HammerAttachment.uc
Normal file
8
Sources/Classes/UT2341HammerAttachment.uc
Normal file
@@ -0,0 +1,8 @@
|
||||
class UT2341HammerAttachment extends xWeaponAttachment;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
bHeavy=True
|
||||
Mesh=SkeletalMesh'UT2341Weapons_Anims.UTImpactHammer3rd'
|
||||
DrawScale=0.200000
|
||||
}
|
||||
240
Sources/Classes/UT2341HammerFire.uc
Normal file
240
Sources/Classes/UT2341HammerFire.uc
Normal file
@@ -0,0 +1,240 @@
|
||||
class UT2341HammerFire extends WeaponFire;
|
||||
|
||||
var class<DamageType> DamageType; // weapon fire damage type (no projectile, so we put this here)
|
||||
var float AutoCheckRange, HammerLongRange; // from pawn centre
|
||||
var float Force; // force to other players
|
||||
var float Damage;
|
||||
var float SelfDamageScale; // %damage to self (when shielding a wall)
|
||||
var float MinSelfDamage;
|
||||
var Sound ChargingSound; // charging sound
|
||||
var float AutoFireTestFreq;
|
||||
var float FullyChargedTime; // held for this long will do max damage
|
||||
var bool bAutoRelease;
|
||||
var bool bStartedChargingForce;
|
||||
var byte ChargingSoundVolume;
|
||||
var Pawn AutoHitPawn;
|
||||
var float AutoHitTime;
|
||||
|
||||
var bool bCheckingHit;
|
||||
|
||||
var sound PreFireSound;
|
||||
|
||||
// jdf ---
|
||||
var String ChargingForce;
|
||||
// --- jdf
|
||||
|
||||
simulated function InitEffects()
|
||||
{
|
||||
bStartedChargingForce = false; // jdf
|
||||
}
|
||||
|
||||
function Rotator AdjustAim(Vector Start, float InAimError)
|
||||
{
|
||||
local rotator Aim, EnemyAim;
|
||||
|
||||
if ( AIController(Instigator.Controller) != None )
|
||||
{
|
||||
Aim = Instigator.Rotation;
|
||||
if ( Instigator.Controller.Enemy != None )
|
||||
{
|
||||
EnemyAim = rotator(Instigator.Controller.Enemy.Location - Start);
|
||||
Aim.Pitch = EnemyAim.Pitch;
|
||||
}
|
||||
return Aim;
|
||||
}
|
||||
else
|
||||
return super.AdjustAim(Start,InAimError);
|
||||
}
|
||||
|
||||
function DoFireEffect()
|
||||
{
|
||||
local Vector HitLocation, HitNormal, StartTrace, EndTrace, X,Y,Z;
|
||||
local Rotator Aim;
|
||||
local Actor Other;
|
||||
local float Scale;
|
||||
|
||||
Instigator.MakeNoise(1.0);
|
||||
Weapon.GetViewAxes(X,Y,Z);
|
||||
bAutoRelease = false;
|
||||
|
||||
if ( (AutoHitPawn != None) && (Level.TimeSeconds - AutoHitTime < 0.15) )
|
||||
{
|
||||
Other = AutoHitPawn;
|
||||
HitLocation = Other.Location;
|
||||
AutoHitPawn = None;
|
||||
}
|
||||
else
|
||||
{
|
||||
StartTrace = Instigator.Location + Instigator.EyePosition();
|
||||
Aim = AdjustAim(StartTrace, AimError);
|
||||
EndTrace = StartTrace + HammerLongRange * Vector(Aim);
|
||||
Other = Weapon.Trace(HitLocation, HitNormal, EndTrace, StartTrace, true);
|
||||
}
|
||||
|
||||
Scale = FMin(HoldTime, FullyChargedTime);
|
||||
|
||||
Instigator.AmbientSound = None;
|
||||
Instigator.SoundVolume = Instigator.Default.SoundVolume;
|
||||
|
||||
if ( Other != None && Other != Instigator )
|
||||
{
|
||||
if ( Pawn(Other) != None || (Decoration(Other) != None && Decoration(Other).bDamageable) || TranslocatorBeacon(Other) != None)
|
||||
{
|
||||
if (Pawn(Other) == None || Pawn(Other).Controller == None || !Pawn(Other).Controller.SameTeamAs(Instigator.Controller))
|
||||
Other.TakeDamage(Damage * Scale, Instigator, HitLocation, Scale*Force*(X+vect(0,0,0.5)), DamageType);
|
||||
}
|
||||
else
|
||||
{
|
||||
Scale = FMax(Scale, 1);
|
||||
if ( xPawn(Instigator).bBerserk )
|
||||
Force *= 2.0;
|
||||
Instigator.TakeDamage(SelfDamageScale*Damage, Instigator, HitLocation, -Scale*Force*X, DamageType);
|
||||
if ( DestroyableObjective(Other) != None )
|
||||
Other.TakeDamage(Damage*Scale, Instigator, HitLocation, Scale*Force*(X+vect(0,0,0.5)), DamageType);
|
||||
}
|
||||
}
|
||||
|
||||
UT2341Hammer(Weapon).ClientForceRelease(ThisModeNum);
|
||||
|
||||
bCheckingHit=False;
|
||||
SetTimer(0, false);
|
||||
}
|
||||
|
||||
function ModeHoldFire()
|
||||
{
|
||||
bCheckingHit = False;
|
||||
SetTimer(1.33, false);
|
||||
Weapon.PlayAnim(PreFireAnim);
|
||||
Weapon.PlayOwnedSound(PreFireSound, SLOT_Interact, 1);
|
||||
}
|
||||
|
||||
function bool IsFiring()
|
||||
{
|
||||
return ( bIsFiring || bAutoRelease );
|
||||
}
|
||||
|
||||
function Timer()
|
||||
{
|
||||
local Actor Other;
|
||||
local Vector HitLocation, HitNormal, StartTrace, EndTrace;
|
||||
local Rotator Aim;
|
||||
local float ChargeScale;
|
||||
|
||||
if (HoldTime > 0.0 && !bNowWaiting)
|
||||
{
|
||||
StartTrace = Instigator.Location;
|
||||
Aim = AdjustAim(StartTrace, AimError);
|
||||
EndTrace = StartTrace + AutoCheckRange * Vector(Aim);
|
||||
|
||||
Other = Weapon.Trace(HitLocation, HitNormal, EndTrace, StartTrace, true);
|
||||
if ( (Pawn(Other) != None) && (Other != Instigator) )
|
||||
{
|
||||
bAutoRelease = true;
|
||||
bIsFiring = false;
|
||||
Instigator.AmbientSound = None;
|
||||
Instigator.SoundVolume = Instigator.Default.SoundVolume;
|
||||
AutoHitPawn = Pawn(Other);
|
||||
AutoHitTime = Level.TimeSeconds;
|
||||
}
|
||||
else
|
||||
{
|
||||
ChargeScale = FMin(HoldTime, FullyChargedTime);
|
||||
|
||||
if (!bStartedChargingForce)
|
||||
{
|
||||
bStartedChargingForce = true;
|
||||
ClientPlayForceFeedback( ChargingForce );
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( Instigator.AmbientSound == ChargingSound )
|
||||
{
|
||||
Instigator.AmbientSound = None;
|
||||
Instigator.SoundVolume = Instigator.Default.SoundVolume;
|
||||
}
|
||||
|
||||
SetTimer(0, false);
|
||||
}
|
||||
|
||||
if (!bCheckingHit)
|
||||
{
|
||||
bCheckingHit=True;
|
||||
SetTimer(AutoFireTestFreq, true);
|
||||
}
|
||||
}
|
||||
|
||||
simulated function vector GetFireStart(vector X, vector Y, vector Z)
|
||||
{
|
||||
return Instigator.Location;
|
||||
}
|
||||
|
||||
function StartBerserk()
|
||||
{
|
||||
if ( (Level.GRI != None) && (Level.GRI.WeaponBerserk > 1.0) )
|
||||
return;
|
||||
MaxHoldTime = default.MaxHoldTime * 0.75;
|
||||
FullyChargedTime = default.FullyChargedTime * 0.75;
|
||||
}
|
||||
|
||||
function StopBerserk()
|
||||
{
|
||||
if ( (Level.GRI != None) && (Level.GRI.WeaponBerserk > 1.0) )
|
||||
return;
|
||||
MaxHoldTime = default.MaxHoldTime;
|
||||
FullyChargedTime = default.FullyChargedTime;
|
||||
}
|
||||
|
||||
function StartSuperBerserk()
|
||||
{
|
||||
MaxHoldTime = default.MaxHoldTime/Level.GRI.WeaponBerserk;
|
||||
FullyChargedTime = default.FullyChargedTime/Level.GRI.WeaponBerserk;
|
||||
Damage = Default.Damage * Level.GRI.WeaponBerserk;
|
||||
}
|
||||
|
||||
// jdf ---
|
||||
function PlayFiring()
|
||||
{
|
||||
bStartedChargingForce = false;
|
||||
StopForceFeedback(ChargingForce);
|
||||
Super.PlayFiring();
|
||||
}
|
||||
// --- jdf
|
||||
|
||||
function PlayPreFire();
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
DamageType=Class'UT2341WeaponsReducedv1a.DamType_Hammer'
|
||||
AutoCheckRange=82.000000
|
||||
HammerLongRange=120.000000
|
||||
Force=79000.000000
|
||||
Damage=90.000000
|
||||
SelfDamageScale=0.600000
|
||||
ChargingSound=Sound'UT2341Weapons_Sounds.Hammer.ImpactLoop'
|
||||
AutoFireTestFreq=0.150000
|
||||
FullyChargedTime=1.500000
|
||||
ChargingSoundVolume=200
|
||||
PreFireSound=Sound'UT2341Weapons_Sounds.Hammer.ImpactFireStart'
|
||||
ChargingForce="shieldgun_charge"
|
||||
bFireOnRelease=True
|
||||
bWaitForRelease=True
|
||||
TransientSoundVolume=1.000000
|
||||
PreFireAnim="FireLoad"
|
||||
FireLoopAnim=
|
||||
FireEndAnim=
|
||||
PreFireAnimRate=2.000000
|
||||
TweenTime=0.000000
|
||||
FireSound=Sound'UT2341Weapons_Sounds.Hammer.ImpactFireRelease'
|
||||
FireForce="ShieldGunFire"
|
||||
FireRate=0.600000
|
||||
AmmoClass=Class'UT2341WeaponsReducedv1a.UT2341HammerAmmo'
|
||||
ShakeRotTime=2.000000
|
||||
ShakeOffsetMag=(X=-20.000000)
|
||||
ShakeOffsetRate=(X=-1000.000000)
|
||||
ShakeOffsetTime=2.000000
|
||||
BotRefireRate=1.000000
|
||||
WarnTargetPct=0.100000
|
||||
FlashEmitterClass=Class'XEffects.ForceRingA'
|
||||
}
|
||||
141
Sources/Classes/UT2341Minigun.uc
Normal file
141
Sources/Classes/UT2341Minigun.uc
Normal file
@@ -0,0 +1,141 @@
|
||||
//=============================================================================
|
||||
// Minigun
|
||||
//=============================================================================
|
||||
class UT2341Minigun extends Minigun
|
||||
config(user);
|
||||
|
||||
#EXEC OBJ LOAD FILE=InterfaceContent.utx
|
||||
|
||||
simulated function PostBeginPlay()
|
||||
{
|
||||
Super.PostBeginPlay();
|
||||
|
||||
if ( Level.NetMode == NM_DedicatedServer )
|
||||
return;
|
||||
|
||||
ShellCaseEmitter = spawn(class'ShellSpewer');
|
||||
if ( ShellCaseEmitter != None )
|
||||
{
|
||||
ShellCaseEmitter.Trigger(Self, Instigator); //turn off
|
||||
AttachToBone(ShellCaseEmitter, 'Bone_CaseEjector');
|
||||
}
|
||||
}
|
||||
|
||||
simulated function bool ConsumeAmmo(int Mode, float load, optional bool bAmountNeededIsMax)
|
||||
{
|
||||
local int AmountNeeded;
|
||||
|
||||
if ( bNoAmmoInstances )
|
||||
{
|
||||
if ( AmmoClass[0] == AmmoClass[mode] )
|
||||
mode = 0;
|
||||
AmountNeeded = int(load);
|
||||
if (bAmountNeededIsMax && AmmoCharge[mode] < AmountNeeded)
|
||||
AmountNeeded = AmmoCharge[mode];
|
||||
|
||||
if (AmmoCharge[mode] < AmountNeeded)
|
||||
{
|
||||
CheckOutOfAmmo();
|
||||
return false; // Can't do it
|
||||
}
|
||||
|
||||
AmmoCharge[mode] -= AmountNeeded;
|
||||
NetUpdateTime = Level.TimeSeconds - 1;
|
||||
|
||||
if (Level.NetMode == NM_StandAlone || Level.NetMode == NM_ListenServer)
|
||||
CheckOutOfAmmo();
|
||||
|
||||
return true;
|
||||
}
|
||||
if (Ammo[Mode] != None)
|
||||
return Ammo[Mode].UseAmmo(int(load), bAmountNeededIsMax);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
simulated function OutOfAmmo()
|
||||
{
|
||||
log("OUTOFAMMO");
|
||||
if ( (Instigator == None) || !Instigator.IsLocallyControlled() || HasAmmo() )
|
||||
return;
|
||||
|
||||
Instigator.AmbientSound = None;
|
||||
Instigator.SoundVolume = Instigator.default.SoundVolume;
|
||||
DoAutoSwitch();
|
||||
}
|
||||
|
||||
function byte BestMode()
|
||||
{
|
||||
local float EnemyDist;
|
||||
local bot B;
|
||||
|
||||
B = Bot(Instigator.Controller);
|
||||
if ( (B == None) || (B.Enemy == None) )
|
||||
return 0;
|
||||
|
||||
if ( FireMode[0].bIsFiring )
|
||||
return 0;
|
||||
else if ( FireMode[1].bIsFiring )
|
||||
return 1;
|
||||
EnemyDist = VSize(B.Enemy.Location - Instigator.Location);
|
||||
if ( EnemyDist < 2000 )
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
// end AI Interface
|
||||
|
||||
simulated function SpawnShells(float amountPerSec)
|
||||
{
|
||||
if(ShellCaseEmitter == None || !FirstPersonView())
|
||||
return;
|
||||
if ( Bot(Instigator.Controller) != None )
|
||||
{
|
||||
ShellCaseEmitter.Destroy();
|
||||
return;
|
||||
}
|
||||
|
||||
ShellCaseEmitter.mRegenRange[0] = amountPerSec;
|
||||
ShellCaseEmitter.mRegenRange[1] = amountPerSec;
|
||||
ShellCaseEmitter.Trigger(self, Instigator);
|
||||
}
|
||||
|
||||
// Client-side only: update the first person barrel rotation
|
||||
simulated function UpdateRoll(float dt, float speed, int mode)
|
||||
{
|
||||
local rotator r;
|
||||
|
||||
if (Level.NetMode == NM_DedicatedServer)
|
||||
return;
|
||||
|
||||
if (mode == CurrentMode) // to limit to one mode
|
||||
{
|
||||
// log(self$" updateroll (mode="$mode$") speed="$speed);
|
||||
|
||||
RollSpeed = speed;
|
||||
CurrentRoll += dt*RollSpeed;
|
||||
CurrentRoll = CurrentRoll % 65536.f;
|
||||
r.Roll = int(CurrentRoll);
|
||||
SetBoneRotation('Bone_Barrels', r, 0, Blend);
|
||||
}
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
FireModeClass(0)=Class'UT2341WeaponsReducedv1a.UT2341MinigunFire'
|
||||
FireModeClass(1)=Class'UT2341WeaponsReducedv1a.UT2341MinigunAltFire'
|
||||
SelectSound=Sound'UT2341Weapons_Sounds.Minigun.MiniSelect'
|
||||
bNoAmmoInstances=False
|
||||
Description="Classification: Gatling Gun||Primary Fire: Bullets are sprayed forth at a medium to fast rate of fire and good accuracy.||Secondary Fire: Minigun fires twice as fast and is half as accurate.||Techniques: Secondary fire is much more useful at close range, but can eat up tons of ammunition."
|
||||
EffectOffset=(Y=22.000000,Z=-10.000000)
|
||||
DisplayFOV=80.000000
|
||||
SmallViewOffset=(X=0.000000,Y=2.000000,Z=-5.000000)
|
||||
InventoryGroup=7
|
||||
PickupClass=Class'UT2341WeaponsReducedv1a.UT2341MinigunPickup'
|
||||
PlayerViewOffset=(X=0.000000,Y=2.000000,Z=-5.000000)
|
||||
AttachmentClass=Class'UT2341WeaponsReducedv1a.UT2341MinigunAttachment'
|
||||
IconMaterial=Texture'UT2341Weapons_Tex.Icons.Icon_Minigun'
|
||||
IconCoords=(X1=0,Y1=0,X2=128,Y2=32)
|
||||
Mesh=SkeletalMesh'UT2341Weapons_Anims.UTminigun_FP'
|
||||
DrawScale=1.000000
|
||||
HighDetailOverlay=None
|
||||
}
|
||||
14
Sources/Classes/UT2341MinigunAltFire.uc
Normal file
14
Sources/Classes/UT2341MinigunAltFire.uc
Normal file
@@ -0,0 +1,14 @@
|
||||
class UT2341MinigunAltFire extends UT2341MinigunFire;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
WindDownModifier=1.000000
|
||||
BarrelRotationsPerSec=2.500000
|
||||
FiringSound=Sound'UT2341Weapons_Sounds.Minigun.M2AltFire'
|
||||
MinigunSoundVolume=240
|
||||
WindUpTime=0.500000
|
||||
FiringForce="minialtfireb"
|
||||
PreFireTime=0.100000
|
||||
FireLoopAnimRate=3.000000
|
||||
Spread=0.120000
|
||||
}
|
||||
20
Sources/Classes/UT2341MinigunAmmo.uc
Normal file
20
Sources/Classes/UT2341MinigunAmmo.uc
Normal file
@@ -0,0 +1,20 @@
|
||||
class UT2341MinigunAmmo extends Ammunition;
|
||||
|
||||
#EXEC OBJ LOAD FILE=InterfaceContent.utx
|
||||
|
||||
simulated function PostNetReceive()
|
||||
{
|
||||
if (AmmoAmount == 0)
|
||||
Pawn(Owner).Weapon.OutOfAmmo();
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
MaxAmmo=199
|
||||
InitialAmount=100
|
||||
PickupClass=Class'UT2341WeaponsReducedv1a.UT2341MinigunAmmoPickup'
|
||||
IconMaterial=Texture'HUDContent.Generic.HUD'
|
||||
IconCoords=(X1=338,Y1=40,X2=393,Y2=79)
|
||||
ItemName="Bullets"
|
||||
bNetNotify=True
|
||||
}
|
||||
21
Sources/Classes/UT2341MinigunAmmoPickup.uc
Normal file
21
Sources/Classes/UT2341MinigunAmmoPickup.uc
Normal file
@@ -0,0 +1,21 @@
|
||||
class UT2341MinigunAmmoPickup extends UTAmmoPickup;
|
||||
|
||||
function RespawnEffect()
|
||||
{
|
||||
spawn(class'FX_PickupRespawn');
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
AmmoAmount=50
|
||||
InventoryType=Class'UT2341WeaponsReducedv1a.UT2341MinigunAmmo'
|
||||
PickupMessage="You picked up 50 bullets."
|
||||
PickupSound=Sound'UT2341Weapons_Sounds.General.AmmoSnd'
|
||||
PickupForce="MinigunAmmoPickup"
|
||||
DrawType=DT_StaticMesh
|
||||
StaticMesh=StaticMesh'UT2341Weapons_SM.General.UTminigunammo'
|
||||
DrawScale=0.300000
|
||||
PrePivot=(Z=44.000000)
|
||||
AmbientGlow=64
|
||||
CollisionHeight=12.750000
|
||||
}
|
||||
133
Sources/Classes/UT2341MinigunAttachment.uc
Normal file
133
Sources/Classes/UT2341MinigunAttachment.uc
Normal file
@@ -0,0 +1,133 @@
|
||||
class UT2341MinigunAttachment extends MinigunAttachment;
|
||||
|
||||
var Emitter MuzFlashNew;
|
||||
var class<Emitter> NewFlashClass;
|
||||
|
||||
function Destroyed()
|
||||
{
|
||||
if (mTracer != None)
|
||||
mTracer.Destroy();
|
||||
|
||||
if (MuzFlashNew != None)
|
||||
MuzFlashNew.Destroy();
|
||||
|
||||
if (mShellCaseEmitter != None)
|
||||
mShellCaseEmitter.Destroy();
|
||||
|
||||
Super(xWeaponAttachment).Destroyed();
|
||||
}
|
||||
|
||||
simulated function UpdateRoll(float dt)
|
||||
{
|
||||
local rotator r;
|
||||
|
||||
UpdateRollTime(false);
|
||||
|
||||
if (mRollInc <= 0.f)
|
||||
return;
|
||||
|
||||
mCurrentRoll += dt*mRollInc;
|
||||
mCurrentRoll = mCurrentRoll % 65536.f;
|
||||
r.Roll = int(mCurrentRoll);
|
||||
|
||||
SetBoneRotation('Bone_Barrels', r, 0, 1.f);
|
||||
}
|
||||
|
||||
simulated function vector GetTracerStart()
|
||||
{
|
||||
local Pawn p;
|
||||
|
||||
p = Pawn(Owner);
|
||||
|
||||
if ( (p != None) && p.IsFirstPerson() && p.Weapon != None )
|
||||
{
|
||||
// 1st person
|
||||
return p.Weapon.GetEffectStart();
|
||||
}
|
||||
|
||||
// 3rd person
|
||||
if ( MuzFlashNew != None )
|
||||
return MuzFlashNew.Location;
|
||||
else
|
||||
return Location;
|
||||
}
|
||||
|
||||
simulated event ThirdPersonEffects()
|
||||
{
|
||||
local PlayerController PC;
|
||||
|
||||
if ( (Level.NetMode == NM_DedicatedServer) || (Instigator == None) )
|
||||
return;
|
||||
|
||||
if ( FlashCount > 0 )
|
||||
{
|
||||
PC = Level.GetLocalPlayerController();
|
||||
if ( OldSpawnHitCount != SpawnHitCount )
|
||||
{
|
||||
OldSpawnHitCount = SpawnHitCount;
|
||||
GetHitInfo();
|
||||
PC = Level.GetLocalPlayerController();
|
||||
if ( (Instigator.Controller == PC) || (VSize(PC.ViewTarget.Location - mHitLocation) < 2000) )
|
||||
{
|
||||
Spawn(class'HitEffect'.static.GetHitEffect(mHitActor, mHitLocation, mHitNormal),,, mHitLocation, Rotator(mHitNormal));
|
||||
CheckForSplash();
|
||||
}
|
||||
}
|
||||
if ( (Level.TimeSeconds - LastRenderTime > 0.2) && (Instigator.Controller != PC) )
|
||||
return;
|
||||
|
||||
WeaponLight();
|
||||
|
||||
if (FiringMode == 0)
|
||||
{
|
||||
mTracerInterval = mTracerIntervalPrimary;
|
||||
mRollInc = 65536.f*2.f;
|
||||
}
|
||||
else
|
||||
{
|
||||
mTracerInterval = mTracerIntervalSecondary;
|
||||
mRollInc = 65536.f *4.f;
|
||||
}
|
||||
|
||||
if ( Level.bDropDetail || Level.DetailMode == DM_Low )
|
||||
mTracerInterval *= 2.0;
|
||||
|
||||
UpdateRollTime(true);
|
||||
|
||||
UpdateTracer();
|
||||
|
||||
if (MuzFlashNew == None)
|
||||
{
|
||||
MuzFlashNew = Spawn(NewFlashClass);
|
||||
AttachToBone(MuzFlashNew, 'tip');
|
||||
}
|
||||
if (MuzFlashNew != None)
|
||||
{
|
||||
MuzFlashNew.Trigger(self, None);
|
||||
}
|
||||
|
||||
if ( (mShellCaseEmitter == None) && (Level.DetailMode != DM_Low) && !Level.bDropDetail )
|
||||
{
|
||||
mShellCaseEmitter = Spawn(mShellCaseEmitterClass);
|
||||
if ( mShellCaseEmitter != None )
|
||||
AttachToBone(mShellCaseEmitter, 'Bone_CaseEjector');
|
||||
}
|
||||
if (mShellCaseEmitter != None)
|
||||
mShellCaseEmitter.mStartParticles++;
|
||||
}
|
||||
else
|
||||
{
|
||||
GotoState('');
|
||||
}
|
||||
|
||||
Super(xWeaponAttachment).ThirdPersonEffects();
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
NewFlashClass=Class'UT2341WeaponsReducedv1a.FX_EnforcerMuzFlash'
|
||||
mTracerIntervalPrimary=0.130000
|
||||
mTracerIntervalSecondary=0.080000
|
||||
Mesh=SkeletalMesh'UT2341Weapons_Anims.UTminigun3rd'
|
||||
DrawScale=0.900000
|
||||
}
|
||||
195
Sources/Classes/UT2341MinigunFire.uc
Normal file
195
Sources/Classes/UT2341MinigunFire.uc
Normal file
@@ -0,0 +1,195 @@
|
||||
class UT2341MinigunFire extends MinigunFire;
|
||||
|
||||
var float WindDownModifier;
|
||||
var() class<Emitter> NewFlashClass;
|
||||
var Emitter NewFlashEmitter;
|
||||
|
||||
var Sound WindUpSound;
|
||||
|
||||
function InitEffects()
|
||||
{
|
||||
// don't even spawn on server
|
||||
if ( (Level.NetMode == NM_DedicatedServer) || (AIController(Instigator.Controller) != None) )
|
||||
return;
|
||||
if ( (NewFlashClass != None) && ((NewFlashEmitter == None) || NewFlashEmitter.bDeleteMe) )
|
||||
{
|
||||
NewFlashEmitter = Weapon.Spawn(NewFlashClass);
|
||||
Weapon.AttachToBone(NewFlashEmitter, 'Flash');
|
||||
}
|
||||
if ( (SmokeEmitterClass != None) && ((SmokeEmitter == None) || SmokeEmitter.bDeleteMe) )
|
||||
{
|
||||
SmokeEmitter = Weapon.Spawn(SmokeEmitterClass);
|
||||
}
|
||||
}
|
||||
|
||||
function DrawMuzzleFlash(Canvas Canvas)
|
||||
{
|
||||
// Draw smoke first
|
||||
if (SmokeEmitter != None && SmokeEmitter.Base != Weapon)
|
||||
{
|
||||
SmokeEmitter.SetLocation( Weapon.GetEffectStart() );
|
||||
Canvas.DrawActor( SmokeEmitter, false, false, Weapon.DisplayFOV );
|
||||
}
|
||||
|
||||
if (NewFlashEmitter != None && NewFlashEmitter.Base != Weapon)
|
||||
{
|
||||
NewFlashEmitter.SetLocation( Weapon.GetEffectStart() );
|
||||
Canvas.DrawActor( NewFlashEmitter, false, false, Weapon.DisplayFOV );
|
||||
}
|
||||
}
|
||||
|
||||
function FlashMuzzleFlash()
|
||||
{
|
||||
local rotator r;
|
||||
|
||||
r.Roll = Rand(65535);
|
||||
Weapon.SetBoneRotation('Bone_Flash', r, 0, 1.f);
|
||||
if (NewFlashEmitter != None)
|
||||
NewFlashEmitter.Trigger(Weapon, Instigator);
|
||||
}
|
||||
|
||||
simulated function DestroyEffects()
|
||||
{
|
||||
if (NewFlashEmitter != None)
|
||||
NewFlashEmitter.Destroy();
|
||||
|
||||
if (SmokeEmitter != None)
|
||||
SmokeEmitter.Destroy();
|
||||
}
|
||||
|
||||
auto state Idle
|
||||
{
|
||||
function bool IsIdle()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
function BeginState()
|
||||
{
|
||||
PlayAmbientSound(None);
|
||||
StopRolling();
|
||||
}
|
||||
|
||||
function EndState()
|
||||
{
|
||||
PlayAmbientSound(WindUpSound);
|
||||
}
|
||||
|
||||
function StartFiring()
|
||||
{
|
||||
RollSpeed = 0;
|
||||
FireTime = (RollSpeed/MaxRollSpeed) * WindUpTime;
|
||||
GotoState('WindUp');
|
||||
}
|
||||
}
|
||||
|
||||
state WindUp
|
||||
{
|
||||
function BeginState()
|
||||
{
|
||||
ClientPlayForceFeedback(WindingForce); // jdf
|
||||
}
|
||||
|
||||
function EndState()
|
||||
{
|
||||
if (ThisModeNum == 0)
|
||||
{
|
||||
if ( (Weapon == None) || !Weapon.GetFireMode(1).bIsFiring )
|
||||
StopForceFeedback(WindingForce);
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( (Weapon == None) || !Weapon.GetFireMode(0).bIsFiring )
|
||||
StopForceFeedback(WindingForce);
|
||||
}
|
||||
}
|
||||
|
||||
function ModeTick(float dt)
|
||||
{
|
||||
FireTime += dt;
|
||||
RollSpeed = (FireTime/WindUpTime) * MaxRollSpeed;
|
||||
|
||||
if ( !bIsFiring )
|
||||
{
|
||||
GotoState('WindDown');
|
||||
return;
|
||||
}
|
||||
|
||||
if (RollSpeed >= MaxRollSpeed)
|
||||
{
|
||||
RollSpeed = MaxRollSpeed;
|
||||
FireTime = WindUpTime;
|
||||
Gun.UpdateRoll(dt, RollSpeed, ThisModeNum);
|
||||
GotoState('FireLoop');
|
||||
return;
|
||||
}
|
||||
|
||||
Gun.UpdateRoll(dt, RollSpeed, ThisModeNum);
|
||||
}
|
||||
|
||||
function StopFiring()
|
||||
{
|
||||
GotoState('WindDown');
|
||||
}
|
||||
}
|
||||
|
||||
state WindDown
|
||||
{
|
||||
function BeginState()
|
||||
{
|
||||
ClientPlayForceFeedback(WindingForce); // jdf
|
||||
}
|
||||
|
||||
function EndState()
|
||||
{
|
||||
if (ThisModeNum == 0)
|
||||
{
|
||||
if ( (Weapon == None) || !Weapon.GetFireMode(1).bIsFiring )
|
||||
StopForceFeedback(WindingForce);
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( (Weapon == None) || !Weapon.GetFireMode(0).bIsFiring )
|
||||
StopForceFeedback(WindingForce);
|
||||
}
|
||||
}
|
||||
|
||||
function ModeTick(float dt)
|
||||
{
|
||||
FireTime -= dt / WindDownModifier;
|
||||
RollSpeed = (FireTime/WindUpTime) * MaxRollSpeed;
|
||||
|
||||
if (RollSpeed <= 0.f)
|
||||
{
|
||||
RollSpeed = 0.f;
|
||||
FireTime = 0.f;
|
||||
Gun.UpdateRoll(dt, RollSpeed, ThisModeNum);
|
||||
GotoState('Idle');
|
||||
return;
|
||||
}
|
||||
|
||||
Gun.UpdateRoll(dt, RollSpeed, ThisModeNum);
|
||||
}
|
||||
|
||||
function StartFiring()
|
||||
{
|
||||
GotoState('WindUp');
|
||||
}
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
WindDownModifier=12.000000
|
||||
NewFlashClass=Class'UT2341WeaponsReducedv1a.FX_EnforcerMuzFlash'
|
||||
WindUpSound=Sound'UT2341Weapons_Sounds.Minigun.M2WindUp'
|
||||
BarrelRotationsPerSec=1.250000
|
||||
WindingSound=Sound'UT2341Weapons_Sounds.Minigun.M2WindDown'
|
||||
FiringSound=Sound'UT2341Weapons_Sounds.Minigun.M2RegFire'
|
||||
WindUpTime=0.050000
|
||||
DamageType=Class'UT2341WeaponsReducedv1a.DamType_MinigunBullet'
|
||||
DamageMin=15
|
||||
DamageMax=21
|
||||
PreFireTime=0.100000
|
||||
AmmoClass=Class'UT2341WeaponsReducedv1a.UT2341MinigunAmmo'
|
||||
Spread=0.050000
|
||||
}
|
||||
36
Sources/Classes/UT2341MinigunPickup.uc
Normal file
36
Sources/Classes/UT2341MinigunPickup.uc
Normal file
@@ -0,0 +1,36 @@
|
||||
//=============================================================================
|
||||
// Minigun.
|
||||
//=============================================================================
|
||||
class UT2341MinigunPickup extends UTWeaponPickup;
|
||||
|
||||
static function StaticPrecache(LevelInfo L)
|
||||
{
|
||||
L.AddPrecacheMaterial(Texture'XEffects.ShellCasingTex');
|
||||
L.AddPrecacheMaterial(Texture'AW-2004Explosions.Part_explode2s');
|
||||
L.AddPrecacheMaterial(Texture'AW-2004Particles.TracerShot');
|
||||
L.AddPrecacheStaticMesh(StaticMesh'UT2341Weapons_SM.UTMinigun');
|
||||
}
|
||||
|
||||
simulated function UpdatePrecacheMaterials()
|
||||
{
|
||||
Level.AddPrecacheMaterial(Texture'XEffects.ShellCasingTex');
|
||||
Level.AddPrecacheMaterial(Texture'AW-2004Explosions.Part_explode2s');
|
||||
Level.AddPrecacheMaterial(Texture'AW-2004Particles.TracerShot');
|
||||
|
||||
super.UpdatePrecacheMaterials();
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
MaxDesireability=0.730000
|
||||
InventoryType=Class'UT2341WeaponsReducedv1a.UT2341Minigun'
|
||||
PickupMessage="You got the Minigun."
|
||||
PickupSound=Sound'UT2341Weapons_Sounds.General.WeaponPickup'
|
||||
PickupForce="MinigunPickup"
|
||||
DrawType=DT_StaticMesh
|
||||
StaticMesh=StaticMesh'UT2341Weapons_SM.General.UTminigun'
|
||||
DrawScale=0.150000
|
||||
PrePivot=(Z=40.000000)
|
||||
AmbientGlow=64
|
||||
RotationRate=(Yaw=5000)
|
||||
}
|
||||
366
Sources/Classes/UT2341PulseAltFire.uc
Normal file
366
Sources/Classes/UT2341PulseAltFire.uc
Normal file
@@ -0,0 +1,366 @@
|
||||
class UT2341PulseAltFire extends WeaponFire;
|
||||
|
||||
var UT2341PulseBeamEffect Beam;
|
||||
var class<UT2341PulseBeamEffect> BeamEffectClass;
|
||||
|
||||
var() class<DamageType> DamageType;
|
||||
var() int Damage;
|
||||
var() float MomentumTransfer;
|
||||
|
||||
var() float TraceRange;
|
||||
|
||||
var float UpTime;
|
||||
|
||||
var bool bDoHit;
|
||||
var() bool bFeedbackDeath;
|
||||
var bool bInitAimError;
|
||||
var bool bLinkFeedbackPlaying;
|
||||
var bool bStartFire;
|
||||
var byte LinkVolume;
|
||||
var byte SentLinkVolume;
|
||||
|
||||
var rotator DesiredAimError, CurrentAimError;
|
||||
|
||||
var Sound BeamSound;
|
||||
|
||||
var() class<Emitter> PulseFlashClass;
|
||||
var Emitter PulseFlashEmitter;
|
||||
|
||||
simulated function InitEffects()
|
||||
{
|
||||
// don't even spawn on server
|
||||
if ( (Level.NetMode == NM_DedicatedServer) || (AIController(Instigator.Controller) != None) )
|
||||
return;
|
||||
if ( (PulseFlashClass != None) && ((PulseFlashEmitter == None) || PulseFlashEmitter.bDeleteMe) )
|
||||
{
|
||||
PulseFlashEmitter = Weapon.Spawn(PulseFlashClass);
|
||||
Weapon.AttachToBone(PulseFlashEmitter, 'tip');
|
||||
}
|
||||
if ( (SmokeEmitterClass != None) && ((SmokeEmitter == None) || SmokeEmitter.bDeleteMe) )
|
||||
{
|
||||
SmokeEmitter = Weapon.Spawn(SmokeEmitterClass);
|
||||
}
|
||||
}
|
||||
|
||||
function DrawMuzzleFlash(Canvas Canvas)
|
||||
{
|
||||
// Draw smoke first
|
||||
if (SmokeEmitter != None && SmokeEmitter.Base != Weapon)
|
||||
{
|
||||
SmokeEmitter.SetLocation( Weapon.GetEffectStart() );
|
||||
Canvas.DrawActor( SmokeEmitter, false, false, Weapon.DisplayFOV );
|
||||
}
|
||||
|
||||
if (PulseFlashEmitter != None && PulseFlashEmitter.Base != Weapon)
|
||||
{
|
||||
PulseFlashEmitter.SetLocation( Weapon.GetEffectStart() );
|
||||
Canvas.DrawActor( PulseFlashEmitter, false, false, Weapon.DisplayFOV );
|
||||
}
|
||||
}
|
||||
|
||||
function FlashMuzzleFlash()
|
||||
{
|
||||
if (PulseFlashEmitter != None)
|
||||
PulseFlashEmitter.Trigger(Weapon, Instigator);
|
||||
}
|
||||
|
||||
simulated function DestroyEffects()
|
||||
{
|
||||
if (PulseFlashEmitter != None)
|
||||
PulseFlashEmitter.Destroy();
|
||||
|
||||
if (SmokeEmitter != None)
|
||||
SmokeEmitter.Destroy();
|
||||
|
||||
if ( Level.NetMode != NM_Client )
|
||||
{
|
||||
if ( Beam != None )
|
||||
Beam.Destroy();
|
||||
}
|
||||
}
|
||||
|
||||
simulated function bool myHasAmmo( )
|
||||
{
|
||||
return (Weapon.AmmoAmount(ThisModeNum) >= AmmoPerFire);
|
||||
}
|
||||
|
||||
simulated function Rotator GetPlayerAim( vector StartTrace, float InAimError )
|
||||
{
|
||||
return AdjustAim(StartTrace, InAimError);
|
||||
}
|
||||
|
||||
simulated function ModeTick(float dt)
|
||||
{
|
||||
local Vector StartTrace, EndTrace, X, Y, Z;
|
||||
local Vector HitLocation, HitNormal, EndEffect;
|
||||
local Actor Other;
|
||||
local Rotator Aim;
|
||||
local float Step;
|
||||
local DestroyableObjective HealObjective;
|
||||
local int AdjustedDamage;
|
||||
local UT2341PulseBeamEffect LB;
|
||||
|
||||
if ( !bIsFiring )
|
||||
{
|
||||
bInitAimError = true;
|
||||
return;
|
||||
}
|
||||
|
||||
if ( myHasAmmo() && ((UpTime > 0.0) || (Instigator.Role < ROLE_Authority)) )
|
||||
{
|
||||
UpTime -= dt;
|
||||
|
||||
// the to-hit trace always starts right in front of the eye
|
||||
Weapon.GetViewAxes(X, Y, Z);
|
||||
StartTrace = GetFireStart( X, Y, Z);
|
||||
|
||||
if ( Instigator.Role < ROLE_Authority )
|
||||
{
|
||||
if ( Beam == None )
|
||||
ForEach Weapon.DynamicActors(class'UT2341PulseBeamEffect', LB )
|
||||
if ( !LB.bDeleteMe && (LB.Instigator != None) && (LB.Instigator == Instigator) )
|
||||
{
|
||||
Beam = LB;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ( Instigator.Role == ROLE_Authority )
|
||||
{
|
||||
if ( bDoHit )
|
||||
Weapon.ConsumeAmmo(ThisModeNum, AmmoPerFire);
|
||||
}
|
||||
|
||||
if ( Bot(Instigator.Controller) != None )
|
||||
{
|
||||
if ( bInitAimError )
|
||||
{
|
||||
CurrentAimError = AdjustAim(StartTrace, AimError);
|
||||
bInitAimError = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
BoundError();
|
||||
CurrentAimError.Yaw = CurrentAimError.Yaw + Instigator.Rotation.Yaw;
|
||||
}
|
||||
|
||||
// smooth aim error changes
|
||||
Step = 7500.0 * dt;
|
||||
if ( DesiredAimError.Yaw ClockWiseFrom CurrentAimError.Yaw )
|
||||
{
|
||||
CurrentAimError.Yaw += Step;
|
||||
if ( !(DesiredAimError.Yaw ClockWiseFrom CurrentAimError.Yaw) )
|
||||
{
|
||||
CurrentAimError.Yaw = DesiredAimError.Yaw;
|
||||
DesiredAimError = AdjustAim(StartTrace, AimError);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
CurrentAimError.Yaw -= Step;
|
||||
if ( DesiredAimError.Yaw ClockWiseFrom CurrentAimError.Yaw )
|
||||
{
|
||||
CurrentAimError.Yaw = DesiredAimError.Yaw;
|
||||
DesiredAimError = AdjustAim(StartTrace, AimError);
|
||||
}
|
||||
}
|
||||
CurrentAimError.Yaw = CurrentAimError.Yaw - Instigator.Rotation.Yaw;
|
||||
if ( BoundError() )
|
||||
DesiredAimError = AdjustAim(StartTrace, AimError);
|
||||
CurrentAimError.Yaw = CurrentAimError.Yaw + Instigator.Rotation.Yaw;
|
||||
|
||||
if ( Instigator.Controller.Target == None )
|
||||
Aim = Rotator(Instigator.Controller.FocalPoint - StartTrace);
|
||||
else
|
||||
Aim = Rotator(Instigator.Controller.Target.Location - StartTrace);
|
||||
|
||||
Aim.Yaw = CurrentAimError.Yaw;
|
||||
|
||||
// save difference
|
||||
CurrentAimError.Yaw = CurrentAimError.Yaw - Instigator.Rotation.Yaw;
|
||||
}
|
||||
else
|
||||
Aim = GetPlayerAim(StartTrace, AimError);
|
||||
|
||||
X = Vector(Aim);
|
||||
EndTrace = StartTrace + TraceRange * X;
|
||||
|
||||
Other = Weapon.Trace(HitLocation, HitNormal, EndTrace, StartTrace, true);
|
||||
if ( Other != None && Other != Instigator )
|
||||
EndEffect = HitLocation - X * 15;
|
||||
else
|
||||
EndEffect = EndTrace- X * 15;
|
||||
|
||||
if ( Beam != None )
|
||||
Beam.EndEffect = EndEffect;
|
||||
|
||||
if (Instigator.Role < ROLE_Authority)
|
||||
return;
|
||||
|
||||
if ( Other != None && Other != Instigator )
|
||||
{
|
||||
// beam is updated every frame, but damage is only done based on the firing rate
|
||||
if ( bDoHit )
|
||||
{
|
||||
Instigator.MakeNoise(1.0);
|
||||
|
||||
AdjustedDamage = Damage * 1.5;
|
||||
|
||||
if ( !Other.bWorldGeometry )
|
||||
{
|
||||
HealObjective = DestroyableObjective(Other);
|
||||
if ( HealObjective == None )
|
||||
HealObjective = DestroyableObjective(Other.Owner);
|
||||
if ( HealObjective != None)
|
||||
{
|
||||
if ( HealObjective.TeamLink(Instigator.GetTeamNum()) )
|
||||
{
|
||||
if (!HealObjective.HealDamage(AdjustedDamage, Instigator.Controller, DamageType))
|
||||
UT2341PulseGun(Weapon).ConsumeAmmo(ThisModeNum, -AmmoPerFire);
|
||||
}
|
||||
}
|
||||
else if (Vehicle(Other) != None)
|
||||
{
|
||||
if(!Vehicle(Other).HealDamage(AdjustedDamage, Instigator.Controller, DamageType))
|
||||
UT2341PulseGun(Weapon).ConsumeAmmo(ThisModeNum, -AmmoPerFire);
|
||||
}
|
||||
else Other.TakeDamage(Damage, Instigator, HitLocation, MomentumTransfer*X, DamageType);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// beam effect is created and destroyed when firing starts and stops
|
||||
if ( (Beam == None) && bIsFiring )
|
||||
{
|
||||
Beam = Weapon.Spawn( BeamEffectClass, Instigator );
|
||||
// vary link volume to make sure it gets replicated (in case owning player changed it client side)
|
||||
if ( SentLinkVolume == Default.LinkVolume )
|
||||
SentLinkVolume = Default.LinkVolume + 1;
|
||||
else
|
||||
SentLinkVolume = Default.LinkVolume;
|
||||
}
|
||||
|
||||
if ( Beam != None )
|
||||
{
|
||||
Instigator.AmbientSound = BeamSound;
|
||||
Instigator.SoundVolume = SentLinkVolume;
|
||||
Beam.bHitSomething = (Other != None);
|
||||
Beam.EndEffect = EndEffect;
|
||||
}
|
||||
}
|
||||
else
|
||||
StopFiring();
|
||||
|
||||
bStartFire = false;
|
||||
bDoHit = false;
|
||||
}
|
||||
|
||||
function bool BoundError()
|
||||
{
|
||||
CurrentAimError.Yaw = CurrentAimError.Yaw & 65535;
|
||||
if ( CurrentAimError.Yaw > 2048 )
|
||||
{
|
||||
if ( CurrentAimError.Yaw < 32768 )
|
||||
{
|
||||
CurrentAimError.Yaw = 2048;
|
||||
return true;
|
||||
}
|
||||
else if ( CurrentAimError.Yaw < 63487 )
|
||||
{
|
||||
CurrentAimError.Yaw = 63487;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
event ModeDoFire()
|
||||
{
|
||||
Load = 0; //don't use ammo here - it will be consumed in ModeTick() where it's sync'ed with damage dealing
|
||||
Super.ModeDoFire();
|
||||
}
|
||||
|
||||
function DoFireEffect()
|
||||
{
|
||||
bDoHit = true;
|
||||
UpTime = FireRate+0.1;
|
||||
}
|
||||
|
||||
function StopFiring()
|
||||
{
|
||||
if (Instigator.AmbientSound == BeamSound)
|
||||
{
|
||||
Instigator.AmbientSound = None;
|
||||
Instigator.SoundVolume = Instigator.Default.SoundVolume;
|
||||
}
|
||||
if (Beam != None)
|
||||
{
|
||||
Beam.Destroy();
|
||||
Beam = None;
|
||||
}
|
||||
bStartFire = true;
|
||||
bFeedbackDeath = false;
|
||||
}
|
||||
|
||||
simulated function vector GetFireStart(vector X, vector Y, vector Z)
|
||||
{
|
||||
return Instigator.Location + Instigator.EyePosition() + X*Instigator.CollisionRadius;
|
||||
}
|
||||
|
||||
function StartBerserk()
|
||||
{
|
||||
if ( (Level.GRI != None) && (Level.GRI.WeaponBerserk > 1.0) )
|
||||
return;
|
||||
|
||||
Damage = default.Damage * 1.33;
|
||||
}
|
||||
|
||||
function StopBerserk()
|
||||
{
|
||||
if ( (Level.GRI != None) && (Level.GRI.WeaponBerserk > 1.0) )
|
||||
return;
|
||||
|
||||
Damage = default.Damage;
|
||||
}
|
||||
|
||||
function PlayFiring()
|
||||
{
|
||||
if ( Weapon.Mesh != None )
|
||||
{
|
||||
if (FireCount == 0)
|
||||
Weapon.PlayAnim(FireAnim, FireAnimRate, TweenTime);
|
||||
}
|
||||
Weapon.PlayOwnedSound(FireSound,SLOT_Interact,TransientSoundVolume,,TransientSoundRadius,Default.FireAnimRate/FireAnimRate,false);
|
||||
ClientPlayForceFeedback(FireForce); // jdf
|
||||
|
||||
FireCount++;
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
BeamEffectClass=Class'UT2341WeaponsReducedv1a.UT2341PulseBeamEffect'
|
||||
DamageType=Class'UT2341WeaponsReducedv1a.DamType_Pulse'
|
||||
Damage=10
|
||||
MomentumTransfer=2000.000000
|
||||
TraceRange=1100.000000
|
||||
bInitAimError=True
|
||||
LinkVolume=240
|
||||
BeamSound=Sound'UT2341Weapons_Sounds.PulseGun.PulseBolt'
|
||||
PulseFlashClass=Class'UT2341WeaponsReducedv1a.FX_PulseMuzFlash'
|
||||
bPawnRapidFireAnim=True
|
||||
FireAnim="FireAltStart"
|
||||
FireLoopAnim="FireAltLoop"
|
||||
FireEndAnim="FireAltEnd"
|
||||
NoAmmoSound=ProceduralSound'WeaponSounds.PReload5.P1Reload5'
|
||||
FireRate=0.100000
|
||||
AmmoClass=Class'UT2341WeaponsReducedv1a.UT2341PulseAmmo'
|
||||
AmmoPerFire=1
|
||||
ShakeRotMag=(Z=60.000000)
|
||||
ShakeRotRate=(Z=4000.000000)
|
||||
ShakeRotTime=6.000000
|
||||
ShakeOffsetMag=(Y=1.000000,Z=1.000000)
|
||||
ShakeOffsetRate=(X=1000.000000,Y=1000.000000,Z=1000.000000)
|
||||
ShakeOffsetTime=3.000000
|
||||
BotRefireRate=0.990000
|
||||
WarnTargetPct=0.200000
|
||||
}
|
||||
13
Sources/Classes/UT2341PulseAmmo.uc
Normal file
13
Sources/Classes/UT2341PulseAmmo.uc
Normal file
@@ -0,0 +1,13 @@
|
||||
class UT2341PulseAmmo extends Ammunition;
|
||||
|
||||
#EXEC OBJ LOAD FILE=InterfaceContent.utx
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
MaxAmmo=400
|
||||
InitialAmount=120
|
||||
PickupClass=Class'UT2341WeaponsReducedv1a.UT2341PulseAmmoPickup'
|
||||
IconMaterial=Texture'HUDContent.Generic.HUD'
|
||||
IconCoords=(X1=413,Y1=82,X2=457,Y2=125)
|
||||
ItemName="Pulse Ammo"
|
||||
}
|
||||
30
Sources/Classes/UT2341PulseAmmoPickup.uc
Normal file
30
Sources/Classes/UT2341PulseAmmoPickup.uc
Normal file
@@ -0,0 +1,30 @@
|
||||
class UT2341PulseAmmoPickup extends UTAmmoPickup;
|
||||
|
||||
function RespawnEffect()
|
||||
{
|
||||
spawn(class'FX_PickupRespawn');
|
||||
}
|
||||
|
||||
function PostBeginPlay()
|
||||
{
|
||||
Super.PostBeginPlay();
|
||||
|
||||
if ( Level.Game.bAllowVehicles )
|
||||
MaxDesireability *= 1.9;
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
AmmoAmount=50
|
||||
MaxDesireability=0.240000
|
||||
InventoryType=Class'UT2341WeaponsReducedv1a.UT2341PulseAmmo'
|
||||
PickupMessage="You picked up pulse charges."
|
||||
PickupSound=Sound'UT2341Weapons_Sounds.General.AmmoSnd'
|
||||
PickupForce="LinkAmmoPickup"
|
||||
DrawType=DT_StaticMesh
|
||||
StaticMesh=StaticMesh'UT2341Weapons_SM.General.UTPulseCell'
|
||||
DrawScale=0.350000
|
||||
PrePivot=(Z=30.000000)
|
||||
AmbientGlow=64
|
||||
CollisionHeight=10.500000
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user