Fix Demolisher model scale, was twice as large as it was supposed to be for some reason.

Demolisher rebalancing.
This commit is contained in:
Marisa the Magician 2019-09-20 00:56:39 +02:00
commit a8f4091471
3 changed files with 11 additions and 7 deletions

View file

@ -24,6 +24,7 @@
scratch sometime. scratch sometime.
- I forgot to re-add in the little bits of flesh/dried blood that hang from - I forgot to re-add in the little bits of flesh/dried blood that hang from
the blades, but I think it still looks fine like this. the blades, but I think it still looks fine like this.
Edit: I re-added them.
- Same story as the Demolisher. The fact that these two only popped up in one - Same story as the Demolisher. The fact that these two only popped up in one
third-party source for another game is really suspicious. third-party source for another game is really suspicious.

View file

@ -103,7 +103,7 @@ Model "BigGun"
SurfaceSkin 0 0 "JBigGun1.png" SurfaceSkin 0 0 "JBigGun1.png"
SurfaceSkin 0 1 "Automa1.png" SurfaceSkin 0 1 "Automa1.png"
AngleOffset -85 AngleOffset -85
Scale 0.2 -0.1 0.2 Scale 0.1 -0.05 0.1
Offset 7 -10 -3 Offset 7 -10 -3
// Still // Still

View file

@ -128,10 +128,10 @@ Class BigBlast : Actor
override void PostBeginPlay() override void PostBeginPlay()
{ {
Super.PostBeginPlay(); Super.PostBeginPlay();
A_Explode(200,250); A_Explode(50+special1,150);
A_QuakeEx(4,4,4,10,0,400,"",QF_RELATIVE|QF_SCALEDOWN,falloff:200,rollintensity:0.2); A_QuakeEx(4,4,4,10,0,300,"",QF_RELATIVE|QF_SCALEDOWN,falloff:150,rollintensity:0.2);
A_PlaySound("big/blast",CHAN_VOICE,pitch:FRandom[BigGun](0.8,1.2)); A_PlaySound("big/blast",CHAN_VOICE,pitch:FRandom[BigGun](0.8,1.2));
UTMainHandler.DoBlast(self,250,80000); UTMainHandler.DoBlast(self,150,80000);
let r = Spawn("FatRing",pos); let r = Spawn("FatRing",pos);
r.angle = angle; r.angle = angle;
r.pitch = pitch; r.pitch = pitch;
@ -200,8 +200,9 @@ Class BigTracer : LineTracer
ent.x = Results.HitVector; ent.x = Results.HitVector;
ent.hitdamage = min(Results.HitActor.health,int(penetration)); ent.hitdamage = min(Results.HitActor.health,int(penetration));
hitlist.Push(ent); hitlist.Push(ent);
penetration -= ent.hitdamage*.3; penetration = max(0,penetration-ent.hitdamage*.2);
if ( penetration <= 0 ) return TRACE_Abort; if ( (penetration <= 0) || (hitlist.Size() > 9) )
return TRACE_Abort;
return TRACE_Skip; return TRACE_Skip;
} }
return TRACE_Skip; return TRACE_Skip;
@ -316,7 +317,7 @@ Class BigGun : UnrealWeapon
if ( !invoker.t ) invoker.t = new("BigTracer"); if ( !invoker.t ) invoker.t = new("BigTracer");
invoker.t.ignoreme = self; invoker.t.ignoreme = self;
invoker.t.hitlist.Clear(); invoker.t.hitlist.Clear();
invoker.t.penetration = 1000.; invoker.t.penetration = 200.;
invoker.t.Trace(origin,level.PointInSector(origin.xy),dir,10000.,0); invoker.t.Trace(origin,level.PointInSector(origin.xy),dir,10000.,0);
for ( int i=0; i<invoker.t.hitlist.Size(); i++ ) for ( int i=0; i<invoker.t.hitlist.Size(); i++ )
{ {
@ -324,6 +325,7 @@ Class BigGun : UnrealWeapon
l.hitactor.DamageMobj(invoker,self,l.hitdamage,'BigShot',DMG_THRUSTLESS); l.hitactor.DamageMobj(invoker,self,l.hitdamage,'BigShot',DMG_THRUSTLESS);
UTMainHandler.DoKnockback(l.hitactor,l.x,90000.); UTMainHandler.DoKnockback(l.hitactor,l.x,90000.);
let b = Spawn("BigBlast",l.hitlocation-l.x*8.); let b = Spawn("BigBlast",l.hitlocation-l.x*8.);
b.special1 = l.hitdamage;
b.angle = atan2(l.x.y,l.x.x); b.angle = atan2(l.x.y,l.x.x);
b.pitch = asin(-l.x.z); b.pitch = asin(-l.x.z);
} }
@ -346,6 +348,7 @@ Class BigGun : UnrealWeapon
if ( !invoker.t.Results.Side ) hitnormal *= -1; if ( !invoker.t.Results.Side ) hitnormal *= -1;
} }
let b = Spawn("BigBlast",invoker.t.Results.HitPos+hitnormal*8.); let b = Spawn("BigBlast",invoker.t.Results.HitPos+hitnormal*8.);
b.special1 = int(invoker.t.penetration);
b.angle = atan2(hitnormal.y,hitnormal.x); b.angle = atan2(hitnormal.y,hitnormal.x);
b.pitch = asin(-hitnormal.z); b.pitch = asin(-hitnormal.z);
if ( invoker.t.Results.HitLine ) invoker.t.Results.HitLine.RemoteActivate(self,invoker.t.Results.Side,SPAC_Impact,invoker.t.Results.HitPos); if ( invoker.t.Results.HitLine ) invoker.t.Results.HitLine.RemoteActivate(self,invoker.t.Results.Side,SPAC_Impact,invoker.t.Results.HitPos);