From 12911c652ccc44bf26f10eee6e288257fcd0ffec Mon Sep 17 00:00:00 2001 From: Marisa Kirisame Date: Sat, 9 Oct 2021 21:35:13 +0200 Subject: [PATCH] Stuff from master. --- language.version | 4 +-- zscript/handler/swwm_handler_playerevents.zsc | 21 +++++++++++++ zscript/utility/swwm_utility.zsc | 31 +++++++++++++++++++ 3 files changed, 54 insertions(+), 2 deletions(-) diff --git a/language.version b/language.version index f08373958..42ed9c8fd 100644 --- a/language.version +++ b/language.version @@ -1,3 +1,3 @@ [default] -SWWM_MODVER="\chSWWM \czGZ\c- \cw1.2pre r14 \cu(Sat 9 Oct 21:32:20 CEST 2021)\c-"; -SWWM_SHORTVER="\cw1.2pre r14 \cu(2021-10-09 21:32:20)\c-"; +SWWM_MODVER="\chSWWM \czGZ\c- \cw1.2pre r15 \cu(Sat 9 Oct 21:35:13 CEST 2021)\c-"; +SWWM_SHORTVER="\cw1.2pre r15 \cu(2021-10-09 21:35:13)\c-"; diff --git a/zscript/handler/swwm_handler_playerevents.zsc b/zscript/handler/swwm_handler_playerevents.zsc index 0e56c30cb..bbded2cfc 100644 --- a/zscript/handler/swwm_handler_playerevents.zsc +++ b/zscript/handler/swwm_handler_playerevents.zsc @@ -107,6 +107,27 @@ extend Class SWWMHandler s.GotWeapon(Weapon(i).GetClass()); } } + else if ( (s.lastcluster != level.cluster) || !(level.clusterflags&LevelLocals.CLUSTER_HUB) ) + { + // clear the "weapon got" lists for weapons we don't have anymore (unless we're in a hub) + // so the obtain lines play again + for ( int i=0; i 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');