Implement "emergency melee" for cases where the player has no weapons whatsoever.
This commit is contained in:
parent
67483877c0
commit
4fc0713ec2
3 changed files with 60 additions and 5 deletions
|
|
@ -1,3 +1,3 @@
|
|||
[default]
|
||||
SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r232 \cu(Mon 25 Jan 17:32:44 CET 2021)\c-";
|
||||
SWWM_SHORTVER="\cw0.9.11b-pre r232 \cu(2021-01-25 17:32:44)\c-";
|
||||
SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r232 \cu(Mon 25 Jan 21:14:52 CET 2021)\c-";
|
||||
SWWM_SHORTVER="\cw0.9.11b-pre r232 \cu(2021-01-25 21:14:52)\c-";
|
||||
|
|
|
|||
|
|
@ -144,6 +144,33 @@ Model "SWWMGesture"
|
|||
FrameIndex XZW5 J 0 19
|
||||
FrameIndex XZW5 K 0 20
|
||||
}
|
||||
Model "SWWMGesture"
|
||||
{
|
||||
Path "models"
|
||||
Model 0 "QuickPunch1st_d.3d"
|
||||
SurfaceSkin 0 0 "DemoTags.png"
|
||||
SurfaceSkin 0 1 "DemoArms.png"
|
||||
SurfaceSkin 0 2 "DemoSoft.png"
|
||||
|
||||
AngleOffset -90
|
||||
Scale -0.005 0.0025 0.005
|
||||
|
||||
// Punch
|
||||
FrameIndex XZW0 A 0 0
|
||||
FrameIndex XZW0 B 0 1
|
||||
FrameIndex XZW0 C 0 2
|
||||
FrameIndex XZW0 D 0 3
|
||||
FrameIndex XZW0 E 0 4
|
||||
FrameIndex XZW0 F 0 5
|
||||
FrameIndex XZW0 G 0 6
|
||||
FrameIndex XZW0 H 0 7
|
||||
FrameIndex XZW0 I 0 8
|
||||
FrameIndex XZW0 J 0 9
|
||||
FrameIndex XZW0 K 0 10
|
||||
FrameIndex XZW0 L 0 11
|
||||
FrameIndex XZW0 M 0 12
|
||||
FrameIndex XZW0 N 0 13
|
||||
}
|
||||
// Key Gestures
|
||||
Model "SWWMRedCardGesture"
|
||||
{
|
||||
|
|
|
|||
|
|
@ -596,9 +596,15 @@ Class Demolitionist : PlayerPawn
|
|||
if ( player.onground && (player.jumptics < -18) )
|
||||
player.jumptics = 0;
|
||||
}
|
||||
// quick grenade
|
||||
if ( (player.playerstate != PST_DEAD) && (player.cmd.buttons&BT_USER4) )
|
||||
SWWMGesture.SetGesture(self,GS_Grenade);
|
||||
if ( player.playerstate != PST_DEAD )
|
||||
{
|
||||
// quick grenade
|
||||
if ( player.cmd.buttons&BT_USER4 )
|
||||
SWWMGesture.SetGesture(self,GS_Grenade);
|
||||
// emergency melee with no weapon
|
||||
else if ( !player.ReadyWeapon && (player.cmd.buttons&(BT_ATTACK|BT_ALTATTACK|BT_USER1)) )
|
||||
SWWMGesture.SetGesture(self,GS_EmptyMelee);
|
||||
}
|
||||
}
|
||||
override void Tick()
|
||||
{
|
||||
|
|
@ -3348,6 +3354,7 @@ enum EGestureSlot
|
|||
// special use
|
||||
GS_Headpat = -50,
|
||||
GS_Grenade,
|
||||
GS_EmptyMelee,
|
||||
// no gesture
|
||||
GS_Null = 0,
|
||||
// general gestures
|
||||
|
|
@ -3694,6 +3701,8 @@ Class SWWMGesture : SWWMWeapon
|
|||
return ResolveState("Headpat");
|
||||
case GS_Grenade:
|
||||
return ResolveState("QuickGrenade");
|
||||
case GS_EmptyMelee:
|
||||
return ResolveState("EmptyMelee");
|
||||
case GS_Wave:
|
||||
return ResolveState("Wave");
|
||||
case GS_ThumbsUp:
|
||||
|
|
@ -3784,6 +3793,25 @@ Class SWWMGesture : SWWMWeapon
|
|||
XZW4 Q 0 A_JumpIf(player.cmd.buttons&BT_USER4,"QuickGrenade");
|
||||
XZW4 Q -1 A_FinishGesture();
|
||||
Stop;
|
||||
EmptyMelee:
|
||||
XZW0 ABC 1;
|
||||
XZW0 D 1
|
||||
{
|
||||
A_PlayerMelee(true);
|
||||
A_StartSound("demolitionist/swing",CHAN_WEAPON,CHANF_OVERLAP);
|
||||
A_Parry(9);
|
||||
}
|
||||
XZW0 EF 1;
|
||||
XZW0 G 1 A_Melee();
|
||||
XZW0 HIJKLMN 2;
|
||||
XZW0 A -1
|
||||
{
|
||||
if ( player.cmd.buttons&(BT_ATTACK|BT_ALTATTACK|BT_USER1) )
|
||||
return ResolveState("EmptyMelee")+3;
|
||||
A_FinishGesture();
|
||||
return ResolveState(null);
|
||||
}
|
||||
Stop;
|
||||
Wave:
|
||||
XZW1 A 3 A_CallPlayerGesture("Wave","CrouchWave");
|
||||
XZW1 B 3;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue