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
|
|
@ -1,5 +1,21 @@
|
|||
Class StingerAmmo : Ammo
|
||||
{
|
||||
bool bOldSkin;
|
||||
|
||||
void A_CheckSkin()
|
||||
{
|
||||
if ( sting_oldtarydium )
|
||||
{
|
||||
if ( !bOldSkin ) A_ChangeModel("",0,"","",0,"models/OldSkins","JTaryPick1_.png");
|
||||
bOldSkin = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( bOldSkin ) A_ChangeModel("",0,"","",0,"models","JTaryPick1_.png");
|
||||
bOldSkin = false;
|
||||
}
|
||||
}
|
||||
|
||||
Default
|
||||
{
|
||||
Tag "$T_STINGERAMMO";
|
||||
|
|
@ -18,8 +34,8 @@ Class StingerAmmo : Ammo
|
|||
States
|
||||
{
|
||||
Spawn:
|
||||
SAMO A -1;
|
||||
Stop;
|
||||
SAMO A 1 A_CheckSkin();
|
||||
Wait;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -34,8 +50,8 @@ Class StingerAmmo2 : StingerAmmo
|
|||
States
|
||||
{
|
||||
Spawn:
|
||||
SAMO B -1;
|
||||
Stop;
|
||||
SAMO B 1 A_CheckSkin();
|
||||
Wait;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -192,7 +208,7 @@ Class TarydiumExplosion : Actor
|
|||
ang = FRandom[Stinger](0,360);
|
||||
pt = FRandom[Stinger](-90,90);
|
||||
let c = Spawn("UTSmoke",pos);
|
||||
c.vel = (cos(ang)*cos(pt),sin(ang)*cos(pt),-sin(pt))*FRandom[Stinger](2,7);
|
||||
c.vel = dt_Utility.Vec3FromAngle(ang,pt)*FRandom[Stinger](2,7);
|
||||
c.SetShade(Color(1,3,4)*Random[Stinger](24,63));
|
||||
c.scale *= 3.;
|
||||
}
|
||||
|
|
@ -204,7 +220,7 @@ Class TarydiumExplosion : Actor
|
|||
let c = Spawn("StingerChunk",pos);
|
||||
c.angle = ang;
|
||||
c.pitch = pt;
|
||||
c.vel = (cos(ang)*cos(pt),sin(ang)*cos(pt),-sin(pt))*FRandom[Stinger](6,12);
|
||||
c.vel = dt_Utility.Vec3FromAngle(ang,pt)*FRandom[Stinger](6,12);
|
||||
}
|
||||
numpt = Random[Stinger](10,20)*min(4,special1/40);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
|
|
@ -212,7 +228,7 @@ Class TarydiumExplosion : Actor
|
|||
ang = FRandom[Stinger](0,360);
|
||||
pt = FRandom[Stinger](-90,90);
|
||||
let c = Spawn("UTChip",pos);
|
||||
c.vel = (cos(ang)*cos(pt),sin(ang)*cos(pt),-sin(pt))*FRandom[Stinger](6,12);
|
||||
c.vel = dt_Utility.Vec3FromAngle(ang,pt)*FRandom[Stinger](6,12);
|
||||
c.scale *= FRandom[Stinger](0.9,1.5);
|
||||
}
|
||||
}
|
||||
|
|
@ -339,7 +355,7 @@ Class TarydiumDebuff : Thinker
|
|||
ang = FRandom[Stinger](0,360);
|
||||
pt = FRandom[Stinger](-90,90);
|
||||
let c = victim.Spawn("UTSmoke",pos);
|
||||
c.vel = (cos(ang)*cos(pt),sin(ang)*cos(pt),-sin(pt))*FRandom[Stinger](0.3,0.8);
|
||||
c.vel = dt_Utility.Vec3FromAngle(ang,pt)*FRandom[Stinger](0.3,0.8);
|
||||
c.SetShade(Color(1,3,4)*Random[Stinger](24,63));
|
||||
c.scale *= 3.;
|
||||
c.alpha *= 0.35;
|
||||
|
|
@ -374,6 +390,22 @@ Class TarydiumDebuff : Thinker
|
|||
|
||||
Class StingerProjectile : Actor
|
||||
{
|
||||
bool bOldSkin;
|
||||
|
||||
void A_CheckSkin()
|
||||
{
|
||||
if ( sting_oldtarydium )
|
||||
{
|
||||
if ( !bOldSkin ) A_ChangeModel("",0,"","",0,"models/OldSkins","JTaryPick1_.png");
|
||||
bOldSkin = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( bOldSkin ) A_ChangeModel("",0,"","",0,"models","JTaryPick1_.png");
|
||||
bOldSkin = false;
|
||||
}
|
||||
}
|
||||
|
||||
Vector3 oldvel;
|
||||
Default
|
||||
{
|
||||
|
|
@ -433,7 +465,7 @@ Class StingerProjectile : Actor
|
|||
c.scale *= 0.5;
|
||||
c.angle = ang;
|
||||
c.pitch = pt;
|
||||
c.vel = (cos(ang)*cos(pt),sin(ang)*cos(pt),-sin(pt))*FRandom[Stinger](3,9);
|
||||
c.vel = dt_Utility.Vec3FromAngle(ang,pt)*FRandom[Stinger](3,9);
|
||||
}
|
||||
numpt = Random[Stinger](2,5);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
|
|
@ -441,7 +473,7 @@ Class StingerProjectile : Actor
|
|||
ang = FRandom[Stinger](0,360);
|
||||
pt = FRandom[Stinger](-90,90);
|
||||
let c = Spawn("UTSmoke",pos);
|
||||
c.vel = (cos(ang)*cos(pt),sin(ang)*cos(pt),-sin(pt))*FRandom[Stinger](0.3,0.8);
|
||||
c.vel = dt_Utility.Vec3FromAngle(ang,pt)*FRandom[Stinger](0.3,0.8);
|
||||
c.SetShade(Color(1,3,4)*Random[Stinger](48,63));
|
||||
c.alpha *= 0.35;
|
||||
}
|
||||
|
|
@ -477,7 +509,7 @@ Class StingerProjectile : Actor
|
|||
let c = Spawn("StingerChunk",pos);
|
||||
c.angle = ang;
|
||||
c.pitch = pt;
|
||||
c.vel = (cos(ang)*cos(pt),sin(ang)*cos(pt),-sin(pt))*FRandom[Stinger](3,9);
|
||||
c.vel = dt_Utility.Vec3FromAngle(ang,pt)*FRandom[Stinger](3,9);
|
||||
}
|
||||
numpt = Random[Stinger](6,12);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
|
|
@ -485,7 +517,7 @@ Class StingerProjectile : Actor
|
|||
ang = FRandom[Stinger](0,360);
|
||||
pt = FRandom[Stinger](-90,90);
|
||||
let c = Spawn("UTSmoke",pos);
|
||||
c.vel = (cos(ang)*cos(pt),sin(ang)*cos(pt),-sin(pt))*FRandom[Stinger](0.3,0.8);
|
||||
c.vel = dt_Utility.Vec3FromAngle(ang,pt)*FRandom[Stinger](0.3,0.8);
|
||||
c.SetShade(Color(1,3,4)*Random[Stinger](48,63));
|
||||
c.alpha *= 0.5;
|
||||
}
|
||||
|
|
@ -495,6 +527,7 @@ Class StingerProjectile : Actor
|
|||
Spawn:
|
||||
TPRJ A 1 Bright
|
||||
{
|
||||
A_CheckSkin();
|
||||
if ( waterlevel > 0 )
|
||||
Spawn("UTBubble",pos);
|
||||
}
|
||||
|
|
@ -563,19 +596,19 @@ Class Stinger : 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),5*x+8*y-8*z);
|
||||
Vector3 origin = level.Vec3Offset(Vec2OffsetZ(0,0,player.viewz),5*x-8*y-8*z);
|
||||
Actor p = Spawn("StingerProjectile",origin);
|
||||
p.angle = angle;
|
||||
p.pitch = BulletSlope();
|
||||
p.roll = FRandom[Stinger](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;
|
||||
int numpt = Random[Stinger](5,9);
|
||||
double ang;
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
let s = Spawn("ViewStingerChunk",origin);
|
||||
ViewStingerChunk(s).ofs = (8,2,-2);
|
||||
ViewStingerChunk(s).ofs = (8,-2,-2);
|
||||
ang = FRandom[Stinger](0,360);
|
||||
ViewStingerChunk(s).vvel = (FRandom[Stinger](0.2,1.2),0,0)+(0,cos(ang),sin(ang))*FRandom[Stinger](0.3,0.9);
|
||||
s.target = self;
|
||||
|
|
@ -583,7 +616,7 @@ Class Stinger : UnrealWeapon
|
|||
for ( int i=0; i<12; i++ )
|
||||
{
|
||||
let s = Spawn("UTViewSmoke",origin);
|
||||
UTViewSmoke(s).ofs = (16,4,-4);
|
||||
UTViewSmoke(s).ofs = (16,-4,-4);
|
||||
ang = FRandom[Stinger](0,360);
|
||||
UTViewSmoke(s).vvel = (FRandom[Stinger](0,0.4),0,0)+(0,cos(ang),sin(ang))*FRandom[Stinger](0.2,0.5);
|
||||
s.target = self;
|
||||
|
|
@ -607,7 +640,7 @@ Class Stinger : 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),5*x+8*y-8*z);
|
||||
Vector3 origin = level.Vec3Offset(Vec2OffsetZ(0,0,player.viewz),5*x-8*y-8*z);
|
||||
[x, y, z] = dt_CoordUtil.GetAxes(BulletSlope(),angle,roll);
|
||||
Actor p;
|
||||
double a, s;
|
||||
|
|
@ -618,19 +651,19 @@ Class Stinger : UnrealWeapon
|
|||
if ( !weap.DepleteAmmo(weap.bAltFire,true,1) ) return;
|
||||
a = FRandom[Stinger](0,360);
|
||||
s = FRandom[Stinger](0,(i>0)?.08:0.); // first shot always accurate
|
||||
dir = (x+y*cos(a)*s+z*sin(a)*s).unit();
|
||||
dir = dt_Utility.ConeSpread(x,y,z,a,s);
|
||||
p = Spawn("StingerProjectile",origin);
|
||||
p.angle = atan2(dir.y,dir.x);
|
||||
p.pitch = asin(-dir.z);
|
||||
p.roll = FRandom[Stinger](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;
|
||||
int numpt = Random[Stinger](5,9);
|
||||
double ang;
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
let s = Spawn("ViewStingerChunk",origin);
|
||||
ViewStingerChunk(s).ofs = (8,2,-2);
|
||||
ViewStingerChunk(s).ofs = (8,-2,-2);
|
||||
ang = FRandom[Stinger](0,360);
|
||||
ViewStingerChunk(s).vvel = (FRandom[Stinger](0.2,1.2),0,0)+(0,cos(ang),sin(ang))*FRandom[Stinger](0.3,0.9);
|
||||
s.target = self;
|
||||
|
|
@ -638,7 +671,7 @@ Class Stinger : UnrealWeapon
|
|||
for ( int i=0; i<12; i++ )
|
||||
{
|
||||
let s = Spawn("UTViewSmoke",origin);
|
||||
UTViewSmoke(s).ofs = (16,4,-4);
|
||||
UTViewSmoke(s).ofs = (16,-4,-4);
|
||||
ang = FRandom[Stinger](0,360);
|
||||
UTViewSmoke(s).vvel = (FRandom[Stinger](0,0.4),0,0)+(0,cos(ang),sin(ang))*FRandom[Stinger](0.2,0.5);
|
||||
s.target = self;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue