Here's the code for the projectile class:
- Code: Select all
class BlastAwayGren expands DeusExProjectile;
var ParticleGenerator smokeGen;
Simulated Function Tick(Float DeltaTime)
{}//Dont make gravity effect this projectile!
simulated function DrawExplosionEffects (Vector HitLocation, Vector HitNormal)
{
local SphereEffect ring;
local ExplosionLight Light;
local Pawn player;
ring=Spawn(Class'SphereEffect',,,HitLocation,rotator(HitNormal));
if ( ring != None )
{
ring.RemoteRole=Role_None;
ring.size=blastRadius / 256.00;
Ring.Skin=Texture'AlarmLightTex3';
Ring.LightType=LT_Steady;
Ring.LightBrightness=255;
Ring.LightEffect=LE_NonIncidence;
Ring.LightHue=0;
Ring.LightRadius=Ring.Size;
}
ring=Spawn(Class'SphereEffect',,,HitLocation,rotator(HitNormal));
if ( ring != None )
{
ring.RemoteRole=Role_None;
ring.size=blastRadius / 128.00;
Ring.Skin=Texture'AlarmLightTex5';
Ring.LightType=LT_Steady;
Ring.LightBrightness=255;
Ring.LightEffect=LE_NonIncidence;
Ring.LightHue=102;
Ring.LightRadius=Ring.Size;
}
ring=Spawn(Class'SphereEffect',,,HitLocation,rotator(HitNormal));
if ( ring != None )
{
ring.RemoteRole=Role_None;
Ring.Skin=Texture'AlarmLightTex7';
ring.size=blastRadius / 64.00;
Ring.LightType=LT_Steady;
Ring.LightBrightness=255;
Ring.LightSaturation=32;
Ring.LightEffect=LE_NonIncidence;
Ring.LightHue=153;
Ring.LightRadius=Ring.Size;
}
ring=Spawn(Class'SphereEffect',,,HitLocation,rotator(HitNormal));
if ( ring != None )
{
ring.RemoteRole=Role_None;
Ring.Skin=Texture'AlarmLightTex9';
ring.size=blastRadius / 32.00;
Ring.LightType=LT_Steady;
Ring.LightBrightness=255;
Ring.LightEffect=LE_NonIncidence;
Ring.LightHue=51;
Ring.LightRadius=Ring.Size;
}
}
auto simulated state Flying
{
simulated function Explode(vector HitLocation, vector HitNormal)
{
local actor a;
local vector VelocityToSet;
local float dist;
foreach RadiusActors (class'Actor', a, BlastRadius)
{
if (a.IsA('DeusExPlayer') && TeamDMGame(DeusExPlayer(Owner).DXGame) != None)
dist = VSize(a.Location - HitLocation);
VelocityToSet = (BlastRadius/Dist**1.1)*normal(a.Location - HitLocation)*1200;
VelocityToset.z += 30;
VelocityToSet += ((HitNormal * Blastradius) / dist**1.3) * 1300;
if (a != None)
{
if (a.IsA('PlayerPawn'))
{
a.Velocity += VelocityToSet;
}
}
}
Super.Explode(HitLocation, HitNormal);
}
}
defaultproperties
{
bExplodes=True
blastRadius=1024.000000
DamageType=exploded
ItemName="Blast Bomb"
ItemArticle="a"
speed=3000.000000
MaxSpeed=3000.000000
Damage=5.000000
MomentumTransfer=20000
SpawnSound=Sound'DeusExSounds.Weapons.GEPGunFire'
ImpactSound=Sound'DeusExSounds.Generic.SmallExplosion2'
Skin=Texture'DeusExDeco.Skins.AlarmLightTex3'
Mesh=LodMesh'DeusExItems.Tracer'
DrawScale=0.350000
bUnlit=True
}
I've found that too many effects used at once can cause this black out effect(During the LaserRifle's development, it was a bitch to perfect, but that's a different story...), and was wondering if this may be the case...