Adjusted projectile speeds across the board for more consistency.
Tweaked guided redeemer missile movement, no longer makes sharp turns. Additional development notes so I don't forget what I should do next.
This commit is contained in:
parent
b69a5cfe05
commit
9ed6c9dea0
8 changed files with 39 additions and 24 deletions
21
Readme.md
21
Readme.md
|
|
@ -45,10 +45,25 @@ This mod requires GZDoom 3.4.0 or later.
|
|||
|
||||
## In progress
|
||||
|
||||
- Make biorifle sludge follow ceiling and wall movement (this might be hard)
|
||||
- Add some more effects, maybe some nicer recoil on guns too
|
||||
- General polishing and bugfixing
|
||||
- Trim out unused animations
|
||||
- Make biorifle sludge follow ceiling and wall movement (this might be hard)
|
||||
- Add some more effects
|
||||
- Additional particle effects on explosions
|
||||
- Smoke on spent casings
|
||||
- Visual recoil affecting aim (time to recycle SM's A_Swing once again)
|
||||
- Additional model optimization and cleanup
|
||||
- Trim out unused animations (this one is going to be very time-consuming)
|
||||
- Unify some texture groups (umodel does some weird thing where it separates
|
||||
unlit polys into a new group, even when they're not supposed to be)
|
||||
- Trim out garbage triangles (e.g.: an extra triangle in the biorifle that
|
||||
has no reason to exist (can be seen when using invisibility, looks
|
||||
completely out of place there)
|
||||
- Recenter the backpack mesh (it was a complete hack job to begin with)
|
||||
|
||||
## Future plans
|
||||
|
||||
- Add ammo counters to Pulsegun, Minigun, Flak Cannon and Rocket Launcher once
|
||||
scripted textures are implemented.
|
||||
|
||||
## Known bugs
|
||||
|
||||
|
|
|
|||
|
|
@ -349,7 +349,7 @@ Class BioGel : Actor
|
|||
Radius 3;
|
||||
Height 3;
|
||||
Scale 2;
|
||||
Speed 20;
|
||||
Speed 18;
|
||||
PROJECTILE;
|
||||
-NOGRAVITY;
|
||||
+SKYEXPLODE;
|
||||
|
|
|
|||
|
|
@ -109,7 +109,7 @@ Class UTRocket : Actor
|
|||
DamageType 'RocketDeath';
|
||||
Radius 2;
|
||||
Height 2;
|
||||
Speed 30;
|
||||
Speed 18;
|
||||
PROJECTILE;
|
||||
+SKYEXPLODE;
|
||||
+EXPLODEONWATER;
|
||||
|
|
@ -163,10 +163,16 @@ Class UTRocket : Actor
|
|||
{
|
||||
A_SetRoll(roll+30,SPF_INTERPOLATE);
|
||||
Vector3 dir = vel.unit();
|
||||
if ( waterlevel <= 0 ) vel = dir*min(vel.length()+1,32);
|
||||
A_SetAngle(atan2(dir.y,dir.x),SPF_INTERPOLATE);
|
||||
A_SetPitch(asin(-dir.z),SPF_INTERPOLATE);
|
||||
if ( tracer ) A_SeekerMissile(0,2,SMF_PRECISE);
|
||||
Spawn("UTSmoke",pos);
|
||||
for ( int i=0; i<3; i++ )
|
||||
{
|
||||
let s = Spawn("UTSmoke",pos);
|
||||
s.vel = (FRandom[Eightball](-0.2,0.2),FRandom[Eightball](-0.2,0.2),FRandom[Eightball](-0.2,0.2));
|
||||
s.vel += vel*0.1;
|
||||
}
|
||||
}
|
||||
Wait;
|
||||
Death:
|
||||
|
|
@ -308,8 +314,8 @@ Class UTRocketLauncher : UTWeapon
|
|||
s = FRandom[Eightball](0,0.06*(num-1));
|
||||
Vector3 dir = (x2+cos(a)*y2*s+sin(a)*z2*s).unit();
|
||||
p = Spawn("UTGrenade",origin);
|
||||
p.vel = dir*p.speed*FRandom[Eightball](1.0,1.2);
|
||||
p.vel.z += 5;
|
||||
p.vel = x*(vel dot x)*0.4 + dir*p.speed*FRandom[Eightball](1.0,1.2);
|
||||
p.vel.z += 6;
|
||||
p.target = self;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -372,7 +372,7 @@ Class FlakSlug : Actor
|
|||
override void PostBeginPlay()
|
||||
{
|
||||
Super.PostBeginPlay();
|
||||
vel.z += 5;
|
||||
vel.z += 4;
|
||||
}
|
||||
override void Tick()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -69,13 +69,13 @@ Class MinigunTracer : Actor
|
|||
{
|
||||
Super.Tick();
|
||||
Vector3 dir = level.Vec3Diff(pos,dest);
|
||||
if ( dir.length() < 200 )
|
||||
if ( dir.length() < 160 )
|
||||
{
|
||||
Destroy();
|
||||
return;
|
||||
}
|
||||
dir = dir.unit();
|
||||
SetOrigin(Vec3Offset(dir.x*200,dir.y*200,dir.z*200),true);
|
||||
SetOrigin(Vec3Offset(dir.x*160,dir.y*160,dir.z*160),true);
|
||||
A_SetAngle(atan2(dir.y,dir.x),SPF_INTERPOLATE);
|
||||
A_SetPitch(asin(-dir.z),SPF_INTERPOLATE);
|
||||
A_SetRoll(roll+60,SPF_INTERPOLATE);
|
||||
|
|
|
|||
|
|
@ -146,8 +146,8 @@ Class PulseBall : Actor
|
|||
PROJECTILE;
|
||||
+EXPLODEONWATER;
|
||||
+SKYEXPLODE;
|
||||
Scale 0.2;
|
||||
Speed 30;
|
||||
Scale 0.19;
|
||||
Speed 29;
|
||||
Radius 2;
|
||||
Height 2;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ Class Razor2 : Actor
|
|||
{
|
||||
Radius 2;
|
||||
Height 2;
|
||||
Speed 50;
|
||||
Speed 40; // should be 26 but it looks way too slow
|
||||
DamageFunction Random[Ripper](30,40);
|
||||
DamageType 'Ripper';
|
||||
Obituary "%k ripped a chunk of meat out of %o with the Ripper.";
|
||||
|
|
|
|||
|
|
@ -244,7 +244,7 @@ Class WarShell : Actor
|
|||
Obituary "%o was vaporized by %k's Redeemer!!";
|
||||
Radius 2;
|
||||
Height 2;
|
||||
Speed 2;
|
||||
Speed 12;
|
||||
DamageType 'RedeemerDeath';
|
||||
DamageFactor 1000;
|
||||
PROJECTILE;
|
||||
|
|
@ -279,9 +279,9 @@ Class WarShell : Actor
|
|||
if ( waterlevel > 0 )
|
||||
{
|
||||
vel *= 0.98;
|
||||
if ( vel.length() < 5 ) vel += vel.unit()*0.5;
|
||||
if ( vel.length() < 12 ) vel += vel.unit();
|
||||
}
|
||||
else if ( vel.length() < 10 ) vel += vel.unit()*0.5;
|
||||
else if ( vel.length() < 40 ) vel += vel.unit();
|
||||
}
|
||||
}
|
||||
action void A_Trail()
|
||||
|
|
@ -395,13 +395,7 @@ Class GuidedWarShell : WarShell
|
|||
A_SetAngle(destangle,SPF_INTERPOLATE);
|
||||
A_SetPitch(destpitch,SPF_INTERPOLATE);
|
||||
A_SetRoll(destroll,SPF_INTERPOLATE);
|
||||
vel = vel.length()*(cos(angle)*cos(pitch),sin(angle)*cos(pitch),-sin(pitch));
|
||||
if ( waterlevel > 0 )
|
||||
{
|
||||
vel *= 0.98;
|
||||
if ( vel.length() < 5 ) vel += vel.unit()*0.5;
|
||||
}
|
||||
else if ( vel.length() < 10 ) vel += vel.unit()*0.5;
|
||||
vel = (vel+(cos(angle)*cos(pitch),sin(angle)*cos(pitch),-sin(pitch))*0.8).unit()*11;
|
||||
}
|
||||
lagangle2 = lagangle2*0.95+lagangle*0.05;
|
||||
lagpitch2 = lagpitch2*0.95+lagpitch*0.05;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue