diff --git a/language.version b/language.version index 2c068961b..8ce4845f4 100644 --- a/language.version +++ b/language.version @@ -1,2 +1,2 @@ [default] -SWWM_MODVER="\chSWWM \cwGZ\c- r459 (Thu 6 Aug 23:52:50 CEST 2020)"; +SWWM_MODVER="\chSWWM \cwGZ\c- r460 (Fri 7 Aug 00:08:13 CEST 2020)"; diff --git a/modeldef.candygun b/modeldef.candygun index 0282890c1..569624714 100644 --- a/modeldef.candygun +++ b/modeldef.candygun @@ -7,9 +7,10 @@ Model "CandyCasing" Scale 0.03 0.03 0.03 USEACTORPITCH USEACTORROLL - ZOffset 1 FrameIndex XZW1 A 0 0 + ZOffset 0.5 + FrameIndex XZW1 B 0 0 } Model "CandyMag" @@ -24,7 +25,7 @@ Model "CandyMag" Skin 0 "CandyGun_EmptyMag.png" FrameIndex XZW1 A 0 0 RollOffset 90 - ZOffset 1 + ZOffset 0.5 FrameIndex XZW1 B 0 0 RollOffset -90 FrameIndex XZW1 C 0 0 diff --git a/modeldef.eviscerator b/modeldef.eviscerator index 6d355dd84..2d61b494d 100644 --- a/modeldef.eviscerator +++ b/modeldef.eviscerator @@ -9,8 +9,8 @@ Model "EvisceratorCasing" USEACTORROLL FrameIndex XZW1 A 0 0 + ZOffset 1 PitchOffset 90 - ZOffset 2 FrameIndex XZW1 B 0 0 PitchOffset -90 FrameIndex XZW1 C 0 0 diff --git a/modeldef.explodiumgun b/modeldef.explodiumgun index b0b145dce..8ced55d79 100644 --- a/modeldef.explodiumgun +++ b/modeldef.explodiumgun @@ -7,9 +7,10 @@ Model "ExplodiumCasing" Scale 0.03 0.03 0.03 USEACTORPITCH USEACTORROLL - ZOffset 1 FrameIndex XZW1 A 0 0 + ZOffset 0.5 + FrameIndex XZW1 B 0 0 } Model "ExplodiumMag" @@ -24,7 +25,7 @@ Model "ExplodiumMag" Skin 0 "ExplodiumGun_EmptyMag.png" FrameIndex XZW1 A 0 0 RollOffset 90 - ZOffset 1 + ZOffset 0.5 FrameIndex XZW1 B 0 0 RollOffset -90 FrameIndex XZW1 C 0 0 diff --git a/modeldef.silverbullet b/modeldef.silverbullet index 8cfba1b10..cdda69ee2 100644 --- a/modeldef.silverbullet +++ b/modeldef.silverbullet @@ -5,12 +5,13 @@ Model "SilverBulletCasing" Model 0 "SilverbulletCase_d.3d" Skin 0 "SilverbulletBullet.png" Scale 0.04 0.04 0.04 - ZOffset 1 AngleOffset 90 USEACTORPITCH USEACTORROLL FrameIndex XZW1 A 0 0 + ZOffset 1 + FrameIndex XZW1 B 0 0 } Model "SilverBulletCasing2" { @@ -19,12 +20,13 @@ Model "SilverBulletCasing2" Model 0 "SilverbulletCase_FCB_d.3d" Skin 0 "SilverbulletBullet_FCB.png" Scale 0.04 0.04 0.04 - ZOffset 1 AngleOffset 90 USEACTORPITCH USEACTORROLL FrameIndex XZW1 A 0 0 + ZOffset 1 + FrameIndex XZW1 B 0 0 } Model "SilverBulletMag" { @@ -38,7 +40,7 @@ Model "SilverBulletMag" FrameIndex XZW1 A 0 0 RollOffset 90 - ZOffset 2 + ZOffset 1.8 FrameIndex XZW1 B 0 0 RollOffset -90 FrameIndex XZW1 C 0 0 @@ -55,7 +57,7 @@ Model "SilverBulletMag2" FrameIndex XZW1 A 0 0 RollOffset 90 - ZOffset 2 + ZOffset 1.8 FrameIndex XZW1 B 0 0 RollOffset -90 FrameIndex XZW1 C 0 0 diff --git a/modeldef.sparkster b/modeldef.sparkster index 26dff0b9c..3b6162935 100644 --- a/modeldef.sparkster +++ b/modeldef.sparkster @@ -5,11 +5,15 @@ Model "SparksterMag" Model 0 "SparksterAmmo_d.3d" Skin 0 "SparksterAmmo.png" Scale 0.07 0.07 0.07 - ZOffset 1.6 USEACTORPITCH USEACTORROLL FrameIndex XZW1 A 0 0 + ZOffset 1.5 + FrameIndex XZW1 B 0 0 + RollOffset 90 + ZOffset 1.2 + FrameIndex XZW1 C 0 0 } Model "BiosparkArc" diff --git a/zscript/swwm_danmaku.zsc b/zscript/swwm_danmaku.zsc index 1b5239139..885bf47a6 100644 --- a/zscript/swwm_danmaku.zsc +++ b/zscript/swwm_danmaku.zsc @@ -216,8 +216,15 @@ Class EvisceratorChunk : Actor { target.SpawnBlood(pos,AngleTo(target),damage); A_StartSound("eviscerator/hitf",CHAN_WEAPON,CHANF_OVERLAP,.1); - if ( swwm_extraalert || !Random[Eviscerator](0,3) ) A_AlertMonsters(900); } + else + { + let l = Spawn("ChunkImpact",pos); + l.angle = angle+180; + l.pitch = -pitch; + A_StartSound("eviscerator/hit",CHAN_WEAPON,CHANF_OVERLAP,.1); + } + if ( swwm_extraalert || !Random[Eviscerator](0,3) ) A_AlertMonsters(900); return -1; } @@ -238,10 +245,20 @@ Class EvisceratorChunk : Actor if ( victim.health-amt <= 0 ) { // bleed if not gibbed (reduces effect spam) - if ( !victim.bNOBLOOD && !victim.bINVULNERABLE && (victim.health-amt > victim.GetGibHealth()) ) + if ( victim.health-amt > victim.GetGibHealth() ) { - victim.SpawnBlood(pos,AngleTo(victim),damage); - A_StartSound("eviscerator/hitf",CHAN_WEAPON,CHANF_OVERLAP,.1); + if ( !victim.bNOBLOOD && !victim.bINVULNERABLE ) + { + victim.SpawnBlood(pos,AngleTo(victim),damage); + A_StartSound("eviscerator/hitf",CHAN_WEAPON,CHANF_OVERLAP,.1); + } + else + { + let l = Spawn("ChunkImpact",pos); + l.angle = angle+180; + l.pitch = -pitch; + A_StartSound("eviscerator/hit",CHAN_WEAPON,CHANF_OVERLAP,.1); + } } vel *= .65; // reduce velocity as it rips return 1; diff --git a/zscript/swwm_inventory.zsc b/zscript/swwm_inventory.zsc index 75cd72b1c..f1973ac29 100644 --- a/zscript/swwm_inventory.zsc +++ b/zscript/swwm_inventory.zsc @@ -416,7 +416,7 @@ Class SWWMCasing : Actor abstract } Goto Spawn; Death: - XZW1 A -1 + XZW1 B -1 { pitch = roll = 0; angle = FRandom[Junk](0,360); diff --git a/zscript/swwm_sparkyboi.zsc b/zscript/swwm_sparkyboi.zsc index e56ef190b..e8a825f70 100644 --- a/zscript/swwm_sparkyboi.zsc +++ b/zscript/swwm_sparkyboi.zsc @@ -1908,11 +1908,12 @@ Class SparksterMag : SWWMCasing States { Death: - #### # -1 + XZW1 BC -1 { pitch = 0; angle = FRandom[Junk](0,360); roll = 0; + frame = RandomPick[Junk](1,2); } Stop; }