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
|
|
@ -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));
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue