diff --git a/sndinfo.txt b/sndinfo.txt index 1222d3eb8..cd2445190 100644 --- a/sndinfo.txt +++ b/sndinfo.txt @@ -341,6 +341,17 @@ demolitionist/youdied sounds/demolitionist/demoded.ogg demolitionist/parry sounds/demolitionist/demoparry.ogg demolitionist/handsup sounds/demolitionist/demogesturestart.ogg demolitionist/handsdown sounds/demolitionist/demogestureend.ogg +demolitionist/whits1 sounds/demolitionist/demowhits1.ogg +demolitionist/whits2 sounds/demolitionist/demowhits2.ogg +demolitionist/whits3 sounds/demolitionist/demowhits3.ogg +$random demolitionist/whits { demolitionist/whits1 demolitionist/whits2 demolitionist/whits3 } +demolitionist/whitm1 sounds/demolitionist/demowhitm1.ogg +demolitionist/whitm2 sounds/demolitionist/demowhitm2.ogg +demolitionist/whitm3 sounds/demolitionist/demowhitm3.ogg +$random demolitionist/whitm { demolitionist/whitm1 demolitionist/whitm2 demolitionist/whitm3 } +demolitionist/whitl1 sounds/demolitionist/demowhitl1.ogg +demolitionist/whitl2 sounds/demolitionist/demowhitl2.ogg +$random demolitionist/whitl { demolitionist/whitl1 demolitionist/whitl2 } $playersound demolitionist neutral *grunt DSEMPTY $playeralias demolitionist neutral *pain100 demolitionist/lopain diff --git a/sounds/demolitionist/demowhitl1.ogg b/sounds/demolitionist/demowhitl1.ogg new file mode 100644 index 000000000..872d0f1d1 Binary files /dev/null and b/sounds/demolitionist/demowhitl1.ogg differ diff --git a/sounds/demolitionist/demowhitl2.ogg b/sounds/demolitionist/demowhitl2.ogg new file mode 100644 index 000000000..245717ec8 Binary files /dev/null and b/sounds/demolitionist/demowhitl2.ogg differ diff --git a/sounds/demolitionist/demowhitm1.ogg b/sounds/demolitionist/demowhitm1.ogg new file mode 100644 index 000000000..197210648 Binary files /dev/null and b/sounds/demolitionist/demowhitm1.ogg differ diff --git a/sounds/demolitionist/demowhitm2.ogg b/sounds/demolitionist/demowhitm2.ogg new file mode 100644 index 000000000..9c8194e68 Binary files /dev/null and b/sounds/demolitionist/demowhitm2.ogg differ diff --git a/sounds/demolitionist/demowhitm3.ogg b/sounds/demolitionist/demowhitm3.ogg new file mode 100644 index 000000000..4fc4bcdb5 Binary files /dev/null and b/sounds/demolitionist/demowhitm3.ogg differ diff --git a/sounds/demolitionist/demowhits1.ogg b/sounds/demolitionist/demowhits1.ogg new file mode 100644 index 000000000..8af4e68bf Binary files /dev/null and b/sounds/demolitionist/demowhits1.ogg differ diff --git a/sounds/demolitionist/demowhits2.ogg b/sounds/demolitionist/demowhits2.ogg new file mode 100644 index 000000000..afccec741 Binary files /dev/null and b/sounds/demolitionist/demowhits2.ogg differ diff --git a/sounds/demolitionist/demowhits3.ogg b/sounds/demolitionist/demowhits3.ogg new file mode 100644 index 000000000..6f054574a Binary files /dev/null and b/sounds/demolitionist/demowhits3.ogg differ diff --git a/zscript/swwm_blazeit.zsc b/zscript/swwm_blazeit.zsc index 4309dc303..f048468fe 100644 --- a/zscript/swwm_blazeit.zsc +++ b/zscript/swwm_blazeit.zsc @@ -1926,7 +1926,7 @@ Class Hellblazer : SWWMWeapon XZWQ KLM 2; XZWQ N 2 A_Parry(9); XZWQ OP 1; - XZWQ Q 1 A_Melee(75); + XZWQ Q 1 A_Melee(75,"demolitionist/whitl"); XZWQ RSTUV 2; XZWQ W 2 A_StartSound("hellblazer/meleeend",CHAN_WEAPON,CHANF_OVERLAP); XZWQ XYZ 2; diff --git a/zscript/swwm_common.zsc b/zscript/swwm_common.zsc index 8cbc2e49a..a4f990a4c 100644 --- a/zscript/swwm_common.zsc +++ b/zscript/swwm_common.zsc @@ -3048,7 +3048,8 @@ Class SWWMHDoomHandler : StaticEventHandler override void UiTick() { - if ( (gamestate == GS_LEVEL) && detected ) + if ( !detected ) return; + if ( gamestate == GS_LEVEL ) { if ( timer == 50 ) { diff --git a/zscript/swwm_danmaku.zsc b/zscript/swwm_danmaku.zsc index 6fccef113..044689490 100644 --- a/zscript/swwm_danmaku.zsc +++ b/zscript/swwm_danmaku.zsc @@ -915,7 +915,7 @@ Class Eviscerator : SWWMWeapon XZW9 AB 1; XZW9 C 1 A_Parry(9); XZW9 D 1; - XZW9 E 2 A_Melee(60); + XZW9 E 2 A_Melee(60,"demolitionist/whitm"); XZW9 FGH 2; XZW9 I 2 A_StartSound("eviscerator/meleeend",CHAN_WEAPON,CHANF_OVERLAP); XZW9 JKL 2; @@ -926,7 +926,7 @@ Class Eviscerator : SWWMWeapon XZWA QRS 1; XZWA T 1 A_Parry(9); XZWA U 1; - XZWA V 2 A_Melee(60); + XZWA V 2 A_Melee(60,"demolitionist/whitm"); XZWA WXY 2; XZWA Z 2 A_StartSound("eviscerator/meleeend",CHAN_WEAPON,CHANF_OVERLAP); XZWB ABC 2; diff --git a/zscript/swwm_deepdarkimpact.zsc b/zscript/swwm_deepdarkimpact.zsc index adf19b3b4..929b571eb 100644 --- a/zscript/swwm_deepdarkimpact.zsc +++ b/zscript/swwm_deepdarkimpact.zsc @@ -477,7 +477,7 @@ Class DeepImpact : SWWMWeapon XZW4 I 2; XZW4 J 1 A_Parry(9); XZW4 KLM 1; - XZW4 N 4 A_Melee(60); + XZW4 N 4 A_Melee(60,"demolitionist/whits"); XZW4 O 3 { invoker.PlayUpSound(self); } XZW4 PQRSTUV 2; Goto Ready; diff --git a/zscript/swwm_inventory.zsc b/zscript/swwm_inventory.zsc index 4c2c7b9ac..02bcd9a4b 100644 --- a/zscript/swwm_inventory.zsc +++ b/zscript/swwm_inventory.zsc @@ -997,7 +997,7 @@ Class SWWMWeapon : Weapon abstract if ( !FindInventory("ParryDamageChecker") ) GiveInventory("ParryDamageChecker",1); // need this so parried projectiles deal extra damage } - private action bool TryMelee( double angle, int dmg ) + private action bool TryMelee( double angle, int dmg, String hitsound = "" ) { FTranslatedLineTarget t; double slope = AimLineAttack(angle,1.5*DEFMELEERANGE,t,0.,ALF_CHECK3D); @@ -1048,13 +1048,13 @@ Class SWWMWeapon : Weapon abstract } A_QuakeEx(quakin/2,quakin/2,quakin/2,3,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.06*quakin); if ( raging ) A_StartSound(bloodless?"pusher/althit":"pusher/altmeat",CHAN_WEAPON,CHANF_OVERLAP); - else A_StartSound(bloodless?"demolitionist/punch":"demolitionist/punchf",CHAN_WEAPON,CHANF_OVERLAP); + else A_StartSound((hitsound!="")?hitsound:bloodless?"demolitionist/punch":"demolitionist/punchf",CHAN_WEAPON,CHANF_OVERLAP); A_AlertMonsters(300); return true; } return false; } - action void A_Melee( int dmg = 40 ) + action void A_Melee( int dmg = 40, String hitsound = "" ) { // temporarily disable parry field so we can trace through if ( invoker.pfield ) invoker.pfield.bSHOOTABLE = false; @@ -1087,7 +1087,7 @@ Class SWWMWeapon : Weapon abstract int maxang = raging?18:12; for ( int i=0; i