Chanceboxes won't drop ammo that's already full.

This commit is contained in:
Mari the Deer 2023-09-24 18:43:53 +02:00
commit da48b8ea63
2 changed files with 57 additions and 16 deletions

View file

@ -1,3 +1,3 @@
[default]
SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r957 \cu(Wed 20 Sep 22:16:31 CEST 2023)\c-";
SWWM_SHORTVER="\cw1.3pre r957 \cu(2023-09-20 22:16:31)\c-";
SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r958 \cu(Sun 24 Sep 18:43:53 CEST 2023)\c-";
SWWM_SHORTVER="\cw1.3pre r958 \cu(2023-09-24 18:43:53)\c-";

View file

@ -832,7 +832,7 @@ Class RewardMisterRifle : ChanceboxReward
{
override bool CheckRequirements()
{
return SWWMUtility.ItemExists("MisterRifle",ownedonly:true);
return SWWMUtility.ItemExists("MisterRifle",ownedonly:true)&&(SWWMUtility.CheckNeedsItem("MisterGAmmo",true)||SWWMUtility.CheckNeedsItem("MisterAmmo",true)||SWWMUtility.CheckNeedsItem("MisterRound",true));
}
override void SpawnReward( Vector3 pos )
@ -847,7 +847,7 @@ Class RewardCandyGun : ChanceboxReward
{
override bool CheckRequirements()
{
return SWWMUtility.ItemExists("CandyGun",ownedonly:true);
return SWWMUtility.ItemExists("CandyGun",ownedonly:true)&&(SWWMUtility.CheckNeedsItem("CandyGunAmmo",true)||SWWMUtility.CheckNeedsItem("CandyGunBullets",true)||SWWMUtility.CheckNeedsItem("CandyGunSpares",true));
}
override void SpawnReward( Vector3 pos )
@ -856,13 +856,27 @@ Class RewardCandyGun : ChanceboxReward
SpawnCircle(pos,7,"CandyGunBullets");
}
}
// TODO ray-khom bolts all over
// them big bolts
Class RewardThiccBolts : ChanceboxReward
{
override bool CheckRequirements()
{
return SWWMUtility.ItemExists("RayKhom",ownedonly:true)&&(SWWMUtility.CheckNeedsItem("RayAmmo",true)||SWWMUtility.CheckNeedsItem("RayBolt",true));
}
override void SpawnReward( Vector3 pos )
{
SpawnCenter(pos,"RayAmmo",true);
SpawnCircle(pos,4,"RayBolt");
SpawnCircle(pos,6,"RayBolt",3.);
}
}
// them silver bullets
Class RewardSilverBullets : ChanceboxReward
{
override bool CheckRequirements()
{
return SWWMUtility.ItemExists("SilverBullet",ownedonly:true);
return SWWMUtility.ItemExists("SilverBullet",ownedonly:true)&&(SWWMUtility.CheckNeedsItem("SilverBulletAmmo",true)||SWWMUtility.CheckNeedsItem("SilverBullets",true));
}
override void SpawnReward( Vector3 pos )
@ -871,13 +885,25 @@ Class RewardSilverBullets : ChanceboxReward
SpawnCircle(pos,6,"SilverBullets",3.);
}
}
// TODO cyan/red plasma cells for the sparkster
// blues 'n reds
Class RewardSparkCells : ChanceboxReward
{
override bool CheckRequirements()
{
return SWWMUtility.ItemExists("ModernSparkster",ownedonly:true)&&(SWWMUtility.CheckNeedsItem("SparksterBAmmo",true)||SWWMUtility.CheckNeedsItem("SparksterRAmmo",true));
}
override void SpawnReward( Vector3 pos )
{
SpawnCircle(pos,6,"SparksterBAmmo",item2:"SparksterRAmmo");
}
}
// buncha spark units
Class RewardSparkUnits : ChanceboxReward
{
override bool CheckRequirements()
{
return SWWMUtility.ItemExists("Sparkster",ownedonly:true);
return SWWMUtility.ItemExists("Sparkster",ownedonly:true&&SWWMUtility.CheckNeedsItem("SparkUnit",true));
}
override void SpawnReward( Vector3 pos )
@ -891,7 +917,7 @@ Class RewardQuadCells : ChanceboxReward
{
override bool CheckRequirements()
{
return SWWMUtility.ItemExists("Quadravol",ownedonly:true);
return SWWMUtility.ItemExists("Quadravol",ownedonly:true)&&SWWMUtility.CheckNeedsItem("QuadravolAmmo",true);
}
override void SpawnReward( Vector3 pos )
@ -906,7 +932,7 @@ Class RewardHellblazers : ChanceboxReward
{
override bool CheckRequirements()
{
return SWWMUtility.ItemExists("Hellblazer",ownedonly:true);
return SWWMUtility.ItemExists("Hellblazer",ownedonly:true)&&SWWMUtility.CheckNeedsItem("HellblazerMissiles",true);
}
override void SpawnReward( Vector3 pos )
@ -921,7 +947,7 @@ Class RewardSheenAmmo : ChanceboxReward
{
override bool CheckRequirements()
{
return SWWMUtility.ItemExists("HeavyMahSheenGun",ownedonly:true);
return SWWMUtility.ItemExists("HeavyMahSheenGun",ownedonly:true)&&SWWMUtility.CheckNeedsItem("SheenAmmo",true);
}
override void SpawnReward( Vector3 pos )
@ -936,7 +962,7 @@ Class RewardFlakShells : ChanceboxReward
{
override bool CheckRequirements()
{
return SWWMUtility.ItemExists("Eviscerator",ownedonly:true);
return SWWMUtility.ItemExists("Eviscerator",ownedonly:true)&&SWWMUtility.CheckNeedsItem("EvisceratorShell",true);
}
override void SpawnReward( Vector3 pos )
@ -945,19 +971,34 @@ Class RewardFlakShells : ChanceboxReward
SpawnCircle(pos,6,"EvisceratorShell",3.);
}
}
// TODO screwbullet droppage for the puntzers
// screwbullet droppage
Class RewardScrews : ChanceboxReward
{
override bool CheckRequirements()
{
return (SWWMUtility.ItemExists("PuntzerBeta",ownedonly:true)||SWWMUtility.ItemExists("PuntzerGamma",ownedonly:true))&&SWWMUtility.CheckNeedsItem("SMW05Ammo",true);
}
override void SpawnReward( Vector3 pos )
{
SpawnCenter(pos,"SMW05SmallAmmo",true);
SpawnCircle(pos,6,"SMW05Ammo2",2.);
SpawnCircle(pos,12,"SMW05Ammo",4.);
}
}
// Lotta shells
Class RewardShells : ChanceboxReward
{
override bool CheckRequirements()
{
return SWWMUtility.ItemExists("Spreadgun",ownedonly:true)||SWWMUtility.ItemExists("Wallbuster",ownedonly:true);
return (SWWMUtility.ItemExists("Spreadgun",ownedonly:true)||SWWMUtility.ItemExists("Wallbuster",ownedonly:true))&&SWWMUtility.CheckNeedsItem("RedShell",true);
}
override void SpawnReward( Vector3 pos )
{
SpawnCircle(pos,8,"RedShell",2.);
SpawnCircle(pos,12,"RedShell",4.,item2:"RedShell");
SpawnCenter(pos,"RedShell4",true);
SpawnCircle(pos,4,"RedShell2",2.);
SpawnCircle(pos,8,"RedShell",4.);
}
}
// Buncha nuggets