diff --git a/language.version b/language.version index 6f9e0b581..75830fe59 100644 --- a/language.version +++ b/language.version @@ -1,2 +1,2 @@ [default] -SWWM_MODVER="\chSWWM \cwGZ\c- r402 (Sat 27 Jun 19:19:54 CEST 2020)"; +SWWM_MODVER="\chSWWM \cwGZ\c- r403 (Sat 27 Jun 21:23:24 CEST 2020)"; diff --git a/sprites/MOTRA0.png b/sprites/MOTRA0.png deleted file mode 100644 index f958b35fb..000000000 Binary files a/sprites/MOTRA0.png and /dev/null differ diff --git a/sprites/MOTRB0.png b/sprites/MOTRB0.png deleted file mode 100644 index 95110f429..000000000 Binary files a/sprites/MOTRB0.png and /dev/null differ diff --git a/sprites/MOTRC0.png b/sprites/MOTRC0.png deleted file mode 100644 index eaebf9ed0..000000000 Binary files a/sprites/MOTRC0.png and /dev/null differ diff --git a/sprites/MOTRD0.png b/sprites/MOTRD0.png deleted file mode 100644 index 5b9cf3126..000000000 Binary files a/sprites/MOTRD0.png and /dev/null differ diff --git a/sprites/MOTRE0.png b/sprites/MOTRE0.png deleted file mode 100644 index 73a821a7e..000000000 Binary files a/sprites/MOTRE0.png and /dev/null differ diff --git a/sprites/MOTRF0.png b/sprites/MOTRF0.png deleted file mode 100644 index cd976d206..000000000 Binary files a/sprites/MOTRF0.png and /dev/null differ diff --git a/sprites/MOTRG0.png b/sprites/MOTRG0.png deleted file mode 100644 index fe0174e06..000000000 Binary files a/sprites/MOTRG0.png and /dev/null differ diff --git a/sprites/MOTRH0.png b/sprites/MOTRH0.png deleted file mode 100644 index a643e59c1..000000000 Binary files a/sprites/MOTRH0.png and /dev/null differ diff --git a/sprites/MOTRI0.png b/sprites/MOTRI0.png deleted file mode 100644 index 39dc0c417..000000000 Binary files a/sprites/MOTRI0.png and /dev/null differ diff --git a/sprites/QSM6A0.png b/sprites/QSM6A0.png index c3c435404..91a5e37da 100644 Binary files a/sprites/QSM6A0.png and b/sprites/QSM6A0.png differ diff --git a/sprites/QSM6B0.png b/sprites/QSM6B0.png index 38e0449b3..c76695d56 100644 Binary files a/sprites/QSM6B0.png and b/sprites/QSM6B0.png differ diff --git a/sprites/QSM6C0.png b/sprites/QSM6C0.png index c1b8341c8..be4099771 100644 Binary files a/sprites/QSM6C0.png and b/sprites/QSM6C0.png differ diff --git a/sprites/QSM6D0.png b/sprites/QSM6D0.png index 4d1ffe76f..239754678 100644 Binary files a/sprites/QSM6D0.png and b/sprites/QSM6D0.png differ diff --git a/sprites/QSM6E0.png b/sprites/QSM6E0.png index 595161496..462e68bbc 100644 Binary files a/sprites/QSM6E0.png and b/sprites/QSM6E0.png differ diff --git a/sprites/QSM6F0.png b/sprites/QSM6F0.png index 295bb2e11..e6370e579 100644 Binary files a/sprites/QSM6F0.png and b/sprites/QSM6F0.png differ diff --git a/sprites/QSM6G0.png b/sprites/QSM6G0.png index 03a240186..9ad91947f 100644 Binary files a/sprites/QSM6G0.png and b/sprites/QSM6G0.png differ diff --git a/sprites/QSM6H0.png b/sprites/QSM6H0.png index f8da61de9..341f261d1 100644 Binary files a/sprites/QSM6H0.png and b/sprites/QSM6H0.png differ diff --git a/sprites/QSM6I0.png b/sprites/QSM6I0.png index 4d14b6c3c..5518bcb7d 100644 Binary files a/sprites/QSM6I0.png and b/sprites/QSM6I0.png differ diff --git a/sprites/QSM6J0.png b/sprites/QSM6J0.png index 90562e445..289025c84 100644 Binary files a/sprites/QSM6J0.png and b/sprites/QSM6J0.png differ diff --git a/sprites/QSM6K0.png b/sprites/QSM6K0.png index 56597912f..8ceaae969 100644 Binary files a/sprites/QSM6K0.png and b/sprites/QSM6K0.png differ diff --git a/sprites/QSM6L0.png b/sprites/QSM6L0.png index 3dd87cb1d..584423790 100644 Binary files a/sprites/QSM6L0.png and b/sprites/QSM6L0.png differ diff --git a/sprites/QSM6M0.png b/sprites/QSM6M0.png index f13acfd0e..41bfaefc0 100644 Binary files a/sprites/QSM6M0.png and b/sprites/QSM6M0.png differ diff --git a/sprites/QSM6N0.png b/sprites/QSM6N0.png index a1aa2260d..4874c1ff5 100644 Binary files a/sprites/QSM6N0.png and b/sprites/QSM6N0.png differ diff --git a/sprites/QSM6O0.png b/sprites/QSM6O0.png index 318ced7bf..9dabe294d 100644 Binary files a/sprites/QSM6O0.png and b/sprites/QSM6O0.png differ diff --git a/sprites/QSM6P0.png b/sprites/QSM6P0.png index 802d5d342..794bb317c 100644 Binary files a/sprites/QSM6P0.png and b/sprites/QSM6P0.png differ diff --git a/sprites/QSM6Q0.png b/sprites/QSM6Q0.png index 1621375ff..4b8f57c78 100644 Binary files a/sprites/QSM6Q0.png and b/sprites/QSM6Q0.png differ diff --git a/sprites/QSM6R0.png b/sprites/QSM6R0.png index 2be3ff732..6859484b9 100644 Binary files a/sprites/QSM6R0.png and b/sprites/QSM6R0.png differ diff --git a/zscript/swwm_blazeit.zsc b/zscript/swwm_blazeit.zsc index 51ec92c05..bf507586e 100644 --- a/zscript/swwm_blazeit.zsc +++ b/zscript/swwm_blazeit.zsc @@ -213,7 +213,7 @@ Class HellblazerMissile : Actor Vector3 traildir = -(cos(angle)*cos(pitch),sin(angle)*cos(pitch),sin(-pitch)); for ( int i=0; i<3; i++ ) { - let s = Spawn("SWWMSmoke",level.Vec3Offset(pos,traildir*3)); + let s = Spawn("SWWMHalfSmoke",level.Vec3Offset(pos,traildir*3)); s.SetShade(smokecol*Random[Hellblazer](48,63)); s.scale *= FRandom[Hellblazer](.8,1.2); s.special1 = Random[Hellblazer](0,2); @@ -759,7 +759,7 @@ Class HellblazerClusterMini : HellblazerMissile2 Vector3 traildir = -(cos(angle)*cos(pitch),sin(angle)*cos(pitch),sin(-pitch)); for ( int i=0; i<2; i++ ) { - let s = Spawn("SWWMSmoke",level.Vec3Offset(pos,traildir*3)); + let s = Spawn("SWWMHalfSmoke",level.Vec3Offset(pos,traildir*3)); s.SetShade(smokecol*Random[Hellblazer](48,63)); s.scale *= FRandom[Hellblazer](.6,.8); s.special1 = Random[Hellblazer](0,1); @@ -1045,7 +1045,7 @@ Class HellblazerRavagerArm : Actor Vector3 pvel = (FRandom[ExploS](-1,1),FRandom[ExploS](-1,1),FRandom[ExploS](-1,1)).unit()*FRandom[ExploS](1,5); if ( !(ReactionTime%2) ) { - let s = Spawn("SWWMSmoke",pos); + let s = Spawn("SWWMHalfSmoke",pos); s.vel = pvel+vel*.2; s.SetShade(Color(4,2,2)*Random[ExploS](48,63)); s.special1 = Random[ExploS](2,4); @@ -1124,7 +1124,7 @@ Class HellblazerWarheadArm : Actor SWWMHandler.DoBlast(self,30+2*reactiontime,3000+500*reactiontime); A_Explode(10+reactiontime*4,120+4*reactiontime); Vector3 pvel = (FRandom[ExploS](-1,1),FRandom[ExploS](-1,1),FRandom[ExploS](-1,1)).unit()*FRandom[ExploS](1,5); - let s = Spawn("SWWMSmoke",pos); + let s = Spawn("SWWMHalfSmoke",pos); s.vel = pvel+vel*.2; s.SetShade(Color(4,3,2)*Random[ExploS](48,63)); s.special1 = Random[ExploS](1,3); diff --git a/zscript/swwm_blod.zsc b/zscript/swwm_blod.zsc index 6bda3e6ae..0cc5a1b9c 100644 --- a/zscript/swwm_blod.zsc +++ b/zscript/swwm_blod.zsc @@ -199,9 +199,11 @@ Class mkBloodSmoke : Actor A_FadeOut(.03); A_SetScale(scale.x*1.02); if ( tics > 0 ) tics--; - if ( !SetState(CurState.NextState) ) - return; - tics = CurState.tics; + while ( !tics ) + { + if ( !SetState(CurState.NextState) ) + return; + } } States { diff --git a/zscript/swwm_common.zsc b/zscript/swwm_common.zsc index b3e20422e..58a7b1632 100644 --- a/zscript/swwm_common.zsc +++ b/zscript/swwm_common.zsc @@ -1375,7 +1375,6 @@ Class SWWMHalfSmoke : Actor roll = Frandom[Puff](0,360); scale.x *= RandomPick[Puff](-1,1); scale.y *= RandomPick[Puff](-1,1); - tics = 1+special1; } override void Tick() { @@ -1393,20 +1392,22 @@ Class SWWMHalfSmoke : Actor return; } if ( tics > 0 ) tics--; - if ( !SetState(CurState.NextState) ) - return; - tics = 1+special1; + while ( !tics ) + { + if ( !SetState(CurState.NextState) ) + return; + } } States { Spawn: - XSMK ABCDEFGHIJKLMNOPQRST 1; + XSMK ABCDEFGHIJKLMNOPQRST 1 A_SetTics(1+special1); Stop; } } -Class SWWMSmallSmoke : SWWMSmoke +Class SWWMSmallSmoke : SWWMHalfSmoke { override void PostBeginPlay() { @@ -1417,8 +1418,19 @@ Class SWWMSmallSmoke : SWWMSmoke ang = FRandom[Puff](0,360); pt = FRandom[Puff](-90,90); vel += (cos(pt)*cos(ang),cos(pt)*sin(ang),-sin(pt))*FRandom[Puff](0.04,0.16); + roll = Frandom[Puff](0,360); + scale.x *= RandomPick[Puff](-1,1); + scale.y *= RandomPick[Puff](-1,1); + } + + States + { + Spawn: + QSM6 ABCDEFGHIJKLMNOPQR 1 A_SetTics(1+special1); + Stop; } } + Class SWWMViewSmoke : SWWMSmoke { Vector3 ofs, vvel; diff --git a/zscript/swwm_danmaku.zsc b/zscript/swwm_danmaku.zsc index 8960c54e6..a7bdb8961 100644 --- a/zscript/swwm_danmaku.zsc +++ b/zscript/swwm_danmaku.zsc @@ -437,7 +437,7 @@ Class EvisceratorProj : Actor invoker.heat -= 0.004+0.0004*vel.length(); if ( invoker.heat > 0 ) { - let s = Spawn("SWWMSmoke",pos); + let s = Spawn("SWWMHalfSmoke",pos); s.alpha *= heat; } } diff --git a/zscript/swwm_deathlydeathcannon.zsc b/zscript/swwm_deathlydeathcannon.zsc index 0aa008041..c31c50955 100644 --- a/zscript/swwm_deathlydeathcannon.zsc +++ b/zscript/swwm_deathlydeathcannon.zsc @@ -168,7 +168,7 @@ Class YnykronImpactArm : Actor A_CountDown(); Spawn("YnykronImpactTrail",pos); Vector3 pvel = (FRandom[ExploS](-1,1),FRandom[ExploS](-1,1),FRandom[ExploS](-1,1)).unit()*FRandom[ExploS](1,5); - let s = Spawn("SWWMSmoke",pos); + let s = Spawn("SWWMHalfSmoke",pos); s.vel = pvel+vel*.2; s.special1 = Random[ExploS](1,3); s.scale *= 2.4; @@ -246,16 +246,6 @@ Class YnykronImpact : Actor s.scale *= 3.; s.alpha *= .4; } - if ( bAMBUSH ) - { - numpt = Random[ExploS](2,4); - for ( int i=0; i 0 ) tics--; - while ( !tics ) - { - if ( !SetState(CurState.NextState) ) - return; - } - } - Default - { - RenderStyle "Add"; - Radius 0.1; - Height 0; - Alpha .1; - +NOGRAVITY; - +NOBLOCKMAP; - +NOTELEPORT; - +DONTSPLASH; - +FORCEXYBILLBOARD; - +ROLLSPRITE; - +ROLLCENTER; - +NOINTERACTION; - } - States - { - Spawn: - MOTR ABCDEFGHI -1 Bright; - Stop; - } -} - Class YnykronBeam : Actor { void SpreadOut() @@ -439,12 +386,12 @@ Class YnykronBeam : Actor } for ( int i=0; i= 25600 ) { @@ -531,7 +477,7 @@ Class YnykronBeam : Actor for ( int i=0; i 1 ) { - s = Spawn("SWWMSmoke",Owner.pos); + s = Spawn("SWWMHalfSmoke",Owner.pos); s.vel = Owner.vel*.3+(FRandom[Ponch](-1,1),FRandom[Ponch](-1,1),FRandom[Ponch](-1,1)).unit()*FRandom[Ponch](.1,1.2); s.scale *= 2.; s.A_SetRenderStyle(s.alpha,STYLE_AddShaded); diff --git a/zscript/swwm_shot.zsc b/zscript/swwm_shot.zsc index 738fb87fa..11718b6bb 100644 --- a/zscript/swwm_shot.zsc +++ b/zscript/swwm_shot.zsc @@ -464,7 +464,7 @@ Class DragonBreathArm : Actor Vector3 pvel = (FRandom[ExploS](-1,1),FRandom[ExploS](-1,1),FRandom[ExploS](-1,1)).unit()*FRandom[ExploS](1,5); if ( !(ReactionTime%2) ) { - let s = Spawn("SWWMSmoke",pos); + let s = Spawn("SWWMHalfSmoke",pos); s.vel = pvel+vel*.2; s.SetShade(Color(1,1,1)*Random[ExploS](96,192)); s.special1 = Random[ExploS](2,4); @@ -673,7 +673,7 @@ Class SaltBeam : Actor for ( int i=4; i pop = "CandyPop", Class smk = "SWWMSmoke" ) + action void A_Spread( Class pop = "CandyPop", Class smk = "SWWMHalfSmoke" ) { Vector3 tdir = level.Vec3Diff(pos,invoker.nextpos); Vector3 pvel = .1*tdir+(FRandom[ExploS](-1,1),FRandom[ExploS](-1,1),FRandom[ExploS](-1,1)).unit()*FRandom[ExploS](.1,.3); @@ -378,7 +378,7 @@ Class CandyMagArm : Actor vel = (vel*.1+(FRandom[ExploS](-.7,.7),FRandom[ExploS](-.7,.7),FRandom[ExploS](-.7,.7))).unit()*spd; A_Explode(80+reactiontime*7,50+6*reactiontime); Vector3 pvel = (FRandom[ExploS](-1,1),FRandom[ExploS](-1,1),FRandom[ExploS](-1,1)).unit()*FRandom[ExploS](1,5); - let s = Spawn("SWWMSmoke",pos); + let s = Spawn("SWWMHalfSmoke",pos); s.vel = pvel+vel*.2; s.SetShade(Color(1,1,1)*Random[ExploS](64,224)); s.special1 = Random[ExploS](2,7); @@ -455,7 +455,7 @@ Class CandyMagArmBig : CandyMagArm vel = (vel*.1+(FRandom[ExploS](-.5,.5),FRandom[ExploS](-.5,.5),FRandom[ExploS](-.5,.5))).unit()*spd; A_Explode(120+reactiontime*10,100+8*reactiontime); Vector3 pvel = (FRandom[ExploS](-1,1),FRandom[ExploS](-1,1),FRandom[ExploS](-1,1)).unit()*FRandom[ExploS](1,5); - let s = Spawn("SWWMSmoke",pos); + let s = Spawn("SWWMHalfSmoke",pos); s.vel = pvel+vel*.2; s.SetShade(Color(1,1,1)*Random[ExploS](64,224)); s.special1 = Random[ExploS](2,7); diff --git a/zscript/swwm_thiccboolet.zsc b/zscript/swwm_thiccboolet.zsc index 9a534cea3..8d7fca832 100644 --- a/zscript/swwm_thiccboolet.zsc +++ b/zscript/swwm_thiccboolet.zsc @@ -403,7 +403,7 @@ Class SilverBullet : SWWMWeapon if ( !Random[Boolet](0,1) ) continue; Vector3 ofs = level.Vec3Offset(origin,dir*i); if ( !level.IsPointInLevel(ofs) ) continue; - let b = Spawn("SWWMSmoke",ofs); + let b = Spawn("SWWMHalfSmoke",ofs); b.Scale *= FRandom[Boolet](.9,1.6); b.alpha *= .5; b.special1 = Random[Boolet](0,2);