186 lines
3.4 KiB
Text
186 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.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;
|
|
}
|
|
}
|