1.2 update, w/ GZDoom 4.9 stuff:
- Customizable player skins here too.
- Integrated re-skin add-ons ("Old Sounds" is still separate).
- The usual fixes and optimizations.
- All weapons are now left-handed, where possible.
This commit is contained in:
parent
5346b420e3
commit
a21aa43f35
1485 changed files with 1157 additions and 380 deletions
|
|
@ -203,7 +203,7 @@ Class ImpalerBurstBolt : Actor
|
|||
}
|
||||
double a = FRandom[Impaler](0,360), s = FRandom[Impaler](0.,.8);
|
||||
invoker.nextpos = level.Vec3Offset(t.Results.HitPos,normal);
|
||||
invoker.nextdir = (dir+cos(a)*y*s+sin(a)*z*s).unit();
|
||||
invoker.nextdir = dt_Utility.ConeSpread(dir,y,z,a,s);
|
||||
}
|
||||
action void A_Spread()
|
||||
{
|
||||
|
|
@ -458,7 +458,7 @@ Class ImpalerBolt : Actor
|
|||
dirto /= distto;
|
||||
distto = 1.-clamp(distto*0.1,0.,.9);
|
||||
}
|
||||
dir = (x+y*cos(a)*s+z*sin(a)*s+dirto*distto).unit();
|
||||
dir = (dt_Utility.ConeSpread(x,y,z,a,s)+dirto*distto).unit();
|
||||
dir = dir*.5+oldx*.5;
|
||||
oldx = dir;
|
||||
A_SetAngle(atan2(dir.y,dir.x));
|
||||
|
|
@ -524,7 +524,7 @@ Class StarterImpalerBolt : ImpalerBolt
|
|||
start = self;
|
||||
flares[0] = Spawn("ImpalerFlare",pos);
|
||||
flares[1] = Spawn("ImpalerFlare",pos);
|
||||
oldx = (cos(angle)*cos(pitch),sin(angle)*cos(pitch),-sin(pitch));
|
||||
oldx = dt_Utility.Vec3FromAngle(angle,pitch);
|
||||
}
|
||||
override void OnDestroy()
|
||||
{
|
||||
|
|
@ -548,7 +548,7 @@ Class StarterImpalerBolt : ImpalerBolt
|
|||
if ( target.player )
|
||||
{
|
||||
[x, y, z] = dt_CoordUtil.GetAxes(target.pitch,target.angle,target.roll);
|
||||
origin = level.Vec3Offset(target.Vec2OffsetZ(0,0,target.player.viewz),15*x+2*y-2.5*z);
|
||||
origin = level.Vec3Offset(target.Vec2OffsetZ(0,0,target.player.viewz),15*x-2.5*z);
|
||||
}
|
||||
else origin = target.Vec3Offset(0,0,target.missileheight);
|
||||
SetOrigin(origin,true);
|
||||
|
|
@ -563,13 +563,13 @@ Class StarterImpalerBolt : ImpalerBolt
|
|||
flares[1].A_SetScale(0.02+cos(gametic*8)*0.004);
|
||||
double a = FRandom[Impaler](0,360), s = FRandom[Impaler](0.,.1);
|
||||
[x, y, z] = dt_CoordUtil.GetAxes(target.pitch,target.angle,target.roll);
|
||||
Vector3 dir = (x+cos(a)*y*s+sin(a)*z*s).unit();
|
||||
Vector3 dir = dt_Utility.ConeSpread(x,y,z,a,s);
|
||||
dir = oldx*.5+dir*.5;
|
||||
oldx = dir;
|
||||
A_SetAngle(atan2(dir.y,dir.x));
|
||||
A_SetPitch(asin(-dir.z));
|
||||
hitlist.Clear();
|
||||
CheckBeam((cos(angle)*cos(pitch),sin(angle)*cos(pitch),-sin(pitch)));
|
||||
CheckBeam(dt_Utility.Vec3FromAngle(angle,pitch));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -618,7 +618,7 @@ Class ImpalerProjectile : Actor
|
|||
let c = Spawn("ImpalerChunk",pos);
|
||||
c.angle = ang;
|
||||
c.pitch = pt;
|
||||
c.vel = (cos(ang)*cos(pt),sin(ang)*cos(pt),-sin(pt))*FRandom[Impaler](3,9);
|
||||
c.vel = dt_Utility.Vec3FromAngle(ang,pt)*FRandom[Impaler](3,9);
|
||||
}
|
||||
numpt = Random[Impaler](6,12);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
|
|
@ -626,7 +626,7 @@ Class ImpalerProjectile : Actor
|
|||
ang = FRandom[Impaler](0,360);
|
||||
pt = FRandom[Impaler](-90,90);
|
||||
let c = Spawn("UTSmoke",pos);
|
||||
c.vel = (cos(ang)*cos(pt),sin(ang)*cos(pt),-sin(pt))*FRandom[Impaler](.3,.8);
|
||||
c.vel = dt_Utility.Vec3FromAngle(ang,pt)*FRandom[Impaler](.3,.8);
|
||||
c.SetShade(Color(4,1,3)*Random[Impaler](48,63));
|
||||
c.bBRIGHT = true;
|
||||
c.alpha *= .5;
|
||||
|
|
@ -688,7 +688,7 @@ Class ImpalerProjectile : Actor
|
|||
ang = FRandom[Impaler](0,360);
|
||||
pt = FRandom[Impaler](-90,90);
|
||||
let c = Spawn("ImpalerSpark",pos);
|
||||
c.vel = vel*0.5+(cos(ang)*cos(pt),sin(ang)*cos(pt),-sin(pt))*FRandom[Impaler](.2,.8)*(special1/90.);
|
||||
c.vel = vel*0.5+dt_Utility.Vec3FromAngle(ang,pt)*FRandom[Impaler](.2,.8)*(special1/90.);
|
||||
}
|
||||
}
|
||||
if ( special1 > 120 )
|
||||
|
|
@ -703,7 +703,7 @@ Class ImpalerProjectile : Actor
|
|||
c.bBRIGHT = true;
|
||||
c.alpha *= min(1.,special1/350.);
|
||||
c.scale *= min(2.,special1/350.);
|
||||
c.vel = vel*0.5+(cos(ang)*cos(pt),sin(ang)*cos(pt),-sin(pt))*FRandom[Impaler](.2,.8)*(special1/120.);
|
||||
c.vel = vel*0.5+dt_Utility.Vec3FromAngle(ang,pt)*FRandom[Impaler](.2,.8)*(special1/120.);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -794,12 +794,12 @@ Class Impaler : UnrealWeapon
|
|||
A_QuakeEx(1,1,1,4,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.1);
|
||||
Vector3 x, y, z;
|
||||
[x, y, z] = dt_CoordUtil.GetAxes(pitch,angle,roll);
|
||||
Vector3 origin = level.Vec3Offset(Vec2OffsetZ(0,0,player.viewz),10*x+2*y-2.5*z);
|
||||
Vector3 origin = level.Vec3Offset(Vec2OffsetZ(0,0,player.viewz),10*x-2.5*z);
|
||||
Actor p = Spawn("ImpalerProjectile",origin);
|
||||
p.angle = angle;
|
||||
p.pitch = BulletSlope();
|
||||
p.roll = FRandom[Impaler](0,360);
|
||||
p.vel = (cos(p.angle)*cos(p.pitch),sin(p.angle)*cos(p.pitch),-sin(p.pitch))*p.speed;
|
||||
p.vel = dt_Utility.Vec3FromAngle(p.angle,p.pitch)*p.speed;
|
||||
p.target = self;
|
||||
double mult = Amplifier.GetMult(self,100);
|
||||
p.special1 = int(3*invoker.clipcount*mult+120*(mult-1.));
|
||||
|
|
@ -807,7 +807,7 @@ Class Impaler : UnrealWeapon
|
|||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
let s = Spawn("ViewImpalerSpark",origin);
|
||||
ViewImpalerSpark(s).ofs = (10,2,-2.5);
|
||||
ViewImpalerSpark(s).ofs = (10,0,-2.5);
|
||||
s.target = self;
|
||||
s.scale *= 3.;
|
||||
ViewImpalerSpark(s).vvel += (FRandom[Impaler](0.2,0.8),FRandom[Impaler](-0.5,0.5),FRandom[Impaler](-0.5,0.5));
|
||||
|
|
@ -819,7 +819,7 @@ Class Impaler : UnrealWeapon
|
|||
{
|
||||
Vector3 x, y, z, origin;
|
||||
[x, y, z] = dt_CoordUtil.GetAxes(pitch,angle,roll);
|
||||
origin = level.Vec3Offset(Vec2OffsetZ(0,0,player.viewz),15*x+2*y-2.5*z);
|
||||
origin = level.Vec3Offset(Vec2OffsetZ(0,0,player.viewz),15*x-2.5*z);
|
||||
invoker.beam = Spawn("StarterImpalerBolt",origin);
|
||||
invoker.beam.angle = angle;
|
||||
invoker.beam.pitch = BulletSlope();
|
||||
|
|
@ -847,12 +847,12 @@ Class Impaler : UnrealWeapon
|
|||
A_AlertMonsters();
|
||||
Vector3 x, y, z;
|
||||
[x, y, z] = dt_CoordUtil.GetAxes(pitch,angle,roll);
|
||||
Vector3 origin = level.Vec3Offset(Vec2OffsetZ(0,0,player.viewz),15*x+2*y-2.5*z);
|
||||
Vector3 origin = level.Vec3Offset(Vec2OffsetZ(0,0,player.viewz),15*x-2.5*z);
|
||||
int numpt = Random[Impaler](4,7);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
let s = Spawn("UTViewSmoke",origin);
|
||||
UTViewSmoke(s).ofs = (15,2,-2.5);
|
||||
UTViewSmoke(s).ofs = (15,0,-2.5);
|
||||
s.scale *= 1.8;
|
||||
s.target = self;
|
||||
s.SetShade("602060");
|
||||
|
|
@ -863,7 +863,7 @@ Class Impaler : UnrealWeapon
|
|||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
let s = Spawn("ViewImpalerSpark",origin);
|
||||
ViewImpalerSpark(s).ofs = (15,2,-2.5);
|
||||
ViewImpalerSpark(s).ofs = (15,0,-2.5);
|
||||
s.target = self;
|
||||
s.scale *= 3.;
|
||||
ViewImpalerSpark(s).vvel += (FRandom[Impaler](0.2,0.8),FRandom[Impaler](-0.5,0.5),FRandom[Impaler](-0.5,0.5));
|
||||
|
|
@ -896,7 +896,7 @@ Class Impaler : UnrealWeapon
|
|||
FLineTraceData d;
|
||||
Vector3 x, y, z, origin;
|
||||
[x, y, z] = dt_CoordUtil.GetAxes(pitch,angle,roll);
|
||||
origin = level.Vec3Offset(Vec2OffsetZ(0,0,player.viewz),y*4-z*4);
|
||||
origin = level.Vec3Offset(Vec2OffsetZ(0,0,player.viewz),-z*4);
|
||||
LineTrace(angle,DEFMELEERANGE*1.5,slope,TRF_ABSPOSITION,origin.z,origin.x,origin.y,data:d);
|
||||
if ( d.HitType != TRACE_HitNone )
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue