1.3 update and whatnot.

This commit is contained in:
Marisa the Magician 2023-08-25 23:47:10 +02:00
commit 2f56442ffb
47 changed files with 153 additions and 178 deletions

View file

@ -176,6 +176,8 @@ Class ImpalerBurstBolt : Actor
t.hitlist[i].hitactor.DamageMobj(self,target,3,'Impaler',DMG_THRUSTLESS);
}
Vector3 normal = -t.Results.HitVector, dir = t.Results.HitVector;
double a = FRandom[Impaler](0,360), s = FRandom[Impaler](0.,.8);
invoker.nextdir = dt_Utility.ConeSpread(dir,y,z,a,s);
if ( t.Results.HitType == TRACE_HitWall )
{
normal = (t.Results.HitLine.delta.y,-t.Results.HitLine.delta.x,0).unit();
@ -197,13 +199,10 @@ Class ImpalerBurstBolt : Actor
}
else
{
// why the fuck
t.Results.HitPos = level.Vec3Offset(pos,x*10.125);
normal *= 0;
invoker.nextpos = t.Results.HitPos;
return;
}
double a = FRandom[Impaler](0,360), s = FRandom[Impaler](0.,.8);
invoker.nextpos = level.Vec3Offset(t.Results.HitPos,normal);
invoker.nextdir = dt_Utility.ConeSpread(dir,y,z,a,s);
}
action void A_Spread()
{
@ -545,11 +544,7 @@ Class StarterImpalerBolt : ImpalerBolt
}
Vector3 x, y, z, origin;
bRELATIVETOFLOOR = (target.pos.z <= target.floorz); // hack, but kinda works
if ( target.player )
{
[x, y, z] = dt_Utility.GetAxes(target.angle,target.pitch,target.roll);
origin = level.Vec3Offset(target.Vec2OffsetZ(0,0,target.player.viewz),15*x-2.5*z);
}
if ( target.player ) origin = dt_Utility.GetFireOffset(target,15,0,-2.5);
else origin = target.Vec3Offset(0,0,target.missileheight);
SetOrigin(origin,true);
if ( !flares[0] ) flares[0] = Spawn("ImpalerFlare",pos);
@ -562,7 +557,7 @@ Class StarterImpalerBolt : ImpalerBolt
flares[0].A_SetScale(0.01+cos(gametic*8)*0.002);
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_Utility.GetAxes(target.angle,target.pitch,target.roll);
[x, y, z] = dt_Utility.GetPlayerAxes(target);
Vector3 dir = dt_Utility.ConeSpread(x,y,z,a,s);
dir = oldx*.5+dir*.5;
oldx = dir;
@ -793,9 +788,7 @@ Class Impaler : UnrealWeapon
UTMainHandler.DoFlash(self,Color(16,224,64,255),1);
if ( !Dampener.Active(self) ) A_AlertMonsters();
A_QuakeEx(1,1,1,4,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.1);
Vector3 x, y, z;
[x, y, z] = dt_Utility.GetAxes(angle,pitch,roll);
Vector3 origin = level.Vec3Offset(Vec2OffsetZ(0,0,player.viewz),10*x-2.5*z);
Vector3 origin = dt_Utility.GetFireOffset(self,10,0,-2.5);
Actor p = Spawn("ImpalerProjectile",origin);
p.angle = angle;
p.pitch = BulletSlope();
@ -818,9 +811,7 @@ Class Impaler : UnrealWeapon
}
action void A_StartBeam()
{
Vector3 x, y, z, origin;
[x, y, z] = dt_Utility.GetAxes(angle,pitch,roll);
origin = level.Vec3Offset(Vec2OffsetZ(0,0,player.viewz),15*x-2.5*z);
Vector3 origin = dt_Utility.GetFireOffset(self,15,0,-2.5);
invoker.beam = Spawn("StarterImpalerBolt",origin);
invoker.beam.angle = angle;
invoker.beam.pitch = BulletSlope();
@ -846,9 +837,7 @@ Class Impaler : UnrealWeapon
invoker.FireEffect();
UTMainHandler.DoFlash(self,Color(16,255,32,255),3);
A_AlertMonsters();
Vector3 x, y, z;
[x, y, z] = dt_Utility.GetAxes(angle,pitch,roll);
Vector3 origin = level.Vec3Offset(Vec2OffsetZ(0,0,player.viewz),15*x-2.5*z);
Vector3 origin = dt_Utility.GetFireOffset(self,15,0,-2.5);
int numpt = Random[Impaler](4,7);
for ( int i=0; i<numpt; i++ )
{
@ -895,9 +884,7 @@ Class Impaler : UnrealWeapon
FTranslatedLineTarget t;
double slope = AimLineAttack(angle,DEFMELEERANGE*1.5,t,0.,ALF_CHECK3D);
FLineTraceData d;
Vector3 x, y, z, origin;
[x, y, z] = dt_Utility.GetAxes(angle,pitch,roll);
origin = level.Vec3Offset(Vec2OffsetZ(0,0,player.viewz),-z*4);
Vector3 origin = dt_Utility.GetFireOffset(self,0,0,-4);
LineTrace(angle,DEFMELEERANGE*1.5,slope,TRF_ABSPOSITION,origin.z,origin.x,origin.y,data:d);
if ( d.HitType != TRACE_HitNone )
{