From 4058fe93832cf8062d54a5740b77b5fe7c758eae Mon Sep 17 00:00:00 2001 From: Marisa Kirisame Date: Sat, 9 Oct 2021 21:35:48 +0200 Subject: [PATCH] Tweak how chainsaw replacements are selected. --- language.version | 4 ++-- zscript/utility/swwm_utility.zsc | 31 +++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/language.version b/language.version index 64fb080cf..6cc23377e 100644 --- a/language.version +++ b/language.version @@ -1,3 +1,3 @@ [default] -SWWM_MODVER="\chSWWM \czGZ\c- \cw1.1.18 \cu(Thu 7 Oct 19:47:39 CEST 2021)\c-"; -SWWM_SHORTVER="\cw1.1.18 \cu(2021-10-07 19:47:39)\c-"; +SWWM_MODVER="\chSWWM \czGZ\c- \cw1.1.18 \cu(Sat 9 Oct 21:35:48 CEST 2021)\c-"; +SWWM_SHORTVER="\cw1.1.18 \cu(2021-10-09 21:35:48)\c-"; diff --git a/zscript/utility/swwm_utility.zsc b/zscript/utility/swwm_utility.zsc index 900786406..fb56d6d80 100644 --- a/zscript/utility/swwm_utility.zsc +++ b/zscript/utility/swwm_utility.zsc @@ -1975,8 +1975,39 @@ Class SWWMUtility return Random[Replacements](weight1,0)?a:Random[Replacements](weight2,0)?b:c; } + // boy, this one got complicated fast static Class PickSWWMSlot1() { + // so the player can recover it if they decided to drop it in a previous map, or they didn't start with it + if ( CheckNeedsItem('DeepImpact') ) return 'DeepImpact'; + bool needsmelee = CheckNeedsItem('PusherWeapon')/*|CheckNeedsItem('ItamexHammer')|CheckNeedsItem('FistGun')*/; + bool needsgun = CheckNeedsItem('ExplodiumGun',true)/*|CheckNeedsItem('PlasmaBlast',true)*/; + if ( !needsmelee && !needsgun ) + { + static const Class wpns[] = + { + 'ExplodiumGun', 'PusherWeapon', + 'PlasmaBlast', 'ItamexHammer', + 'FistGun' + }; + //return wpns[Random[Replacements](0,4)]; + //return wpns[Random[Replacements](0,3)]; + return wpns[Random[Replacements](0,1)]; + } + if ( !needsmelee && needsgun ) + { + bool needsexplo = CheckNeedsItem('ExplodiumGun',true); + bool needsblast = CheckNeedsItem('PlasmaBlast',true); + if ( needsexplo && !needsblast ) return 'ExplodiumGun'; + if ( !needsexplo && needsblast ) return 'PlasmaBlast'; + return Random[Replacements](0,1)?'ExplodiumGun':'PlasmaBlast'; + } + if ( needsmelee && !needsgun ) + { + //return PickTrio('PusherWeapon','ItamexHammer','FistGun'); + //return PickPair('PusherWeapon','ItamexHammer'); + return 'PusherWeapon'; + } if ( CheckNeedsItem('ExplodiumGun',true) && Random[Replacements](0,1) ) return 'ExplodiumGun'; //if ( CheckNeedsItem('PlasmaBlast',true) && Random[Replacements](0,1) ) return 'PlasmaBlast'; //return PickTrio('PusherWeapon','ItamexHammer','FistGun');