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:
Marisa the Magician 2022-11-06 00:02:46 +01:00
commit a21aa43f35
1485 changed files with 1157 additions and 380 deletions

View file

@ -290,27 +290,10 @@ Class ViewASMDSpark : ShockSpark
Class ASMDHitbox : ShockHitbox
{
override int DamageMobj( Actor inflictor, Actor source, int damage, Name mod, int flags, double angle )
{
if ( mod == 'jolted' )
return 0;
if ( !bAMBUSH )
{
bAMBUSH = true;
if ( target && target.InStateSequence(target.CurState,target.FindState("Spawn")) )
target.ExplodeMissile();
}
return 0;
}
override bool CanCollideWith( Actor other, bool passive )
{
return true;
}
Default
{
Radius 6;
Height 12;
+SHOOTABLE;
}
}
@ -359,7 +342,7 @@ Class ASMDBall : Actor
l.Args[3] = 120;
r = Spawn("ASMDBeamRing",pos);
}
Vector3 HitNormal = (cos(angle)*cos(pitch),sin(angle)*cos(pitch),-sin(pitch));
Vector3 HitNormal = dt_Utility.Vec3FromAngle(angle,pitch);
if ( BlockingLine ) HitNormal = (-BlockingLine.delta.y,BlockingLine.delta.x,0).unit();
else if ( BlockingFloor )
{
@ -414,22 +397,22 @@ Class ASMDBall : Actor
switch (i)
{
case 0:
dir = (x+y*cos(a)*s+z*sin(a)*s).unit();
dir = dt_Utility.ConeSpread(x,y,z,a,s);
break;
case 1:
dir = (y+x*cos(a)*s+z*sin(a)*s).unit();
dir = dt_Utility.ConeSpread(y,x,z,a,s);
break;
case 2:
dir = (-x+y*cos(a)*s+z*sin(a)*s).unit();
dir = dt_Utility.ConeSpread(-x,y,z,a,s);
break;
case 3:
dir = (-y+x*cos(a)*s+z*sin(a)*s).unit();
dir = dt_Utility.ConeSpread(-y,x,z,a,s);
break;
case 4:
dir = (z+x*cos(a)*s+y*sin(a)*s).unit();
dir = dt_Utility.ConeSpread(z,x,y,a,s);
break;
case 5:
dir = (-z+x*cos(a)*s+y*sin(a)*s).unit();
dir = dt_Utility.ConeSpread(-z,x,y,a,s);
break;
}
let p = Spawn("ASMDSpark",level.Vec3Offset(pos,-vel));
@ -509,7 +492,7 @@ Class ASMDBeam : Actor
Super.Tick();
if ( isFrozen() || !moving ) return;
// step trace
tracedir = (cos(angle)*cos(pitch),sin(angle)*cos(pitch),-sin(pitch));
tracedir = dt_Utility.Vec3FromAngle(angle,pitch);
t.ShootThroughList.Clear();
t.Trace(pos,cursector,tracedir,1000,0);
for ( int i=0; i<t.ShootThroughList.Size(); i++ )
@ -687,7 +670,7 @@ Class ASMD : 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.9*y-2.5*z);
Vector3 origin = level.Vec3Offset(Vec2OffsetZ(0,0,player.viewz),10*x-2.9*y-2.5*z);
Actor p = Spawn("ASMDBeam",origin);
p.angle = angle;
p.pitch = BulletSlope();
@ -696,7 +679,7 @@ Class ASMD : UnrealWeapon
for ( int i=0; i<numpt; i++ )
{
let s = Spawn("ViewASMDSpark",origin);
ViewASMDSpark(s).ofs = (10,2.9,-2.5);
ViewASMDSpark(s).ofs = (10,-2.9,-2.5);
s.target = self;
ViewASMDSpark(s).vvel += (FRandom[ASMD](0.5,2.0),FRandom[ASMD](-1.5,1.5),FRandom[ASMD](-1.5,1.5));
}
@ -718,18 +701,18 @@ Class ASMD : UnrealWeapon
A_QuakeEx(1,1,1,8,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.9*y-2.5*z);
Vector3 origin = level.Vec3Offset(Vec2OffsetZ(0,0,player.viewz),10*x-2.9*y-2.5*z);
Actor p = Spawn("ASMDBall",origin);
p.angle = angle;
p.pitch = BulletSlope();
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;
ASMDBall(p).mult = mult-1;
int numpt = Random[ASMD](20,40);
for ( int i=0; i<numpt; i++ )
{
let s = Spawn("ViewASMDSpark",origin);
ViewASMDSpark(s).ofs = (10,2.9,-2.5);
ViewASMDSpark(s).ofs = (10,-2.9,-2.5);
s.target = self;
ViewASMDSpark(s).vvel += (FRandom[ASMD](0.5,2.0),FRandom[ASMD](-1.5,1.5),FRandom[ASMD](-1.5,1.5));
}