diff --git a/README.md b/README.md index 73a319326..a952f0e94 100644 --- a/README.md +++ b/README.md @@ -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) diff --git a/language.version b/language.version index d5471e43d..4b5bbcb10 100644 --- a/language.version +++ b/language.version @@ -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-"; diff --git a/zscript/items/swwm_ammospawn.zsc b/zscript/items/swwm_ammospawn.zsc index a209b2a0a..557cc4e87 100644 --- a/zscript/items/swwm_ammospawn.zsc +++ b/zscript/items/swwm_ammospawn.zsc @@ -183,6 +183,15 @@ Class SWWMCellAmmoBig : SWWMAmmoSpawner static Class 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'; diff --git a/zscript/items/swwm_funstuff.zsc b/zscript/items/swwm_funstuff.zsc index 007392609..1d0fa4474 100644 --- a/zscript/items/swwm_funstuff.zsc +++ b/zscript/items/swwm_funstuff.zsc @@ -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 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 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); diff --git a/zscript/utility/swwm_utility.zsc b/zscript/utility/swwm_utility.zsc index e44a55c87..89e2e019a 100644 --- a/zscript/utility/swwm_utility.zsc +++ b/zscript/utility/swwm_utility.zsc @@ -1809,9 +1809,27 @@ Class SWWMUtility } static Class 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 PickDoomSlot6() {