Ammo balancing and behind-the-scenes stuff.

This commit is contained in:
Mari the Deer 2021-09-15 00:17:08 +02:00
commit 4677ca7d4f
25 changed files with 147 additions and 183 deletions

View file

@ -14,8 +14,8 @@ Class SMW05Ammo : SWWMAmmo
Inventory.Icon "graphics/HUD/Icons/A_SMW05Ammo.png";
Inventory.Amount 1;
Inventory.MaxAmount 60;
Ammo.BackpackAmount 3;
Ammo.BackpackMaxAmount 150;
Ammo.BackpackAmount 6;
Ammo.BackpackMaxAmount 90;
Ammo.DropAmount 3;
+FLOATBOB;
FloatBobStrength 0.25;
@ -32,7 +32,7 @@ Class SMW05Ammo2 : SMW05Ammo
{
Default
{
//$Title 1x SMW.05 Bullets
//$Title 2x SMW.05 Bullets
//$Group Ammo
//$Sprite graphics/HUD/Icons/A_SMW05Ammo.png
//$Icon ammo
@ -43,7 +43,7 @@ Class SMW05Ammo3 : SMW05Ammo
{
Default
{
//$Title 1x SMW.05 Bullets
//$Title 3x SMW.05 Bullets
//$Group Ammo
//$Sprite graphics/HUD/Icons/A_SMW05Ammo.png
//$Icon ammo
@ -65,11 +65,11 @@ Class SMW05BigAmmo : SMW05Ammo
{
Default
{
//$Title 30x SMW.05 Bullets
//$Title 20x SMW.05 Bullets
//$Group Ammo
//$Sprite graphics/HUD/Icons/A_SMW05Ammo.png
//$Icon ammo
Inventory.Amount 30;
Inventory.Amount 20;
}
}
@ -86,8 +86,8 @@ Class SheenAmmo : SWWMAmmo
Stamina 400;
Inventory.Icon "graphics/HUD/Icons/A_SheenAmmo.png";
Inventory.Amount 1;
Inventory.MaxAmount 600;
Ammo.BackpackAmount 50;
Inventory.MaxAmount 300;
Ammo.BackpackAmount 60;
Ammo.BackpackMaxAmount 1200;
Ammo.DropAmount 3;
+FLOATBOB;
@ -170,9 +170,9 @@ Class QuadravolAmmo : SWWMAmmo
Stamina 10000;
Inventory.Icon "graphics/HUD/Icons/A_QuadAmmo.png";
Inventory.Amount 1;
Inventory.MaxAmount 4;
Ammo.BackpackAmount 1;
Ammo.BackpackMaxAmount 12;
Inventory.MaxAmount 5;
Ammo.BackpackAmount 2;
Ammo.BackpackMaxAmount 15;
Ammo.DropAmount 1;
+FLOATBOB;
FloatBobStrength 0.25;
@ -196,6 +196,17 @@ Class QuadravolAmmo2 : QuadravolAmmo
Inventory.Amount 2;
}
}
Class QuadravolAmmo3 : QuadravolAmmo
{
Default
{
//$Title 3x Quadravol Ammo
//$Group Ammo
//$Sprite graphics/HUD/Icons/A_QuadAmmo.png
//$Icon ammo
Inventory.Amount 3;
}
}
Class DarkCanister : SWWMAmmo
{
@ -210,9 +221,9 @@ Class DarkCanister : SWWMAmmo
Stamina 20000;
Inventory.Icon "graphics/HUD/Icons/A_DarkAmmo.png";
Inventory.Amount 1;
Inventory.MaxAmount 3;
Inventory.MaxAmount 6;
Ammo.BackpackAmount 1;
Ammo.BackpackMaxAmount 6;
Ammo.BackpackMaxAmount 12;
Ammo.DropAmount 1;
+FLOATBOB;
FloatBobStrength 0.25;
@ -326,9 +337,9 @@ Class RayAmmo : SWWMAmmo
Stamina 150000;
Inventory.Icon "graphics/HUD/Icons/A_RayAmmo.png";
Inventory.Amount 1;
Inventory.MaxAmount 5;
Inventory.MaxAmount 3;
Ammo.BackpackAmount 0;
Ammo.BackpackMaxAmount 9;
Ammo.BackpackMaxAmount 5;
Ammo.DropAmount 1;
SWWMAmmo.MagAmmoType "RayBolt";
+FLOATBOB;
@ -413,7 +424,7 @@ Class GrandAmmo : SWWMAmmo
Inventory.Amount 1;
Inventory.MaxAmount 1;
Ammo.BackpackAmount 0;
Ammo.BackpackMaxAmount 4;
Ammo.BackpackMaxAmount 3;
Ammo.DropAmount 1;
SWWMAmmo.MagAmmoType "GrandSpear";
+FLOATBOB;

View file

@ -4,8 +4,8 @@
Class BlackfireIgniter : SWWMWeapon
{
int clipcount;
bool hasaux;
int auxclipcount;
bool hasaux[2];
int auxclipcount[2];
Property ClipCount : clipcount;

View file

@ -24,7 +24,7 @@ Class Quadravol : SWWMWeapon
Weapon.AmmoType1 "QuadravolAmmo";
Weapon.AmmoGive1 1;
SWWMWeapon.DropAmmoType "QuadravolAmmo";
Quadravol.ClipCount 10;
Quadravol.ClipCount 5;
Stamina 80000;
+SWWMWEAPON.NOFIRSTGIVE;
+WEAPON.EXPLOSIVE;

View file

@ -13,9 +13,9 @@ Class SparksterBAmmo : SWWMAmmo
Stamina 16000;
Inventory.Icon "graphics/HUD/Icons/A_SparkBAmmo.png";
Inventory.Amount 1;
Inventory.MaxAmount 8;
Ammo.BackpackAmount 1;
Ammo.BackpackMaxAmount 24;
Inventory.MaxAmount 6;
Ammo.BackpackAmount 2;
Ammo.BackpackMaxAmount 16;
Ammo.DropAmount 1;
+FLOATBOB;
FloatBobStrength 0.25;
@ -64,9 +64,9 @@ Class SparksterRAmmo : SWWMAmmo
Stamina 18000;
Inventory.Icon "graphics/HUD/Icons/A_SparkRAmmo.png";
Inventory.Amount 1;
Inventory.MaxAmount 8;
Ammo.BackpackAmount 1;
Ammo.BackpackMaxAmount 24;
Inventory.MaxAmount 6;
Ammo.BackpackAmount 2;
Ammo.BackpackMaxAmount 16;
Ammo.DropAmount 1;
+FLOATBOB;
FloatBobStrength 0.25;
@ -216,7 +216,7 @@ Class MisterGAmmo : SWWMAmmo
Inventory.Amount 1;
Inventory.MaxAmount 3;
Ammo.BackpackAmount 0;
Ammo.BackpackMaxAmount 9;
Ammo.BackpackMaxAmount 6;
Ammo.DropAmount 1;
+FLOATBOB;
FloatBobStrength 0.25;
@ -292,7 +292,7 @@ Class UltimateAmmo : SWWMAmmo
Inventory.Amount 1;
Inventory.MaxAmount 1;
Ammo.BackpackAmount 0;
Ammo.BackpackMaxAmount 5;
Ammo.BackpackMaxAmount 3;
Ammo.DropAmount 1;
SWWMAmmo.MagAmmoType "UltimatePod";
+FLOATBOB;

View file

@ -4,7 +4,6 @@
Class ModernSparkster : SWWMWeapon
{
int clipcount, clipcount2;
bool chambered, chambered2;
Property ClipCount : clipcount;
Property ClipCount2 : clipcount2;
@ -27,8 +26,8 @@ Class ModernSparkster : SWWMWeapon
Weapon.AmmoType2 "SparksterRAmmo";
Weapon.AmmoGive2 1;
SWWMWeapon.DropAmmoType "RocketAmmo";
ModernSparkster.ClipCount 3;
ModernSparkster.ClipCount2 3;
ModernSparkster.ClipCount 4;
ModernSparkster.ClipCount2 4;
Stamina 160000;
+SWWMWEAPON.NOFIRSTGIVE;
}

View file

@ -658,7 +658,11 @@ extend Class SWWMHandler
if ( swwm_ondemandammo ) e.Replacement = 'SWWMClipAmmoBig';
else e.Replacement = SWWMClipAmmoBig.PickAmmo(true);
}
else if ( (e.Replacee is 'Clip') || (e.Replacee is 'GoldWandAmmo') ) e.Replacement = 'SWWMNothing';
else if ( (e.Replacee is 'Clip') || (e.Replacee is 'GoldWandAmmo') )
{
if ( swwm_ondemandammo ) e.Replacement = 'SWWMClipAmmoSmall';
else e.Replacement = SWWMClipAmmoSmall.PickAmmo(true);
}
else if ( e.Replacee is 'BlasterHefty' )
{
if ( swwm_ondemandammo ) e.Replacement = 'SWWMBlastAmmoBig';
@ -699,7 +703,7 @@ extend Class SWWMHandler
|| (e.Replacee is 'MWeaponPiece2') || (e.Replacee is 'MWeaponPiece3') ) e.Replacement = 'HammerspaceEmbiggener';
else if ( e.Replacee is 'ArmorBonus' ) e.Replacement = 'ArmorNuggetItem';
else if ( e.Replacee is 'HealthBonus' ) e.Replacement = 'HealthNuggetItem';
else if ( (e.Replacee is 'ArtiTimeBomb') || (e.Replacee is 'ArtiBlastRadius') || (e.Replacee is 'ArtiPoisonBag') || (e.Replacee is 'ArtiHealingRadius') ) e.Replacement = (nugflip=!nugflip)?'HealthNuggetBundleSpawn':'ArmorNuggetBundleSpawn';
else if ( (e.Replacee is 'ArtiTimeBomb') || (e.Replacee is 'ArtiBlastRadius') || (e.Replacee is 'ArtiPoisonBag') || (e.Replacee is 'ArtiHealingRadius') ) e.Replacement = (nugflip=!nugflip)?'HealthNugget':'ArmorNugget';
else if ( (e.Replacee is 'Stimpack') || (e.Replacee is 'CrystalVial') ) e.Replacement = 'TetraHealthItem';
else if ( (e.Replacee is 'Medikit') || (e.Replacee is 'ArtiHealth') ) e.Replacement = 'CubeHealthItem';
else if ( (e.Replacee is 'Soulsphere') || (e.Replacee is 'ArtiSuperHealth') ) e.Replacement = 'RefresherItem';

View file

@ -16,8 +16,8 @@ Class RedShell : SWWMAmmo
Inventory.Icon "graphics/HUD/Icons/A_ShellsNormal.png";
Inventory.Amount 1;
Inventory.MaxAmount 30;
Ammo.BackpackAmount 2;
Ammo.BackpackMaxAmount 80;
Ammo.BackpackAmount 3;
Ammo.BackpackMaxAmount 50;
Ammo.DropAmount 1;
+FLOATBOB;
FloatBobStrength 0.25;
@ -72,7 +72,7 @@ Class GreenShell : SWWMAmmo
Inventory.Amount 1;
Inventory.MaxAmount 25;
Ammo.BackpackAmount 2;
Ammo.BackpackMaxAmount 60;
Ammo.BackpackMaxAmount 45;
Ammo.DropAmount 1;
+FLOATBOB;
FloatBobStrength 0.25;
@ -181,7 +181,7 @@ Class BlueShell : SWWMAmmo
Inventory.Amount 1;
Inventory.MaxAmount 15;
Ammo.BackpackAmount 1;
Ammo.BackpackMaxAmount 40;
Ammo.BackpackMaxAmount 35;
Ammo.DropAmount 1;
+FLOATBOB;
FloatBobStrength 0.25;
@ -234,9 +234,9 @@ Class BlackShell : SWWMAmmo
Stamina 4000;
Inventory.Icon "graphics/HUD/Icons/A_ShellsFuck.png";
Inventory.Amount 1;
Inventory.MaxAmount 10;
Inventory.MaxAmount 5;
Ammo.BackpackAmount 0;
Ammo.BackpackMaxAmount 20;
Ammo.BackpackMaxAmount 25;
Ammo.DropAmount 1;
+FLOATBOB;
FloatBobStrength 0.25;
@ -291,7 +291,7 @@ Class PurpleShell : SWWMAmmo
Inventory.Amount 1;
Inventory.MaxAmount 20;
Ammo.BackpackAmount 1;
Ammo.BackpackMaxAmount 60;
Ammo.BackpackMaxAmount 40;
Ammo.DropAmount 1;
+FLOATBOB;
FloatBobStrength 0.25;
@ -445,8 +445,8 @@ Class EvisceratorShell : SWWMAmmo
Inventory.Icon "graphics/HUD/Icons/A_Eviscerator.png";
Inventory.Amount 1;
Inventory.MaxAmount 20;
Ammo.BackpackAmount 1;
Ammo.BackpackMaxAmount 60;
Ammo.BackpackAmount 3;
Ammo.BackpackMaxAmount 50;
Ammo.DropAmount 1;
+FLOATBOB;
+SWWMAMMO.USEPICKUPMSG;
@ -526,9 +526,9 @@ Class HellblazerMissiles : SWWMAmmo
Stamina 8000;
Inventory.Icon "graphics/HUD/Icons/A_HellblazerMissile.png";
Inventory.Amount 1;
Inventory.MaxAmount 24;
Ammo.BackpackAmount 1;
Ammo.BackpackMaxAmount 48;
Inventory.MaxAmount 18;
Ammo.BackpackAmount 2;
Ammo.BackpackMaxAmount 36;
Ammo.DropAmount 1;
+FLOATBOB;
FloatBobStrength 0.25;
@ -599,7 +599,7 @@ Class HellblazerCrackshots : SWWMAmmo
Stamina 15000;
Inventory.Icon "graphics/HUD/Icons/A_HellblazerCrackshot.png";
Inventory.Amount 1;
Inventory.MaxAmount 15;
Inventory.MaxAmount 12;
Ammo.BackpackAmount 1;
Ammo.BackpackMaxAmount 30;
Ammo.DropAmount 1;
@ -656,7 +656,7 @@ Class HellblazerRavagers : SWWMAmmo
Stamina 25000;
Inventory.Icon "graphics/HUD/Icons/A_HellblazerRavager.png";
Inventory.Amount 1;
Inventory.MaxAmount 9;
Inventory.MaxAmount 6;
Ammo.BackpackAmount 0;
Ammo.BackpackMaxAmount 18;
Ammo.DropAmount 1;
@ -702,7 +702,7 @@ Class HellblazerWarheads : SWWMAmmo
Stamina 40000;
Inventory.Icon "graphics/HUD/Icons/A_HellblazerWarhead.png";
Inventory.Amount 1;
Inventory.MaxAmount 4;
Inventory.MaxAmount 2;
Ammo.BackpackAmount 0;
Ammo.BackpackMaxAmount 8;
Ammo.DropAmount 1;
@ -752,9 +752,9 @@ Class SparkUnit : SWWMAmmo
Stamina 50000;
Inventory.Icon "graphics/HUD/Icons/A_Sparkster.png";
Inventory.Amount 1;
Inventory.MaxAmount 10;
Inventory.MaxAmount 8;
Ammo.BackpackAmount 1;
Ammo.BackpackMaxAmount 30;
Ammo.BackpackMaxAmount 24;
Ammo.DropAmount 1;
+FLOATBOB;
FloatBobStrength 0.25;
@ -801,7 +801,7 @@ Class SilverBulletAmmo : SWWMAmmo
Inventory.Amount 1;
Inventory.MaxAmount 3;
Ammo.BackpackAmount 0;
Ammo.BackpackMaxAmount 8;
Ammo.BackpackMaxAmount 6;
Ammo.DropAmount 1;
SWWMAmmo.MagAmmoType "SilverBullets";
+FLOATBOB;
@ -972,9 +972,9 @@ Class CandyGunAmmo : SWWMAmmo
Stamina 100000;
Inventory.Icon "graphics/HUD/Icons/A_CandyGun.png";
Inventory.Amount 1;
Inventory.MaxAmount 2;
Inventory.MaxAmount 1;
Ammo.BackpackAmount 0;
Ammo.BackpackMaxAmount 6;
Ammo.BackpackMaxAmount 4;
Ammo.DropAmount 1;
SWWMAmmo.MagAmmoType "CandyGunBullets";
+FLOATBOB;

View file

@ -18,7 +18,7 @@ Class SWWMShellAmmoSmall : SWWMAmmoSpawner
{
/*if ( Random[Replacements](0,1) && (notondemand || SWWMUtility.ItemExists('PuntzerBeta') || SWWMUtility.ItemExists('PuntzerGamma')) )
return Random[Replacements](0,2)?'SMW05SmallAmmo':'SMW05Ammo3';*/
switch( Random[Replacements](0,8) )
switch( Random[Replacements](0,9) )
{
case 0:
case 1:
@ -32,7 +32,7 @@ Class SWWMShellAmmoSmall : SWWMAmmoSpawner
case 7:
return 'PurpleShell';
}
// case 8
// case 8-9
return 'BlueShell';
}
}
@ -42,44 +42,54 @@ Class SWWMShellAmmoBig : SWWMAmmoSpawner
static Class<Actor> PickAmmo( bool notondemand = false )
{
// shell types (sorted by rarity)
static const Class<Actor> redpool[] = {'RedShell','RedShell2'};
static const Class<Actor> greenpool[] = {'GreenShell','GreenShell2'};
static const Class<Actor> purplepool[] = {'PurpleShell','PurpleShell2'};
static const Class<Actor> bluepool[] = {'BlueShell','BlueShell2'};
/*if ( Random[Replacements](0,1) && (notondemand || SWWMUtility.ItemExists('PuntzerBeta') || SWWMUtility.ItemExists('PuntzerGamma')) )
return Random[Replacements](0,2)?'SMW05SmallAmmo':'SMW05BigAmmo';*/
switch( Random[Replacements](0,20) )
switch( Random[Replacements](0,17) )
{
case 0:
case 1:
case 2:
case 3:
return 'RedShell';
case 4:
return redpool[Random[Replacements](0,1)];
case 5:
case 6:
case 7:
return 'GreenShell';
case 8:
case 9:
return greenpool[Random[Replacements](0,1)];
case 10:
return 'PurpleShell';
case 11:
case 12:
case 13:
return purplepool[Random[Replacements](0,1)];
return 'BlueShell';
case 14:
case 15:
case 16:
return bluepool[Random[Replacements](0,1)];
case 17:
case 18:
return 'WhiteShell';
}
// case 19-20
// case 16-17
return 'BlackShell';
}
}
Class SWWMClipAmmoSmall : SWWMAmmoSpawner
{
Mixin SWWMOndemandAmmoSpawner;
static Class<Actor> PickAmmo( bool notondemand = false )
{
if ( !Random[Replacements](0,4) )
{
/*if ( Random[Replacements](0,1) && (notondemand || SWWMUtility.ItemExists('HeavyMahsheenGun')) )
return Random[Replacements](0,2)?'SheenAmmo3':'SheenTinyAmmo';*/
if ( notondemand || SWWMUtility.ItemExists('Eviscerator') )
return 'EvisceratorShell';
}
/*if ( Random[Replacements](0,1) && (notondemand || SWWMUtility.ItemExists('PuntzerBeta') || SWWMUtility.ItemExists('PuntzerGamma')) )
return Random[Replacements](0,2)?'SMW05Ammo':'SMW05Ammo2';*/
return Random[Replacements](0,1)?'RedShell':'GreenShell';
}
}
Class SWWMClipAmmoBig : SWWMAmmoSpawner
{
Mixin SWWMOndemandAmmoSpawner;
@ -136,7 +146,7 @@ Class SWWMRocketAmmoBig : SWWMAmmoSpawner
return Random[Replacements](0,2)?'SparksterRAmmo2':'SparksterRAmmo3';
}*/
/*if ( Random[Replacements](0,1) && (notondemand || SWWMUtility.ItemExists('Quadravol')) )
return Random[Replacements](0,2)?'QuadravolAmmo':'QuadravolAmmo2';*/
return Random[Replacements](0,4)?'QuadravolAmmo2':'QuadravolAmmo3';*/
switch ( Random[Replacements](0,11) )
{
case 0:
@ -144,7 +154,7 @@ Class SWWMRocketAmmoBig : SWWMAmmoSpawner
case 2:
case 3:
case 4:
return Random[Replacements](0,4)?'HellblazerMissiles':Random[Replacements](0,2)?'HellblazerMissiles2':'HellblazerMissiles3';
return Random[Replacements](0,4)?'HellblazerMissiles':'HellblazerMissiles2';
case 5:
case 6:
case 7:

View file

@ -63,28 +63,6 @@ Class ArmorNuggetItem : SWWMSpareArmor
Stop;
}
}
Class ArmorNuggetBundleSpawn : Actor
{
override void PostBeginPlay()
{
if ( bCOUNTSECRET ) level.total_secrets--;
int bnd = Random[Bundle](2,3);
for ( int i=0; i<bnd; i++ )
{
let a = Spawn("ArmorNuggetItem",Vec3Angle(8,i*(360/bnd)));
a.special = special;
a.angle = i*(360/bnd);
for ( int j=0; j<5; j++ ) a.args[j] = args[j];
if ( bCOUNTSECRET )
{
a.bCOUNTSECRET = true;
level.total_secrets++;
}
a.bDROPPED = bDROPPED;
}
Destroy();
}
}
Class BlastSuit : SWWMArmor
{

View file

@ -106,28 +106,6 @@ Class HealthNuggetItem : SWWMHealth
Stop;
}
}
Class HealthNuggetBundleSpawn : Actor
{
override void PostBeginPlay()
{
if ( bCOUNTSECRET ) level.total_secrets--;
int bnd = Random[Bundle](2,3);
for ( int i=0; i<bnd; i++ )
{
let a = Spawn("HealthNuggetItem",Vec3Angle(8,i*(360/bnd)));
a.special = special;
a.angle = i*(360/bnd);
for ( int j=0; j<5; j++ ) a.args[j] = args[j];
if ( bCOUNTSECRET )
{
a.bCOUNTSECRET = true;
level.total_secrets++;
}
a.bDROPPED = bDROPPED;
}
Destroy();
}
}
Class TetraHealthItem : SWWMHealth
{