From dff690c46d1e758a6596c7a1f69533519958f472 Mon Sep 17 00:00:00 2001 From: Marisa the Magician Date: Wed, 27 Jul 2022 17:07:27 +0200 Subject: [PATCH] Weapon slot spawn order cvars (not in menus yet) --- cvarinfo.base | 9 +++++++++ language.version | 4 ++-- zscript/utility/swwm_utility.zsc | 28 +++++++++++++++++++++------- 3 files changed, 32 insertions(+), 9 deletions(-) diff --git a/cvarinfo.base b/cvarinfo.base index 4826c9cdb..394d7e279 100644 --- a/cvarinfo.base +++ b/cvarinfo.base @@ -125,6 +125,15 @@ nosave bool swwm_skipskill = false; // skips skill confirmations nosave bool swwm_hudtrimammo = false; // only show ammo for owned weapons nosave bool swwm_hudmugshot = true; // show an animated mugshot in the hud nosave bool swwm_nointroex = false; // does not play the "explosions" intro sequence +server bool swwm_slot2spawn = false; // invert first spawn order for these weapon slots (note: slot2spawn changes which pistol type you start with) +server bool swwm_slot3spawn = false; +server bool swwm_slot4spawn = false; +server bool swwm_slot5spawn = false; +server bool swwm_slot6spawn = false; +server bool swwm_slot7spawn = false; +server bool swwm_slot8spawn = false; +server bool swwm_slot9spawn = false; +server bool swwm_slot0spawn = false; // minimap settings nosave bool swwm_mm_enable = true; // show a minimap below the score counter diff --git a/language.version b/language.version index d864cef0a..a351e4513 100644 --- a/language.version +++ b/language.version @@ -1,3 +1,3 @@ [default] -SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r224 \cu(Wed 27 Jul 16:57:52 CEST 2022)\c-"; -SWWM_SHORTVER="\cw1.3pre r224 \cu(2022-07-27 16:57:52)\c-"; +SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r225 \cu(Wed 27 Jul 17:07:27 CEST 2022)\c-"; +SWWM_SHORTVER="\cw1.3pre r225 \cu(2022-07-27 17:07:27)\c-"; diff --git a/zscript/utility/swwm_utility.zsc b/zscript/utility/swwm_utility.zsc index 726314ee5..dba648973 100644 --- a/zscript/utility/swwm_utility.zsc +++ b/zscript/utility/swwm_utility.zsc @@ -2161,36 +2161,43 @@ Class SWWMUtility return 'ExplodiumGun'; if ( Random[Replacements](0,1) && !CheckNeedsItem('PlasmaBlast') && CheckNeedsItem('PlasmaBlast',true) ) return 'PlasmaBlast'; + if ( swwm_slot2spawn ) return PickPair('PlasmaBlast','ExplodiumGun'); return PickPair('ExplodiumGun','PlasmaBlast'); } // shotgun spawn static Class PickSWWMSlot3() { + if ( swwm_slot3spawn ) return PickPair('PuntzerBeta','Spreadgun'); return PickPair('Spreadgun','PuntzerBeta'); } // super shotgun spawn static Class PickSWWMSlot4() { + if ( swwm_slot4spawn ) PickPair('PuntzerGamma','Wallbuster'); return PickPair('Wallbuster','PuntzerGamma'); } // chaingun spawn static Class PickSWWMSlot5() { + if ( swwm_slot5spawn ) return PickPair('HeavyMahSheenGun','Eviscerator'); return PickPair('Eviscerator','HeavyMahSheenGun'); } // rocket launcher spawn static Class PickSWWMSlot6() { + if ( swwm_slot6spawn ) return PickPair('Quadravol','Hellblazer'); return PickPair('Hellblazer','Quadravol'); } // first plasma rifle spawn static Class PickSWWMSlot7() { + if ( swwm_slot7spawn ) return PickPair('ModernSparkster','Sparkster'); return PickPair('Sparkster','ModernSparkster'); } // second plasma rifle spawn static Class PickSWWMSlot8() { + if ( swwm_slot8spawn ) return PickPair('RayKhom','SilverBullet'); return PickPair('SilverBullet','RayKhom'); } // first bfg spawn @@ -2199,20 +2206,27 @@ Class SWWMUtility // 33% chance to still drop another candy gun if it's not at max capacity if ( !Random[Replacements](0,2) && ItemExists('CandyGun') && CheckNeedsItem('CandyGunSpares',true) ) return 'CandyGun'; + if ( swwm_slot9spawn ) return PickPair('MisterRifle','CandyGun'); return PickPair('CandyGun','MisterRifle'); } // second bfg spawn (each weapon can only exist once) static Class PickSWWMSlot0( bool fallback = true ) { - if ( ItemExists('Ynykron',mapstart:true) ) + Class a = 'Ynykron', b = 'RafanKos'; + if ( swwm_slot0spawn ) { - if ( ItemExists('RafanKos',mapstart:true) ) - return fallback?PickSWWMSlot9():null; - return 'RafanKos'; + a = 'RafanKos'; + b = 'Ynykron'; } - if ( ItemExists('RafanKos',mapstart:true) ) - return 'Ynykron'; - return Random[Replacements](0,1)?'Ynykron':'RafanKos'; + if ( ItemExists(a,mapstart:true) ) + { + if ( ItemExists(b,mapstart:true) ) + return fallback?PickSWWMSlot9():null; + return b; + } + if ( ItemExists(b,mapstart:true) ) + return a; + return Random[Replacements](0,1)?a:b; } // either plasma rifle spawn static Class PickDoomSlot6()