Switched Impaler fire sound to something more appropriate (proto Skaarj fire). Add slot priorities to all weapons, final weapons come first. Adjust hud behavior to properly draw ammo bars by the order of their weapons.
187 lines
3.4 KiB
Text
187 lines
3.4 KiB
Text
Class BigAmmo : Ammo
|
|
{
|
|
Default
|
|
{
|
|
Tag "$T_BIGAMMO";
|
|
Inventory.Icon "I_BigM";
|
|
Inventory.PickupMessage "";
|
|
Inventory.Amount 10;
|
|
Inventory.MaxAmount 30;
|
|
Ammo.BackpackAmount 0;
|
|
Ammo.BackpackMaxAmount 60;
|
|
Ammo.DropAmount 10;
|
|
Inventory.RespawnTics 2100;
|
|
+INVENTORY.IGNORESKILL;
|
|
}
|
|
override String PickupMessage()
|
|
{
|
|
if ( PickupMsg.Length() > 0 ) return Super.PickupMessage();
|
|
return String.Format("%s%d%s",StringTable.Localize("$I_BIGAMMOL"),Amount,StringTable.Localize("$I_BIGAMMOR"));
|
|
}
|
|
override bool TryPickup( in out Actor toucher )
|
|
{
|
|
if ( !sting_dubious ) return false; // not allowed
|
|
return Super.TryPickup(toucher);
|
|
}
|
|
override void Tick()
|
|
{
|
|
Super.Tick();
|
|
if ( sting_dubious ) return;
|
|
if ( !Owner )
|
|
{
|
|
let r = Spawn((GetClass()=="BigAmmo")?"CellPack":"Cell",pos,ALLOW_REPLACE);
|
|
r.spawnangle = spawnangle;
|
|
r.spawnpoint = spawnpoint;
|
|
r.angle = angle;
|
|
r.pitch = pitch;
|
|
r.roll = roll;
|
|
r.special = special;
|
|
r.args[0] = args[0];
|
|
r.args[1] = args[1];
|
|
r.args[2] = args[2];
|
|
r.args[3] = args[3];
|
|
r.args[4] = args[4];
|
|
r.ChangeTid(tid);
|
|
r.SpawnFlags = SpawnFlags&~MTF_SECRET;
|
|
r.HandleSpawnFlags();
|
|
r.SpawnFlags = SpawnFlags;
|
|
r.bCountSecret = SpawnFlags&MTF_SECRET;
|
|
r.vel = vel;
|
|
r.master = master;
|
|
r.target = target;
|
|
r.tracer = tracer;
|
|
r.bDropped = bDropped;
|
|
Destroy();
|
|
}
|
|
else
|
|
{
|
|
Owner.RemoveInventory(self);
|
|
Destroy();
|
|
}
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
BIGA A -1;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
Class BigAmmo2 : BigAmmo
|
|
{
|
|
Default
|
|
{
|
|
Tag "$T_BIGAMMO2";
|
|
Inventory.Amount 3;
|
|
Ammo.DropAmount 3;
|
|
+INVENTORY.IGNORESKILL;
|
|
}
|
|
}
|
|
|
|
Class BigAmmo3 : BigAmmo
|
|
{
|
|
Default
|
|
{
|
|
Tag "$T_BIGAMMO3";
|
|
Inventory.PickupMessage "$I_BIGAMMO3";
|
|
Inventory.Amount 1;
|
|
Ammo.DropAmount 1;
|
|
+INVENTORY.IGNORESKILL;
|
|
}
|
|
}
|
|
|
|
Class BigBlast : Actor
|
|
{
|
|
}
|
|
|
|
Class HitListEntry
|
|
{
|
|
Actor hitactor;
|
|
Vector3 hitlocation, x;
|
|
int hitdamage;
|
|
}
|
|
|
|
Class BigTracer : LineTracer
|
|
{
|
|
Array<HitListEntry> hitlist;
|
|
double penetration; // please don't laugh
|
|
}
|
|
|
|
Class BigCasing : UTCasing
|
|
{
|
|
Default
|
|
{
|
|
BounceSound "big/bounce"; // much heavier sound
|
|
}
|
|
}
|
|
|
|
Class BigGun : UnrealWeapon
|
|
{
|
|
override bool TryPickup( in out Actor toucher )
|
|
{
|
|
if ( !sting_dubious ) return false; // not allowed
|
|
return Super.TryPickup(toucher);
|
|
}
|
|
override void Tick()
|
|
{
|
|
Super.Tick();
|
|
if ( sting_dubious ) return;
|
|
if ( !Owner )
|
|
{
|
|
let r = Spawn("BFG9000",pos,ALLOW_REPLACE);
|
|
r.spawnangle = spawnangle;
|
|
r.spawnpoint = spawnpoint;
|
|
r.angle = angle;
|
|
r.pitch = pitch;
|
|
r.roll = roll;
|
|
r.special = special;
|
|
r.args[0] = args[0];
|
|
r.args[1] = args[1];
|
|
r.args[2] = args[2];
|
|
r.args[3] = args[3];
|
|
r.args[4] = args[4];
|
|
r.ChangeTid(tid);
|
|
r.SpawnFlags = SpawnFlags&~MTF_SECRET;
|
|
r.HandleSpawnFlags();
|
|
r.SpawnFlags = SpawnFlags;
|
|
r.bCountSecret = SpawnFlags&MTF_SECRET;
|
|
r.vel = vel;
|
|
r.master = master;
|
|
r.target = target;
|
|
r.tracer = tracer;
|
|
r.bDropped = bDropped;
|
|
Destroy();
|
|
}
|
|
else
|
|
{
|
|
Owner.RemoveInventory(self);
|
|
Destroy();
|
|
}
|
|
}
|
|
Default
|
|
{
|
|
Tag "$T_BIGGUN";
|
|
Inventory.PickupMessage "$I_BIGGUN";
|
|
Weapon.UpSound "big/select";
|
|
Weapon.SlotNumber 9;
|
|
Weapon.SelectionOrder 0;
|
|
Weapon.SlotPriority 0.8;
|
|
Weapon.AmmoType "BigAmmo";
|
|
Weapon.AmmoUse 1;
|
|
Weapon.AmmoType2 "BigAmmo";
|
|
Weapon.AmmoUse2 1;
|
|
Weapon.AmmoGive 10;
|
|
Inventory.RespawnTics 2100;
|
|
+INVENTORY.IGNORESKILL;
|
|
+WEAPON.NOAUTOFIRE;
|
|
UTWeapon.DropAmmo 5;
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
BIGP A -1;
|
|
Stop;
|
|
BIGP B -1;
|
|
Stop;
|
|
}
|
|
}
|