diff --git a/language.version b/language.version index 5ea039719..fe1c98461 100644 --- a/language.version +++ b/language.version @@ -1,3 +1,3 @@ [default] -SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r482 \cu(Sat 15 May 12:53:55 CEST 2021)\c-"; -SWWM_SHORTVER="\cw0.9.11b-pre r482 \cu(2021-05-15 12:53:55)\c-"; +SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r484 \cu(Sat 15 May 12:55:06 CEST 2021)\c-"; +SWWM_SHORTVER="\cw0.9.11b-pre r484 \cu(2021-05-15 12:55:06)\c-"; diff --git a/sndinfo.txt b/sndinfo.txt index 4e0f83b52..2608c3c2e 100644 --- a/sndinfo.txt +++ b/sndinfo.txt @@ -729,6 +729,7 @@ $limit hellblazer/hitw 32 hellblazer/bounce sounds/hellblazer/blaze_bounce.ogg hellblazer/fly sounds/hellblazer/blaze_fly.ogg hellblazer/preload sounds/hellblazer/blaze_preload.ogg +hellblazer/hold sounds/hellblazer/blaze_hold.ogg hellblazer/lock sounds/hellblazer/blaze_lock.ogg hellblazer/clear sounds/hellblazer/blaze_clear.ogg diff --git a/sounds/hellblazer/blaze_hold.ogg b/sounds/hellblazer/blaze_hold.ogg new file mode 100644 index 000000000..ef41a9a94 Binary files /dev/null and b/sounds/hellblazer/blaze_hold.ogg differ diff --git a/sounds/hellblazer/blaze_shift.ogg b/sounds/hellblazer/blaze_shift.ogg index ac7204066..a6cfd20a9 100644 Binary files a/sounds/hellblazer/blaze_shift.ogg and b/sounds/hellblazer/blaze_shift.ogg differ diff --git a/sounds/hellblazer/blaze_spin.ogg b/sounds/hellblazer/blaze_spin.ogg index c10a2d8ce..27f809e16 100644 Binary files a/sounds/hellblazer/blaze_spin.ogg and b/sounds/hellblazer/blaze_spin.ogg differ diff --git a/zscript/utility/swwm_utility.zsc b/zscript/utility/swwm_utility.zsc index 90c256f46..7068681a7 100644 --- a/zscript/utility/swwm_utility.zsc +++ b/zscript/utility/swwm_utility.zsc @@ -1009,7 +1009,7 @@ Class SWWMUtility } // Apply full 3D knockback in a specific direction, useful for hitscan - static play void DoKnockback( Actor Victim, Vector3 HitDirection, double MomentumTransfer ) + static play void DoKnockback( Actor Victim, Vector3 HitDirection, double MomentumTransfer, bool ExtraZThrust = false ) { if ( !Victim ) return; @@ -1021,7 +1021,7 @@ Class SWWMUtility return; Vector3 Momentum = HitDirection*MomentumTransfer; if ( (Victim.pos.z <= Victim.floorz) || !Victim.TestMobjZ() ) - Momentum.z = max(Momentum.z,.1*Momentum.length()); + Momentum.z = max(Momentum.z,(ExtraZThrust?.4:.1)*Momentum.length()); Momentum /= GameTicRate*max(50,Victim.Mass); Victim.vel += Momentum; } diff --git a/zscript/weapons/swwm_baseweapon_melee.zsc b/zscript/weapons/swwm_baseweapon_melee.zsc index dabc3e526..9a1e0f16f 100644 --- a/zscript/weapons/swwm_baseweapon_melee.zsc +++ b/zscript/weapons/swwm_baseweapon_melee.zsc @@ -315,7 +315,7 @@ extend Class SWWMWeapon GiveInventory("ParryDamageChecker",1); // need this so parried projectiles deal extra damage } // multi-hit cone rather than the usual one-hit arc, more fun - private action bool TryMelee( double spread, int dmg, String hitsound = "", double rangemul = 1. ) + private action bool TryMelee( double spread, int dmg, String hitsound = "", double rangemul = 1., double kickmul = 1. ) { Vector3 x, y, z, dir; [x, y, z] = swwm_CoordUtil.GetAxes(pitch,angle,roll); @@ -324,7 +324,7 @@ extend Class SWWMWeapon hits.Clear(); FLineTraceData d; int rings = 1; - double step = spread/10.; + double step = spread/20.; double range = 1.5*DEFMELEERANGE*rangemul; bool raging = CountInv("RagekitPower"); for ( double i=0; i= 10)) ) + { + invoker.preloadcnt = 0; + return A_JumpByAmmoType("PreFire_1","PreFire_2","PreFire_3","PreFire_4","Ready_G"); + } if ( invoker.preloadcnt >= 10 ) { invoker.preloadcnt = 0; @@ -781,9 +784,12 @@ Class Hellblazer : SWWMWeapon } if ( player.cmd.buttons&BT_ALTATTACK ) { - if ( (player.cmd.buttons&BT_ATTACK) || (invoker.clipcount < 2) ) - return A_JumpByAmmoType("PreAltFire_1","PreAltFire_2","PreAltFire_3","PreAltFire_4","Ready_G"); invoker.preloadcnt++; + if ( (player.cmd.buttons&BT_ATTACK) || ((invoker.clipcount < 2) || (invoker.preloadcnt >= 10)) ) + { + invoker.preloadcnt = 0; + return A_JumpByAmmoType("PreAltFire_1","PreAltFire_2","PreAltFire_3","PreAltFire_4","Ready_G"); + } if ( invoker.preloadcnt >= 10 ) { invoker.preloadcnt = 0; @@ -927,6 +933,7 @@ Class Hellblazer : SWWMWeapon XZW2 A 0 { invoker.seekcnt = 0; + A_StartSound("hellblazer/hold",CHAN_WEAPON,CHANF_OVERLAP); } XZW2 A 1 { @@ -948,6 +955,7 @@ Class Hellblazer : SWWMWeapon XZW6 V 0 { invoker.seekcnt = 0; + A_StartSound("hellblazer/hold",CHAN_WEAPON,CHANF_OVERLAP); } XZW6 V 1 { @@ -969,6 +977,7 @@ Class Hellblazer : SWWMWeapon XZWB T 0 { invoker.seekcnt = 0; + A_StartSound("hellblazer/hold",CHAN_WEAPON,CHANF_OVERLAP); } XZWB T 1 { @@ -990,6 +999,7 @@ Class Hellblazer : SWWMWeapon XZWG R 0 { invoker.seekcnt = 0; + A_StartSound("hellblazer/hold",CHAN_WEAPON,CHANF_OVERLAP); } XZWG R 1 { @@ -1011,6 +1021,7 @@ Class Hellblazer : SWWMWeapon XZW2 A 0 { invoker.seekcnt = 0; + A_StartSound("hellblazer/hold",CHAN_WEAPON,CHANF_OVERLAP); } XZW2 A 1 { @@ -1032,6 +1043,7 @@ Class Hellblazer : SWWMWeapon XZW6 V 0 { invoker.seekcnt = 0; + A_StartSound("hellblazer/hold",CHAN_WEAPON,CHANF_OVERLAP); } XZW6 V 1 { @@ -1053,6 +1065,7 @@ Class Hellblazer : SWWMWeapon XZWB T 0 { invoker.seekcnt = 0; + A_StartSound("hellblazer/hold",CHAN_WEAPON,CHANF_OVERLAP); } XZWB T 1 { @@ -1074,6 +1087,7 @@ Class Hellblazer : SWWMWeapon XZWG R 0 { invoker.seekcnt = 0; + A_StartSound("hellblazer/hold",CHAN_WEAPON,CHANF_OVERLAP); } XZWG R 1 { @@ -1343,7 +1357,7 @@ Class Hellblazer : SWWMWeapon XZWQ KLM 2; XZWQ N 2 A_Parry(9); XZWQ OP 1; - XZWQ Q 1 A_Melee(75,"demolitionist/whitl",1.05,1.2); + XZWQ Q 1 A_Melee(75,"demolitionist/whitl",1.05,1.2,1.2); XZWQ RSTUV 2; XZWQ W 2 A_StartSound("hellblazer/meleeend",CHAN_WEAPON,CHANF_OVERLAP); XZWQ XYZ 2; diff --git a/zscript/weapons/swwm_cbt.zsc b/zscript/weapons/swwm_cbt.zsc index 08aed4af2..3ebe8fbd7 100644 --- a/zscript/weapons/swwm_cbt.zsc +++ b/zscript/weapons/swwm_cbt.zsc @@ -1242,7 +1242,7 @@ Class Wallbuster : SWWMWeapon XZW9 GHI 2; XZW9 J 2 A_Parry(9); XZW9 KLM 1; - XZW9 N 1 A_Melee(70,"demolitionist/whitl",1.2,1.4); + XZW9 N 1 A_Melee(70,"demolitionist/whitl",1.2,1.4,1.3); XZW9 OPQRS 2; XZW9 T 2 A_StartSound("wallbuster/meleeend",CHAN_WEAPON,CHANF_OVERLAP); XZW9 UVW 2; diff --git a/zscript/weapons/swwm_danmaku.zsc b/zscript/weapons/swwm_danmaku.zsc index 3835f56b9..35a4f27af 100644 --- a/zscript/weapons/swwm_danmaku.zsc +++ b/zscript/weapons/swwm_danmaku.zsc @@ -481,7 +481,7 @@ Class Eviscerator : SWWMWeapon XZW9 AB 1; XZW9 C 1 A_Parry(9); XZW9 D 1; - XZW9 E 2 A_Melee(60,"demolitionist/whitm",1.1,1.2); + XZW9 E 2 A_Melee(60,"demolitionist/whitm",1.1,1.2,1.2); XZW9 FGH 2; XZW9 I 2 A_StartSound("eviscerator/meleeend",CHAN_WEAPON,CHANF_OVERLAP); XZW9 JKL 2; diff --git a/zscript/weapons/swwm_deathlydeathcannon.zsc b/zscript/weapons/swwm_deathlydeathcannon.zsc index d248da00a..3b4d502e0 100644 --- a/zscript/weapons/swwm_deathlydeathcannon.zsc +++ b/zscript/weapons/swwm_deathlydeathcannon.zsc @@ -515,7 +515,7 @@ Class Ynykron : SWWMWeapon XZW9 AB 2; XZW9 C 1 A_Parry(9); XZW9 DE 1; - XZW9 F 1 A_Melee(100,"demolitionist/whitl",1.5,1.6); + XZW9 F 1 A_Melee(100,"demolitionist/whitl",1.5,1.6,1.7); XZW9 GHIJK 1; XZW9 LMNO 2; XZW9 P 2 A_StartSound("ynykron/meleeend",CHAN_WEAPON,CHANF_OVERLAP); diff --git a/zscript/weapons/swwm_jackhammer.zsc b/zscript/weapons/swwm_jackhammer.zsc index 92cd35222..944f18580 100644 --- a/zscript/weapons/swwm_jackhammer.zsc +++ b/zscript/weapons/swwm_jackhammer.zsc @@ -351,7 +351,7 @@ Class PusherWeapon : SWWMWeapon XZW5 ABC 2; XZW5 D 1 A_Parry(9); XZW5 EFGH 1; - XZW5 I 0 A_Melee(70,"demolitionist/whitl",1.1,1.2); + XZW5 I 0 A_Melee(70,"demolitionist/whitl",1.1,1.2,1.2); XZW5 IJ 2; XZW5 K 2 { invoker.PlayUpSound(self); } XZW5 LM 2; diff --git a/zscript/weapons/swwm_sparkyboi.zsc b/zscript/weapons/swwm_sparkyboi.zsc index 5bf4912d8..161200b6e 100644 --- a/zscript/weapons/swwm_sparkyboi.zsc +++ b/zscript/weapons/swwm_sparkyboi.zsc @@ -540,7 +540,7 @@ Class Sparkster : SWWMWeapon XZW4 EFG 2; XZW4 H 1 A_Parry(9); XZW4 IJ 1; - XZW4 K 2 A_Melee(60,"demolitionist/whitm",1.,1.1); + XZW4 K 2 A_Melee(60,"demolitionist/whitm",1.,1.1,1.1); XZW4 LMNOPQ 2; XZW4 R 2 A_StartSound("biospark/meleeend",CHAN_WEAPON,CHANF_OVERLAP); XZW4 STUVWX 2; diff --git a/zscript/weapons/swwm_thiccboolet.zsc b/zscript/weapons/swwm_thiccboolet.zsc index c30671d1e..4f1c600f0 100644 --- a/zscript/weapons/swwm_thiccboolet.zsc +++ b/zscript/weapons/swwm_thiccboolet.zsc @@ -1421,7 +1421,7 @@ Class SilverBullet : SWWMWeapon XZW6 IJK 3; XZW6 L 1 A_Parry(9); XZW6 MN 1; - XZW6 O 1 A_Melee(90,"demolitionist/whitl",1.6,2.); + XZW6 O 1 A_Melee(90,"demolitionist/whitl",1.6,2.,2.); XZW6 PQ 1; XZW6 RST 2; XZW6 U 3 A_StartSound("silverbullet/meleeend",CHAN_WEAPON,CHANF_OVERLAP); @@ -1438,7 +1438,7 @@ Class SilverBullet : SWWMWeapon XZWC IJK 3; XZWC L 1 A_Parry(9); XZWC MN 1; - XZWC O 1 A_Melee(90,"demolitionist/whitl",1.6,2.); + XZWC O 1 A_Melee(90,"demolitionist/whitl",1.6,2.,2.); XZWC PQ 1; XZWC RST 2; XZWC U 3 A_StartSound("silverbullet/meleeend",CHAN_WEAPON,CHANF_OVERLAP);