Make hitscan treat skies as walls (the full unreal-like experience).
Also, fix incorrect bounce behavior of candy beams and biospark arcs.
This commit is contained in:
parent
56a8969e2f
commit
b8313f1def
15 changed files with 45 additions and 85 deletions
|
|
@ -590,7 +590,7 @@ Class SaltBeam : SWWMNonInteractiveActor
|
|||
special1 = 1;
|
||||
let [x, y, z] = SWWMUtility.GetAxes(angle,pitch,roll);
|
||||
let t = new("SaltTracer");
|
||||
t.Trace(pos,cursector,x,speed,TRACE_HitSky,ignore:target);
|
||||
t.Trace(pos,cursector,x,speed,0,ignore:target);
|
||||
foreach ( l:t.ShootThroughList )
|
||||
{
|
||||
l.Activate(target,0,SPAC_PCross);
|
||||
|
|
@ -625,16 +625,13 @@ Class SaltBeam : SWWMNonInteractiveActor
|
|||
}
|
||||
Vector3 norm = SWWMUtility.GetLineTracerHitNormal(t.Results);
|
||||
if ( t.Results.HitType == TRACE_HitWall ) t.Results.HitLine.RemoteActivate(tracer,t.Results.Side,SPAC_Impact,t.Results.HitPos);
|
||||
if ( t.Results.HitType != TRACE_HasHitSky )
|
||||
{
|
||||
let i = Spawn("SaltImpact",level.Vec3Offset(t.Results.HitPos,norm*4));
|
||||
i.angle = atan2(norm.y,norm.x);
|
||||
i.pitch = asin(-norm.z);
|
||||
i.target = target;
|
||||
i.special1 = (Stamina-9)/4;
|
||||
i.special2 = Accuracy;
|
||||
i.args[0] = args[1];
|
||||
}
|
||||
let i = Spawn("SaltImpact",level.Vec3Offset(t.Results.HitPos,norm*4));
|
||||
i.angle = atan2(norm.y,norm.x);
|
||||
i.pitch = asin(-norm.z);
|
||||
i.target = target;
|
||||
i.special1 = (Stamina-9)/4;
|
||||
i.special2 = Accuracy;
|
||||
i.args[0] = args[1];
|
||||
speed = t.Results.Distance; // shortens in minimap
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue