Remove fat chodes, Silver Bullet reimplemented.
This commit is contained in:
parent
146531003e
commit
62d10ed11c
46 changed files with 333 additions and 1413 deletions
|
|
@ -175,12 +175,12 @@ Class SWWMStatusBar : BaseStatusBar
|
|||
int tclabel, tcvalue, tcextra, tccompl, tcsucks;
|
||||
String tclabel_s, tcextra_s;
|
||||
|
||||
int AmmoFlash[19]; // flash when new ammo is received
|
||||
int AmmoOldAmounts[19]; // to detect when to flash
|
||||
int AmmoMaxFlash[19]; // flash when ammo max amount changes
|
||||
int AmmoOldMaxAmounts[19]; // to detect when to flash
|
||||
Class<SWWMAmmo> AmmoSlots[19]; // ammo type on each slot
|
||||
String AmmoNames[19]; // ammo 4-letter names
|
||||
int AmmoFlash[18]; // flash when new ammo is received
|
||||
int AmmoOldAmounts[18]; // to detect when to flash
|
||||
int AmmoMaxFlash[18]; // flash when ammo max amount changes
|
||||
int AmmoOldMaxAmounts[18]; // to detect when to flash
|
||||
Class<SWWMAmmo> AmmoSlots[18]; // ammo type on each slot
|
||||
String AmmoNames[18]; // ammo 4-letter names
|
||||
int HealthFlash; // flash when healing
|
||||
int LastHealth; // to detect when to flash
|
||||
int LagHealth[10]; // for delayed decay bar
|
||||
|
|
@ -944,7 +944,7 @@ Class SWWMStatusBar : BaseStatusBar
|
|||
for ( int i=9; i>0; i-- )
|
||||
LagHealth[i] = LagHealth[i-1];
|
||||
// ammo updates
|
||||
for ( int i=0; i<19; i++ )
|
||||
for ( int i=0; i<18; i++ )
|
||||
{
|
||||
let a = SWWMAmmo(CPlayer.mo.FindInventory(AmmoSlots[i]));
|
||||
int amt = 0;
|
||||
|
|
@ -1299,14 +1299,13 @@ Class SWWMStatusBar : BaseStatusBar
|
|||
AmmoSlots[8] = 'SparksterBAmmo';
|
||||
AmmoSlots[9] = 'SparksterRAmmo';
|
||||
AmmoSlots[10] = 'SilverBulletAmmo';
|
||||
AmmoSlots[11] = 'SilverBulletAmmo2';
|
||||
AmmoSlots[12] = 'RayAmmo';
|
||||
AmmoSlots[13] = 'CandyGunAmmo';
|
||||
AmmoSlots[14] = 'CandyGunSpares';
|
||||
AmmoSlots[15] = 'MisterAmmo';
|
||||
AmmoSlots[16] = 'MisterGAmmo';
|
||||
AmmoSlots[17] = 'YnykronAmmo';
|
||||
AmmoSlots[18] = 'UltimateAmmo';
|
||||
AmmoSlots[11] = 'RayAmmo';
|
||||
AmmoSlots[12] = 'CandyGunAmmo';
|
||||
AmmoSlots[13] = 'CandyGunSpares';
|
||||
AmmoSlots[14] = 'MisterAmmo';
|
||||
AmmoSlots[15] = 'MisterGAmmo';
|
||||
AmmoSlots[16] = 'YnykronAmmo';
|
||||
AmmoSlots[17] = 'UltimateAmmo';
|
||||
AmmoNames[0] = "SHOT";
|
||||
AmmoNames[1] = "GOLD";
|
||||
AmmoNames[2] = "SCRW";
|
||||
|
|
@ -1318,14 +1317,13 @@ Class SWWMStatusBar : BaseStatusBar
|
|||
AmmoNames[8] = "KINY";
|
||||
AmmoNames[9] = "NOKR";
|
||||
AmmoNames[10] = "RIFL";
|
||||
AmmoNames[11] = "CHOD";
|
||||
AmmoNames[12] = "BOLT";
|
||||
AmmoNames[13] = "CAND";
|
||||
AmmoNames[14] = "CGUN";
|
||||
AmmoNames[15] = "MSTR";
|
||||
AmmoNames[16] = "MGRN";
|
||||
AmmoNames[17] = "CRYS";
|
||||
AmmoNames[18] = "ULTI";
|
||||
AmmoNames[11] = "BOLT";
|
||||
AmmoNames[12] = "CAND";
|
||||
AmmoNames[13] = "CGUN";
|
||||
AmmoNames[14] = "MSTR";
|
||||
AmmoNames[15] = "MGRN";
|
||||
AmmoNames[16] = "CRYS";
|
||||
AmmoNames[17] = "ULTI";
|
||||
for ( int i=0; i<18; i++ )
|
||||
{
|
||||
AmmoFlash[i] = 0;
|
||||
|
|
@ -2694,7 +2692,7 @@ Class SWWMStatusBar : BaseStatusBar
|
|||
OwnedWeapons.Push(SWWMWeapon(i));
|
||||
}
|
||||
String str;
|
||||
for ( int i=18; i>=0; i-- )
|
||||
for ( int i=17; i>=0; i-- )
|
||||
{
|
||||
let a = AmmoSlots[i];
|
||||
// check if owned
|
||||
|
|
|
|||
|
|
@ -328,9 +328,9 @@ Class SilverBulletAmmo : SWWMAmmo
|
|||
SWWMAmmo.PickupTag "XSBMAG";
|
||||
Stamina 70000;
|
||||
Inventory.Amount 1;
|
||||
Inventory.MaxAmount 3;
|
||||
Inventory.MaxAmount 5;
|
||||
Ammo.BackpackAmount 0;
|
||||
Ammo.BackpackMaxAmount 6;
|
||||
Ammo.BackpackMaxAmount 11;
|
||||
Ammo.DropAmount 1;
|
||||
SWWMAmmo.MagAmmoType "SilverBullets";
|
||||
+FLOATBOB;
|
||||
|
|
@ -347,33 +347,6 @@ Class SilverBulletAmmo : SWWMAmmo
|
|||
}
|
||||
}
|
||||
|
||||
Class SilverBulletAmmo2 : SWWMAmmo
|
||||
{
|
||||
Default
|
||||
{
|
||||
Tag "$T_FCBMAG";
|
||||
SWWMAmmo.PickupTag "FCBMAG";
|
||||
Stamina 80000;
|
||||
Inventory.Amount 1;
|
||||
Inventory.MaxAmount 2;
|
||||
Ammo.BackpackAmount 0;
|
||||
Ammo.BackpackMaxAmount 4;
|
||||
Ammo.DropAmount 1;
|
||||
SWWMAmmo.MagAmmoType "SilverBullets2";
|
||||
+FLOATBOB;
|
||||
FloatBobStrength 0.25;
|
||||
Radius 10;
|
||||
Height 26;
|
||||
Accuracy 80;
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
XZW1 A -1;
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
Class SilverBullets : MagAmmo
|
||||
{
|
||||
Default
|
||||
|
|
@ -397,7 +370,7 @@ Class SilverBullets : MagAmmo
|
|||
Stop;
|
||||
}
|
||||
}
|
||||
Class SilverBullets_2 : SilverBullets
|
||||
Class SilverBullets2 : SilverBullets
|
||||
{
|
||||
Default
|
||||
{
|
||||
|
|
@ -406,47 +379,7 @@ Class SilverBullets_2 : SilverBullets
|
|||
Height 24;
|
||||
}
|
||||
}
|
||||
Class SilverBullets_3 : SilverBullets
|
||||
{
|
||||
Default
|
||||
{
|
||||
Inventory.Amount 3;
|
||||
Radius 6;
|
||||
Height 24;
|
||||
}
|
||||
}
|
||||
Class SilverBullets2 : MagAmmo
|
||||
{
|
||||
Default
|
||||
{
|
||||
Tag "$T_FCBBULLET";
|
||||
MagAmmo.PickupTag "FCBBULLET";
|
||||
Stamina -15000;
|
||||
MagAmmo.ParentAmmo "SilverBulletAmmo2";
|
||||
MagAmmo.ClipSize 5;
|
||||
Inventory.MaxAmount 5;
|
||||
+FLOATBOB;
|
||||
FloatBobStrength 0.25;
|
||||
Radius 4;
|
||||
Height 22;
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
XZW1 A -1;
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
Class SilverBullets2_2 : SilverBullets2
|
||||
{
|
||||
Default
|
||||
{
|
||||
Inventory.Amount 2;
|
||||
Radius 6;
|
||||
Height 24;
|
||||
}
|
||||
}
|
||||
Class SilverBullets2_3 : SilverBullets2
|
||||
Class SilverBullets3 : SilverBullets
|
||||
{
|
||||
Default
|
||||
{
|
||||
|
|
|
|||
|
|
@ -216,11 +216,7 @@ Class SWWMCellAmmoBig : SWWMAmmoSpawner
|
|||
bool aex = SWWMUtility.ItemExists('SilverBullet',ownedonly:enemydrop),
|
||||
bex = SWWMUtility.ItemExists('RayKhom',ownedonly:enemydrop);
|
||||
if ( (!aex && bex) || (Random[Replacements](0,1) && bex) ) return Random[Replacements](0,2)?'RayBolt5':'RayAmmo';
|
||||
if ( aex )
|
||||
{
|
||||
if ( Random[Replacements](0,3) ) return Random[Replacements](0,2)?'SilverBullets_2':'SilverBullets2_2';
|
||||
return Random[Replacements](0,2)?'SilverBulletAmmo':'SilverBulletAmmo2';
|
||||
}
|
||||
if ( aex ) return Random[Replacements](0,3)?'SilverBullets3':'SilverBulletAmmo';
|
||||
}
|
||||
bool aex = SWWMUtility.ItemExists('Sparkster',ownedonly:enemydrop),
|
||||
bex = SWWMUtility.ItemExists('ModernSparkster',ownedonly:enemydrop);
|
||||
|
|
|
|||
|
|
@ -891,11 +891,11 @@ Class RewardCandyGun : ChanceboxReward
|
|||
override void SpawnReward( Vector3 pos )
|
||||
{
|
||||
SpawnCenter(pos,"CandyGun");
|
||||
SpawnCircle(pos,6,"CandyGunBullets");
|
||||
SpawnCircle(pos,7,"CandyGunBullets");
|
||||
}
|
||||
}
|
||||
// TODO ray-khom bolts all over
|
||||
// them silver bullets, of two types
|
||||
// them silver bullets
|
||||
Class RewardSilverBullets : ChanceboxReward
|
||||
{
|
||||
override bool CheckRequirements()
|
||||
|
|
@ -905,7 +905,7 @@ Class RewardSilverBullets : ChanceboxReward
|
|||
|
||||
override void SpawnReward( Vector3 pos )
|
||||
{
|
||||
SpawnCircle(pos,3,"SilverBullets2");
|
||||
SpawnCircle(pos,4,"SilverBullets");
|
||||
SpawnCircle(pos,6,"SilverBullets",3.);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -174,7 +174,7 @@ Class SWWMStats : SWWMStaticThinker
|
|||
else if ( (inflictor is 'HellblazerMissile') || (inflictor is 'HellblazerArm') ) which = 'Hellblazer';
|
||||
else if ( (inflictor is 'QuadProj') || (inflictor is 'QuadExplArm') || (inflictor is 'OnFire') ) which = 'Quadravol';
|
||||
else if ( (inflictor is 'BigBiospark') || (inflictor is 'BiosparkBall') || (inflictor is 'BiosparkBeamImpact') || (inflictor is 'BiosparkComboImpact') || (inflictor is 'BiosparkComboImpactSub') || (inflictor is 'BiosparkBeam') || (inflictor is 'BiosparkArc') || (inflictor is 'BiosparkCore') ) which = 'Sparkster';
|
||||
else if ( (inflictor is 'SilverAirRip') || (inflictor is 'SilverAirRip2') || (inflictor is 'SilverImpact') || (inflictor is 'FatChodeImpact') || (inflictor is 'FatChodeExplosionArm') ) which = 'SilverBullet';
|
||||
else if ( (inflictor is 'SilverAirRip') || (inflictor is 'SilverImpact') ) which = 'SilverBullet';
|
||||
else if ( (inflictor is 'CandyBeam') || (inflictor is 'CandyPop') || (inflictor is 'CandyMagArm') || (inflictor is 'CandyGunProj') || (inflictor is 'CandyMagProj') || (inflictor is 'CandyBulletImpact') ) which = 'CandyGun';
|
||||
else if ( (inflictor is 'MisterBulletImpact') || (inflictor is 'MisterPop') || (inflictor is 'MisterFuzzy') || (inflictor is 'MisterGrenade') || (inflictor is 'MisterRailBeam') ) which = 'MisterRifle';
|
||||
else if ( (inflictor is 'YnykronBeam') || (inflictor is 'YnykronImpact') || (inflictor is 'YnykronSingularity') || (inflictor is 'YnykronCloud') || (inflictor is 'YnykronVoidBeam') || (inflictor is 'YnykronLightningArc') || (inflictor is 'YnykronLightningImpact') ) which = 'Ynykron';
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -7,7 +7,6 @@ Class SilverBulletCasing : SWWMCasing
|
|||
BounceSound "silverbullet/casing";
|
||||
}
|
||||
}
|
||||
Class SilverBulletCasing2 : SilverBulletCasing {}
|
||||
|
||||
Class SilverBulletMag : SWWMCasing
|
||||
{
|
||||
|
|
@ -36,7 +35,6 @@ Class SilverBulletMag : SWWMCasing
|
|||
Stop;
|
||||
}
|
||||
}
|
||||
Class SilverBulletMag2 : SilverBulletMag {}
|
||||
|
||||
Class SilverAirRip : Actor
|
||||
{
|
||||
|
|
@ -83,17 +81,6 @@ Class SilverAirRip : Actor
|
|||
Stop;
|
||||
}
|
||||
}
|
||||
Class SilverAirRip2 : SilverAirRip
|
||||
{
|
||||
Default
|
||||
{
|
||||
Obituary "$O_SILVERBULLET2";
|
||||
}
|
||||
override void Explode()
|
||||
{
|
||||
SWWMUtility.DoExplosion(self,20,2000,30,ignoreme:target);
|
||||
}
|
||||
}
|
||||
|
||||
Class SilverImpact : Actor
|
||||
{
|
||||
|
|
@ -178,246 +165,3 @@ Class SilverImpact : Actor
|
|||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
Class ExploLight3 : PaletteLight
|
||||
{
|
||||
Default
|
||||
{
|
||||
ReactionTime 30;
|
||||
Args 0,0,0,250;
|
||||
}
|
||||
}
|
||||
|
||||
Class FatChodeRing : Actor
|
||||
{
|
||||
Default
|
||||
{
|
||||
RenderStyle "Add";
|
||||
Scale 3.;
|
||||
Radius 0.1;
|
||||
Height 0;
|
||||
+NOGRAVITY;
|
||||
+NOBLOCKMAP;
|
||||
+FORCEXYBILLBOARD;
|
||||
+NOTELEPORT;
|
||||
+NOINTERACTION;
|
||||
}
|
||||
override void Tick()
|
||||
{
|
||||
if ( isFrozen() ) return;
|
||||
if ( !CheckNoDelay() || (tics == -1) ) return;
|
||||
if ( tics > 0 ) tics--;
|
||||
while ( !tics )
|
||||
{
|
||||
if ( !SetState(CurState.NextState) )
|
||||
return;
|
||||
}
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
XRG0 ABCDEFGHIJKLMNOPQRSTUVWX 1 Bright A_SetScale(scale.x*1.06);
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
Class FatChodeImpact : Actor
|
||||
{
|
||||
double realangle, realpitch;
|
||||
|
||||
Default
|
||||
{
|
||||
Obituary "$O_SILVERBULLET2";
|
||||
DamageType 'Explodium';
|
||||
RenderStyle "Add";
|
||||
Radius 0.1;
|
||||
Height 0;
|
||||
+NOGRAVITY;
|
||||
+NOCLIP;
|
||||
+DONTSPLASH;
|
||||
+NOBLOCKMAP;
|
||||
+FORCEXYBILLBOARD;
|
||||
+FORCERADIUSDMG;
|
||||
+NODAMAGETHRUST;
|
||||
+NOTELEPORT;
|
||||
+NOINTERACTION;
|
||||
Scale 4.5;
|
||||
}
|
||||
override void PostBeginPlay()
|
||||
{
|
||||
Super.PostBeginPlay();
|
||||
SWWMUtility.DoExplosion(self,600,40000,250,120,DE_THRUWALLS|DE_EXTRAZTHRUST);
|
||||
A_AlertMonsters(swwm_uncapalert?0:8000);
|
||||
A_QuakeEx(7,7,7,50,0,2000,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,falloff:800,rollIntensity:1.);
|
||||
A_StartSound("silverbullet/chode",CHAN_VOICE,CHANF_DEFAULT,1.,.35);
|
||||
A_SprayDecal("BigPock",-64);
|
||||
A_SprayDecal("HugeWallCrack",-64);
|
||||
A_SprayDecal("WumboRocketBlast",-64);
|
||||
Scale *= FRandom[ExploS](0.8,1.1);
|
||||
Scale.x *= RandomPick[ExploS](-1,1);
|
||||
Scale.y *= RandomPick[ExploS](-1,1);
|
||||
int numpt = Random[Silverbullet](15,25);
|
||||
Vector3 x = SWWMUtility.Vec3FromAngles(angle,pitch);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = (x+SWWMUtility.Vec3FromAngles(FRandom[Silverbullet](0,360),FRandom[Silverbullet](-90,90))*.4).unit()*FRandom[Silverbullet](.4,2.);
|
||||
let s = Spawn("SWWMSmoke",pos);
|
||||
s.vel = pvel;
|
||||
s.scale *= 1.8;
|
||||
s.special1 = Random[Silverbullet](1,4);
|
||||
s.SetShade(Color(1,1,1)*Random[Silverbullet](96,192));
|
||||
}
|
||||
numpt = Random[Silverbullet](6,9);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[Silverbullet](0,360),FRandom[Silverbullet](-90,90))*FRandom[Silverbullet](2,8);
|
||||
let s = Spawn("SWWMSpark",pos);
|
||||
s.scale *= 1.3;
|
||||
s.vel = pvel;
|
||||
}
|
||||
numpt = Random[Silverbullet](10,15);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = (x+SWWMUtility.Vec3FromAngles(FRandom[Silverbullet](0,360),FRandom[Silverbullet](-90,90))*.6).unit()*FRandom[Silverbullet](6,20);
|
||||
let s = Spawn("SWWMChip",pos);
|
||||
s.scale *= 1.6;
|
||||
s.vel = pvel;
|
||||
}
|
||||
numpt = Random[Silverbullet](16,20);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
let s = Spawn("FatChodeExtraArm",pos);
|
||||
s.target = target;
|
||||
}
|
||||
numpt = Random[Silverbullet](8,10);
|
||||
Vector3 y, z, dir;
|
||||
double a, s;
|
||||
[x, y, z] = swwm_CoordUtil.GetAxes(realpitch,realangle,0);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
let e = Spawn("FatChodeExplosionArm",pos);
|
||||
e.target = target;
|
||||
a = FRandom[Silverbullet](0,360);
|
||||
s = FRandom[Silverbullet](0,.2);
|
||||
dir = SWWMUtility.ConeSpread(x,y,z,a,s);
|
||||
e.angle = atan2(dir.y,dir.x);
|
||||
e.pitch = asin(-dir.z);
|
||||
}
|
||||
Spawn("ExploLight3",pos);
|
||||
Spawn("FatChodeRing",pos);
|
||||
}
|
||||
override void Tick()
|
||||
{
|
||||
if ( isFrozen() ) return;
|
||||
if ( !CheckNoDelay() || (tics == -1) ) return;
|
||||
if ( tics > 0 ) tics--;
|
||||
while ( !tics )
|
||||
{
|
||||
if ( !SetState(CurState.NextState) )
|
||||
return;
|
||||
}
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
XEX1 ABCDEFGHIJKLMNOPQRSTUVWXYZ[\ 1 Bright;
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
Class FatChodeExtraArm : ExplodiumMagArm
|
||||
{
|
||||
Default
|
||||
{
|
||||
Obituary "$O_SILVERBULLET2";
|
||||
}
|
||||
override void PostBeginPlay()
|
||||
{
|
||||
Super.PostBeginPlay();
|
||||
vel *= 1.5;
|
||||
}
|
||||
}
|
||||
|
||||
Class FatChodeExplosionTrail : Actor
|
||||
{
|
||||
Default
|
||||
{
|
||||
RenderStyle "Add";
|
||||
Radius 0.1;
|
||||
Height 0;
|
||||
+NOGRAVITY;
|
||||
+NOCLIP;
|
||||
+DONTSPLASH;
|
||||
+NOTELEPORT;
|
||||
+NOBLOCKMAP;
|
||||
+FORCEXYBILLBOARD;
|
||||
+NOTELEPORT;
|
||||
+NOINTERACTION;
|
||||
Scale 3.;
|
||||
}
|
||||
override void Tick()
|
||||
{
|
||||
if ( isFrozen() ) return;
|
||||
if ( !CheckNoDelay() || (tics == -1) ) return;
|
||||
if ( tics > 0 ) tics--;
|
||||
while ( !tics )
|
||||
{
|
||||
if ( !SetState(CurState.NextState) )
|
||||
return;
|
||||
}
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
XEX1 ACEGIKMOQSUWY[ 1 Bright;
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
Class FatChodeExplosionArm : Actor
|
||||
{
|
||||
Default
|
||||
{
|
||||
Obituary "$O_SILVERBULLET2";
|
||||
DamageType 'Explodium';
|
||||
Radius 0.1;
|
||||
Height 0;
|
||||
+NOGRAVITY;
|
||||
+NOCLIP;
|
||||
+DONTSPLASH;
|
||||
+NOTELEPORT;
|
||||
+NOBLOCKMAP;
|
||||
+FORCERADIUSDMG;
|
||||
+NODAMAGETHRUST;
|
||||
+NOINTERACTION;
|
||||
}
|
||||
override void PostBeginPlay()
|
||||
{
|
||||
Super.PostBeginPlay();
|
||||
reactiontime = Random[ExploS](15,20);
|
||||
vel = SWWMUtility.Vec3FromAngles(angle,pitch)*FRandom[ExploS](20.,30.);
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
TNT1 A 1
|
||||
{
|
||||
if ( !(ReactionTime%2) )
|
||||
SWWMUtility.DoExplosion(self,10+reactiontime,8000+1500*reactiontime,80+5*reactiontime,50,DE_THRUWALLS);
|
||||
if ( level.IsPointInLevel(pos) )
|
||||
{
|
||||
A_SprayDecal("HugeRocketBlast",-32);
|
||||
Spawn("FatChodeExplosionTrail",pos);
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](1,5);
|
||||
let s = Spawn("SWWMHalfSmoke",pos);
|
||||
s.vel = pvel+vel*.2;
|
||||
s.SetShade(Color(1,1,1)*Random[ExploS](64,224));
|
||||
s.special1 = Random[ExploS](1,4);
|
||||
s.scale *= 2.4;
|
||||
s.alpha *= .1+.4*(ReactionTime/15.);
|
||||
}
|
||||
A_CountDown();
|
||||
}
|
||||
Wait;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -179,17 +179,15 @@ extend Class Sparkster
|
|||
// Silver Bullet JET
|
||||
extend Class SilverBullet
|
||||
{
|
||||
ui TextureID WeaponBox[2], ZoomBar, RoundTex[4];
|
||||
ui TextureID WeaponBox[2], ZoomBar, RoundTex[2];
|
||||
|
||||
override void DrawWeapon( double TicFrac, double bx, double by, double hs, Vector2 ss )
|
||||
{
|
||||
if ( !WeaponBox[0] ) WeaponBox[0] = TexMan.CheckForTexture("graphics/HUD/SilverBulletDisplay.png");
|
||||
if ( !WeaponBox[1] ) WeaponBox[1] = TexMan.CheckForTexture("graphics/HUD/SilverBulletZoomDisplay.png");
|
||||
if ( !ZoomBar ) ZoomBar = TexMan.CheckForTexture("graphics/HUD/SilverBulletZoomBar.png");
|
||||
if ( !RoundTex[0] ) RoundTex[0] = TexMan.CheckForTexture("graphics/HUD/SilverBulletXSB.png");
|
||||
if ( !RoundTex[1] ) RoundTex[1] = TexMan.CheckForTexture("graphics/HUD/SilverBulletFCB.png");
|
||||
if ( !RoundTex[2] ) RoundTex[2] = TexMan.CheckForTexture("graphics/HUD/SilverBulletXSBCasing.png");
|
||||
if ( !RoundTex[3] ) RoundTex[3] = TexMan.CheckForTexture("graphics/HUD/SilverBulletFCBCasing.png");
|
||||
if ( !RoundTex[0] ) RoundTex[0] = TexMan.CheckForTexture("graphics/HUD/SilverBulletRound.png");
|
||||
if ( !RoundTex[1] ) RoundTex[1] = TexMan.CheckForTexture("graphics/HUD/SilverBulletCasing.png");
|
||||
double zl = clamp(ZoomInter?ZoomInter.GetValue(TicFrac):(zoomlevel*10),0.,160.);
|
||||
if ( zl >= 10. )
|
||||
{
|
||||
|
|
@ -199,9 +197,9 @@ extend Class SilverBullet
|
|||
Screen.DrawTexture(ZoomBar,false,bx-18,by-37,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRightF,zw);
|
||||
}
|
||||
Screen.DrawTexture(WeaponBox[0],false,bx-20,by-29,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true);
|
||||
if ( chambered ) Screen.DrawTexture(RoundTex[fcbchambered+fired*2],false,bx-18,by-27,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true);
|
||||
if ( chambered ) Screen.DrawTexture(RoundTex[fired],false,bx-18,by-27,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true);
|
||||
for ( int i=0; i<clipcount; i++ )
|
||||
Screen.DrawTexture(RoundTex[fcbloaded],false,bx-18,by-(22-i*4),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true);
|
||||
Screen.DrawTexture(RoundTex[0],false,bx-18,by-(22-i*4),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue