Tweak Hellblazer hold-fire behavior, added a sound cue.
Small melee tweaks.
This commit is contained in:
parent
d4d07e3b04
commit
6ad1952e4a
14 changed files with 36 additions and 21 deletions
|
|
@ -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-";
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
BIN
sounds/hellblazer/blaze_hold.ogg
Normal file
BIN
sounds/hellblazer/blaze_hold.ogg
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<spread; i+=step )
|
||||
|
|
@ -378,7 +378,7 @@ extend Class SWWMWeapon
|
|||
for ( int i=0; i<hits.Size(); i++ )
|
||||
{
|
||||
diff += deltaangle(self.angle,AngleTo(hits[i].a));
|
||||
SWWMUtility.DoKnockback(hits[i].a,hits[i].dir+(0,0,.2),dmg*2000);
|
||||
SWWMUtility.DoKnockback(hits[i].a,hits[i].dir,dmg*2000*kickmul);
|
||||
// lol oops
|
||||
if ( !hits[i].a.bDORMANT ) hits[i].a.DaggerAlert(self);
|
||||
if ( !hits[i].a.bNOBLOOD && !hits[i].a.bDORMANT && (raging || !hits[i].a.bINVULNERABLE) ) blooded = true;
|
||||
|
|
@ -425,7 +425,7 @@ extend Class SWWMWeapon
|
|||
A_BumpFOV(.96);
|
||||
return true;
|
||||
}
|
||||
action void A_Melee( int dmg = 40, String hitsound = "", double rangemul = 1., double spreadmul = 1. )
|
||||
action void A_Melee( int dmg = 40, String hitsound = "", double rangemul = 1., double spreadmul = 1., double kickmul = 1. )
|
||||
{
|
||||
let raging = RagekitPower(FindInventory("RagekitPower"));
|
||||
if ( raging ) rangemul += .2;
|
||||
|
|
@ -457,7 +457,7 @@ extend Class SWWMWeapon
|
|||
invoker.wallponch = false;
|
||||
// check for shootables
|
||||
SWWMBulletTrail.DoTrail(self,origin,dir,DEFMELEERANGE*rangemul,0);
|
||||
if ( TryMelee((raging?.3:.2)*spreadmul,dmg,hitsound,rangemul) )
|
||||
if ( TryMelee((raging?.3:.2)*spreadmul,dmg,hitsound,rangemul,kickmul) )
|
||||
return;
|
||||
// check for walls instead
|
||||
FTranslatedLineTarget t;
|
||||
|
|
|
|||
|
|
@ -711,9 +711,12 @@ Class Hellblazer : SWWMWeapon
|
|||
}
|
||||
if ( player.cmd.buttons&BT_ATTACK )
|
||||
{
|
||||
if ( (player.cmd.buttons&BT_ALTATTACK) || (invoker.clipcount < 2) )
|
||||
return A_JumpByAmmoType("PreFire_1","PreFire_2","PreFire_3","PreFire_4","Ready_G");
|
||||
invoker.preloadcnt++;
|
||||
if ( (player.cmd.buttons&BT_ALTATTACK) || ((invoker.clipcount < 2) && (invoker.preloadcnt >= 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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue