flak_m/zscript/chainsaw.zsc
Marisa Kirisame 72eb6ca8d1 Impact Hammer fully implemented. Began working on Chainsaw.
Tweaked the shake effect on all weapons.
Covered up some seams on redeemer texture. Moved the model slightly to cover up a gap.
Corrected the chainsaw and translocator HUD icons.
2018-05-26 00:10:31 +02:00

105 lines
2.4 KiB
Text

Class UTChainsaw : UTWeapon replaces Chainsaw
{
double sawcnt;
action void A_SawHit()
{
A_QuakeEx(3,3,3,2,0,1,"",QF_RELATIVE,rollIntensity:0.15);
invoker.sawcnt += 1./TICRATE;
if ( invoker.sawcnt < 0.15 ) return;
invoker.sawcnt = 0;
invoker.FireEffect();
}
action void A_SawSwipe()
{
A_QuakeEx(3,3,3,3,0,1,"",QF_RELATIVE,rollIntensity:0.15);
invoker.FireEffect();
}
Default
{
Tag "Chainsaw";
Inventory.PickupMessage "It's been twenty five years since I've seen one of these."; // was five years in UT99
Weapon.UpSound "chainsaw/select";
Weapon.SlotNumber 1;
Weapon.SelectionOrder 9;
+WEAPON.MELEEWEAPON;
}
States
{
Spawn:
CSWP A -1;
Stop;
CSWP B -1;
Stop;
Select:
CSWS A 1 A_Raise(int.max);
Wait;
Ready:
CSWS ABCDEFGHIJLMNO 1 A_QuakeEx(1,1,1,2,0,1,"",QF_RELATIVE,rollIntensity:0.1);
Idle:
CSWI A 0 A_PlaySound("chainsaw/idle",CHAN_6,looping:true);
CSWI ABCDEFGHIJ 1
{
A_WeaponReady();
A_QuakeEx(1,1,1,2,0,1,"",QF_RELATIVE,rollIntensity:0.1);
}
Goto Idle+1;
Fire:
CSWJ A 1 A_PlaySound("chainsaw/fire",CHAN_6,looping:true);
CSWJ BCDEF 1 A_QuakeEx(1,1,1,2,0,1,"",QF_RELATIVE,rollIntensity:0.1);
Hold:
CSWJ G 1 A_SawHit();
CSWJ H 0 A_Refire(1);
Goto Release;
CSWJ H 1 A_SawHit();
CSWJ I 0 A_Refire(1);
Goto Release;
CSWJ I 1 A_SawHit();
CSWJ J 0 A_Refire(1);
Goto Release;
CSWJ J 1 A_SawHit();
CSWJ K 0 A_Refire(1);
Goto Release;
CSWJ K 1 A_SawHit();
CSWJ L 0 A_Refire(1);
Goto Release;
CSWJ L 1 A_SawHit();
CSWJ M 0 A_Refire(1);
Goto Release;
CSWJ M 1 A_SawHit();
CSWJ N 0 A_Refire(1);
Goto Release;
CSWJ N 1 A_SawHit();
CSWJ O 0 A_Refire(1);
Goto Release;
CSWJ O 1 A_SawHit();
CSWJ P 0 A_Refire(1);
Goto Release;
CSWJ P 1 A_SawHit();
CSWJ Q 0 A_Refire(1);
Goto Release;
CSWJ Q 1 A_SawHit();
CSWJ R 0 A_Refire(1);
Goto Release;
CSWJ R 1 A_SawHit();
CSWJ S 0 A_Refire(1);
Goto Release;
CSWJ S 1 A_SawHit();
CSWJ G 0 A_Refire("Hold");
Release:
CSWJ FEDCBA 1 A_QuakeEx(1,1,1,2,0,1,"",QF_RELATIVE,rollIntensity:0.1);
Goto Idle;
AltFire:
CSWA A 0 A_PlaySound("chainsaw/fire",CHAN_6);
CSWA ABCDEFG 2 A_QuakeEx(3,3,3,3,0,1,"",QF_RELATIVE,rollIntensity:0.15);
CSWA H 2 A_SawSwipe();
CSWA IJK 2 A_QuakeEx(3,3,3,3,0,1,"",QF_RELATIVE,rollIntensity:0.15);
CSWA K 0 A_PlaySound("chainsaw/idle",CHAN_6,looping:true);
Goto Ready;
Deselect:
CSWD A 0 A_PlaySound("chainsaw/lower",CHAN_6);
CSWD ABCDEF 2;
CSWD F 1 A_Lower(int.max);
Wait;
}
}