stinger_m/zscript/flakcannon.zsc
2018-06-21 16:26:30 +02:00

117 lines
2 KiB
Text

Class UFlakBox : Ammo
{
Default
{
Tag "Flak Shell Box";
Inventory.Icon "I_Flak";
Inventory.PickupMessage "You picked up 10 Flak Shells.";
Inventory.Amount 10;
Inventory.MaxAmount 50;
Ammo.BackpackAmount 5;
Ammo.BackpackMaxAmount 100;
Ammo.DropAmount 5;
}
States
{
Spawn:
FBOX A -1;
Stop;
}
}
Class UFlakAmmo : UFlakBox
{
Default
{
Tag "Flak Shell";
Inventory.Icon "I_Flak";
Inventory.PickupMessage "You picked up a Flak Shell.";
Inventory.Amount 1;
Ammo.DropAmount 1;
}
States
{
Spawn:
FSHL B -1;
Stop;
}
}
Class UFlakCannon : UnrealWeapon
{
bool bLoaded;
action void A_Loading( bool first = false )
{
invoker.bLoaded = true;
if ( first ) A_PlaySound("uflak/load",CHAN_WEAPON);
else A_PlaySound("uflak/reload",CHAN_6);
}
Default
{
Tag "Flak Cannon";
Inventory.PickupMessage "You got the Flak Cannon.";
Weapon.UpSound "uflak/select";
Weapon.SlotNumber 6;
Weapon.SelectionOrder 4;
Weapon.AmmoType "UFlakBox";
Weapon.AmmoUse 1;
Weapon.AmmoType2 "UFlakBox";
Weapon.AmmoUse2 1;
Weapon.AmmoGive 10;
}
States
{
Spawn:
FLKP A -1;
Stop;
FLKP B -1;
Stop;
Select:
FLKS A 1 A_Raise(int.max);
Wait;
Ready:
FLKS ABCDEFGHIJKLMNOPQRSTUVWXYZ 1 A_WeaponReady(WRF_NOFIRE);
FLS2 ABCD 1 A_WeaponReady(WRF_NOFIRE);
FLKL A 1 A_Loading(true);
FLKL BCEFGIJKMNO 1;
Goto Idle;
Loading:
FLKL A 1 A_Loading();
FLKL BCEFGIJKMNO 1;
Goto Idle;
Idle:
FLKI A 1
{
A_CheckReload();
A_WeaponReady();
}
Wait;
Idle2:
FLI2 A 1
{
A_CheckReload();
A_WeaponReady();
}
Wait;
Fire:
FLKI A 0 A_JumpIf(!invoker.bLoaded,"Loading");
FLKF ABCDEFGHIJ 1;
FLKE ABCDEFGHIJKLMNS 1;
FLKE S 0 A_JumpIfNoAmmo("Idle2");
Goto Loading;
AltFire:
FLKI A 0 A_JumpIf(!invoker.bLoaded,"Loading");
FLKA ABCDEFGHIJK 2;
FLKA K 0 A_JumpIfNoAmmo("Idle2");
Goto Loading;
Deselect:
FLKD A 0 A_JumpIfNoAmmo("Deselect2");
FLKD ABCDEF 1;
FLKD F 1 A_Lower(int.max);
Wait;
Deselect2:
FLD2 ABCDEF 1;
FLD2 F 1 A_Lower(int.max);
Wait;
}
}