VIP weapon/ammo spawn tweakery.

This commit is contained in:
Mari the Deer 2021-09-07 00:32:10 +02:00
commit cf3d42f1ee
5 changed files with 48 additions and 9 deletions

View file

@ -276,12 +276,14 @@ Popularly known as the ***"Death Cannon"***. One of the four ultimate weapons co
Unlike its previous incarnation in **SWWM Platinum**, this one doesn't have such an obscene pre-fire delay, so it's much easier to land a shot (not to mention also being far more lethal, thanks to the added chain reaction effect).
Due to its rarity, you can't buy it from the store, so you gotta find one in the field.
Due to its rarity, you can't buy it from the store, so you gotta find one (and only one) in the field.
### Crystal Box
### Crystal Box ~ Replaces Cell Pack, Greater Rune
![](docimg/ynykronammo.png)
Additional ammo charge for the **Ynykron Artifact**. Contains a rod of polarized **Puronokorokinylum** crystal, highly volatile when heated and stimulated with concentrated light. These don't spawn in the world, and cannot be bought, so you'll have to get more ammo by finding additional weapon pickups or trying your luck with a **Chancebox**.
Additional ammo charge for the **Ynykron Artifact**. Contains a rod of polarized **Puronokorokinylum** crystal, highly volatile when heated and stimulated with concentrated light.
These spawn VERY rarely and, like the weapon that uses them, you can't buy them either. It's also possible to find them in Chanceboxes, if you're lucky.
## The Pickups
![](docimg/demolitionist_items.png)

View file

@ -1,3 +1,3 @@
[default]
SWWM_MODVER="\chSWWM \czGZ\c- \cw1.1pre r8 \cu(Mon 6 Sep 23:38:39 CEST 2021)\c-";
SWWM_SHORTVER="\cw1.1pre r8 \cu(2021-09-06 23:38:39)\c-";
SWWM_MODVER="\chSWWM \czGZ\c- \cw1.1pre r10 \cu(Tue 7 Sep 00:39:49 CEST 2021)\c-";
SWWM_SHORTVER="\cw1.1pre r10 \cu(2021-09-07 00:39:49)\c-";

View file

@ -183,6 +183,15 @@ Class SWWMCellAmmoBig : SWWMAmmoSpawner
static Class<Actor> PickAmmo( bool notondemand = false )
{
if ( !Random[Replacements](0,3) )
{
//if ( Random[Replacements](0,1) && (notondemand || SWWMUtility.ItemExists('GrandLance')) && SWWMUtility.CheckNeedsItem('GrandAmmo',true) && !SWWMUtility.ItemExists('GrandAmmo',worldonly:true) && !SWWMUtility.ItemExists('GrandLance',worldonly:true) )
// return 'GrandAmmo';
//if ( Random[Replacements](0,1) && (notondemand || SWWMUtility.ItemExists('RafanKos')) && SWWMUtility.CheckNeedsItem('UltimateAmmo',true) && !SWWMUtility.ItemExists('UltimateAmmo',worldonly:true) && !SWWMUtility.ItemExists('RafanKos',worldonly:true) )
// return 'UltimateAmmo';
if ( (notondemand || SWWMUtility.ItemExists('Ynykron')) && SWWMUtility.CheckNeedsItem('YnykronAmmo',true) && !SWWMUtility.ItemExists('YnykronAmmo',worldonly:true) && !SWWMUtility.ItemExists('Ynykron',worldonly:true) )
return 'YnykronAmmo';
}
/*if ( Random[Replacements](0,1) )
{
if ( !Random[Replacements](0,2) && (notondemand || SWWMUtility.ItemExists('EMPCarbine')) ) return Random[Replacements](0,3)?'EMPCoreBundleSpawn':'EMPCore';

View file

@ -947,7 +947,17 @@ Class Chancebox : Actor
// no candidates? just burst into treats
if ( Random[Chancebox](0,1) )
{
let a = Spawn((!Random[Chancebox](0,2)&&SWWMUtility.ItemExists("Spreadgun"))?"GoldShell":(Random[Chancebox](0,1)&&SWWMUtility.ItemExists("Ynykron"))?"YnykronAmmo":"GrilledCheeseSandwich",pos);
Class<Inventory> vipammodrop = null;
if ( SWWMUtility.ItemExists("Ynykron") && Random[Chancebox](0,1) ) vipammodrop = "YnykronAmmo";
//if ( SWWMUtility.ItemExists("GrandLance") && Random[Chancebox](0,1) && !vipammodrop ) vipammodrop = "GrandAmmo";
//if ( SWWMUtility.ItemExists("RafanKos") && Random[Chancebox](0,1) && !vipammodrop ) vipammodrop = "UltimateAmmo";
if ( SWWMUtility.ItemExists("Spreadgun") && SWWMUtility.CheckNeedsItem("GoldShell",true) && !vipammodrop ) vipammodrop = "GoldShell";
Class<Inventory> vipitemdrop = null;
if ( SWWMUtility.CheckNeedsItem("Mykradvo",true) && !SWWMUtility.ItemExists("Mykradvo",worldonly:true) && Random[Chancebox](0,1) ) vipitemdrop = "Mykradvo";
if ( SWWMUtility.CheckNeedsItem("AngerySigil",true) && !SWWMUtility.ItemExists("AngerySigil",worldonly:true) && Random[Chancebox](0,1) && !vipitemdrop ) vipitemdrop = "AngerySigil";
if ( SWWMUtility.CheckNeedsItem("DivineSprite",true) && !SWWMUtility.ItemExists("DivineSprite",worldonly:true) && Random[Chancebox](0,1) && !vipitemdrop ) vipitemdrop = "DivineSprite";
if ( !vipitemdrop ) vipitemdrop = "GrilledCheeseSandwich";
let a = Spawn((!Random[Chancebox](0,2)&&vipammodrop)?vipammodrop:vipitemdrop,pos);
a.bDROPPED = false;
a.bNOGRAVITY = false;
a.vel.z = FRandom[Chancebox](2,4);

View file

@ -1809,9 +1809,27 @@ Class SWWMUtility
}
static Class<Inventory> PickSWWMSlot0()
{
//return PickTrio('Ynykron','GrandLance','RafanKos');
//return PickPair('Ynykron','GrandLance');
return 'Ynykron';
/*if ( !CheckNeedsItem('Ynykron') )
{
if ( !CheckNeedsItem('GrandLance') )
{
if ( !CheckNeedsItem('RafanKos') )
return PickSWWMSlot9();
return 'RafanKos';
}
if ( !CheckNeedsItem('RafanKos') )
return 'GrandLance';
return PickPair('GrandLance','RafanKos');
}
return PickTrio('Ynykron','GrandLance','RafanKos');*/
/*if ( !CheckNeedsItem('Ynykron') )
{
if ( !CheckNeedsItem('GrandLance') )
return PickSWWMSlot9();
return 'GrandLance';
}
return PickPair('Ynykron','GrandLance');*/
return !CheckNeedsItem('Ynykron')?'CandyGun':'Ynykron';
}
static Class<Inventory> PickDoomSlot6()
{