Remove branching from big biospark arcs (causes an odd visual bug at times).

Mortal Rifle should make use of a unique muzzle flash for the overpressure shot.
Update Nana's profile picture so she's actually wearing a turtleneck sweater.
This commit is contained in:
Mari the Deer 2023-07-15 20:38:49 +02:00
commit df3b437ffe
5 changed files with 38 additions and 26 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 6.9 KiB

Before After
Before After

View file

@ -1,3 +1,3 @@
[default]
SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r807 \cu(Thu 13 Jul 13:45:12 CEST 2023)\c-";
SWWM_SHORTVER="\cw1.3pre r807 \cu(2023-07-13 13:45:12)\c-";
SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r808 \cu(Sat 15 Jul 20:41:50 CEST 2023)\c-";
SWWM_SHORTVER="\cw1.3pre r808 \cu(2023-07-15 20:41:50)\c-";

View file

@ -155,17 +155,28 @@ Model "MisterRifle"
Skin 2 "MRMuz3.png"
FrameIndex XZW0 D 2 0
Scale -50 50 50
Skin 2 "RailMuz0.png"
FrameIndex XZW0 E 2 0
Skin 2 "RailMuz1.png"
FrameIndex XZW0 F 2 0
Skin 2 "RailMuz2.png"
FrameIndex XZW0 G 2 0
Skin 2 "RailMuz3.png"
FrameIndex XZW0 H 2 0
Scale -20 20 20
Offset 15 -80 -26
Skin 2 "MRMuz0.png"
FrameIndex XZW0 E 2 0
FrameIndex XZW0 I 2 0
Skin 2 "MRMuz1.png"
FrameIndex XZW0 F 2 0
FrameIndex XZW0 J 2 0
Skin 2 "MRMuz2.png"
FrameIndex XZW0 G 2 0
FrameIndex XZW0 K 2 0
Skin 2 "MRMuz3.png"
FrameIndex XZW0 H 2 0
FrameIndex XZW0 L 2 0
}
Model "MisterRifle"

View file

@ -706,7 +706,7 @@ Class MisterRifle : SWWMWeapon
Vector3 x = SWWMUtility.GetPlayerViewDir(self);
Vector3 origin = SWWMUtility.GetFireOffset(self,10,2.8,-2.4);
SWWMHandler.DoFlash(self,Color(64,64,224,255),9);
A_SWWMFlash();
A_SWWMFlash("RailFlash");
invoker.fired = true;
A_StartSound("mister/fireover",CHAN_WEAPON,CHANF_OVERLAP);
SWWMUtility.DoKnockback(self,-x,90000.);
@ -1567,13 +1567,31 @@ Class MisterRifle : SWWMWeapon
psp.frame = Random[GunFlash](0,3);
}
Stop;
AltFlash:
XZW0 E 2 Bright
RailFlash:
XZW0 E 3 Bright
{
let psp = player.FindPSprite(PSP_FLASH);
psp.frame = Random[GunFlash](4,7);
let l = Spawn("MisterWeaponLight",pos);
l.target = self;
A_OverlayFlags(PSP_FLASH,PSPF_ALPHA|PSPF_FORCEALPHA,true);
}
XZW0 # 1 Bright
{
let psp = player.FindPSprite(PSP_FLASH);
psp.alpha -= .1;
return A_JumpIf(psp.alpha<=0.,1);
}
Wait;
XZW0 # 0;
Stop;
AltFlash:
XZW0 I 2 Bright
{
let psp = player.FindPSprite(PSP_FLASH);
psp.frame = Random[GunFlash](8,11);
let l = Spawn("MisterWeaponLight",pos);
l.target = self;
}
Stop;
Spawn:

View file

@ -1404,23 +1404,6 @@ Class BiosparkArc : SWWMNonInteractiveActor
}
void A_Spread( Sound arcsnd = "", double attn = 1., int extra = 0 )
{
Vector3 tdir = level.Vec3Diff(pos,nextpos);
if ( (extra > 1) && !Random[Sparkster](0,3) )
{
Vector3 x, y, z;
[x, y, z] = SWWMUtility.GetAxes(angle,pitch,roll);
for ( int i=0; i<extra; i++ )
{
let r = Spawn("BiosparkArc",level.Vec3Offset(pos,tdir*FRandom[Sparkster](0,1)));
double a = FRandom[Sparkster](0,360), s = FRandom[Sparkster](0.,1.);
Vector3 sdir = SWWMUtility.ConeSpread(x,y,z,a,s);
r.angle = atan2(sdir.y,sdir.x);
r.pitch = asin(-sdir.z);
r.target = target;
r.master = master;
r.ReactionTime /= 3;
}
}
if ( (special1 > ReactionTime) || bAMBUSH ) return;
let b = Spawn(GetClass(),nextpos);
b.angle = atan2(nextdir.y,nextdir.x);