diff --git a/language.version b/language.version index f0d9780ad..086934564 100644 --- a/language.version +++ b/language.version @@ -1,2 +1,2 @@ [default] -SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r714 \cu(Wed 30 Dec 18:29:23 CET 2020)"; +SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r715 \cu(Wed 30 Dec 19:04:52 CET 2020)"; diff --git a/zscript/swwm_handler.zsc b/zscript/swwm_handler.zsc index 9e913b5bb..1099abd30 100644 --- a/zscript/swwm_handler.zsc +++ b/zscript/swwm_handler.zsc @@ -2214,9 +2214,9 @@ Class SWWMHandler : EventHandler else e.Replacement = 'PusherWeapon'; } else if ( (e.Replacee is 'Fist') || (e.Replacee is 'Staff') ) e.Replacement = 'DeepImpact'; - else if ( (e.Replacee is 'Pistol') || (e.Replacee is 'GoldWand') || (e.Replacee is 'FWeapFist') || (e.Replacee is 'CWeapMace') || (e.Replacee is 'MWeapWand') ) e.Replacement = 'ExplodiumGun'; - else if ( (e.Replacee is 'Shotgun') || (e.Replacee is 'CWeapStaff') ) e.Replacement = 'Spreadgun'; - else if ( (e.Replacee is 'SuperShotgun') || (e.Replacee is 'MWeapFrost') ) e.Replacement = 'Wallbuster'; + else if ( (e.Replacee is 'Pistol') || (e.Replacee is 'GoldWand') || (e.Replacee is 'FWeapFist') || (e.Replacee is 'CWeapMace') || (e.Replacee is 'MWeapWand') || (e.Replacee.GetClassName() == 'TangoPistol') ) e.Replacement = 'ExplodiumGun'; + else if ( (e.Replacee is 'Shotgun') || (e.Replacee is 'CWeapStaff') || (e.Replacee.GetClassName() == 'TangoShotgun') ) e.Replacement = 'Spreadgun'; + else if ( (e.Replacee is 'SuperShotgun') || (e.Replacee is 'MWeapFrost') || (e.Replacee.GetClassName() == 'TangoSuperShotgun') ) e.Replacement = 'Wallbuster'; else if ( (e.Replacee is 'Crossbow') || (e.Replacee.GetClassName() == 'TangoScrapGun') ) e.Replacement = Random[Replacements](0,2)?'Spreadgun':'Wallbuster'; else if ( (e.Replacee is 'Chaingun') || (e.Replacee is 'Blaster') || (e.Replacee is 'FWeaponPiece3') || (e.Replacee.GetClassName() == 'TangoAssaultRifle') || (e.Replacee.GetClassName() == 'TangoChaingun') ) e.Replacement = 'Eviscerator'; else if ( (e.Replacee is 'RocketLauncher') || (e.Replacee is 'PhoenixRod') || (e.Replacee is 'FWeapHammer') || (e.Replacee.GetClassName() == 'TangoStomper') ) e.Replacement = 'Hellblazer'; @@ -2226,40 +2226,7 @@ Class SWWMHandler : EventHandler else if ( (e.Replacee is 'BFG9000') || (e.Replacee is 'Mace') ) e.Replacement = Random[Replacements](0,2)?'CandyGun':'Ynykron'; else if ( e.Replacee is 'CWeaponPiece2' ) e.Replacement = 'CandyGun'; else if ( e.Replacee is 'MWeaponPiece1' ) e.Replacement = 'Ynykron'; - else if ( (e.Replacee == 'Clip') || (e.Replacee == 'GoldWandAmmo') || (e.Replacee == 'GoldWandHefty') ) e.Replacement = 'SWWMNothing'; - else if ( (e.Replacee == 'Shell') || (e.Replacee is 'CrossbowAmmo') || (e.Replacee.GetClassName() == 'TangoScrapDrum') ) - { - switch( Random[Replacements](0,13) ) - { - case 0: - case 1: - case 2: - e.Replacement = redpool[Random[Replacements](0,2)]; - break; - case 3: - case 4: - case 5: - e.Replacement = greenpool[Random[Replacements](0,2)]; - break; - case 6: - case 7: - e.Replacement = whitepool[0]; - break; - case 8: - case 9: - case 10: - e.Replacement = purplepool[Random[Replacements](0,1)]; - break; - case 11: - case 12: - e.Replacement = bluepool[Random[Replacements](0,1)]; - break; - case 13: - e.Replacement = blackpool[0]; - break; - } - } - else if ( (e.Replacee == 'ShellBox') || (e.Replacee is 'CrossbowHefty') || (e.Replacee.GetClassName() == 'TangoScrapDrumPack') ) + else if ( (e.Replacee is 'ShellBox') || (e.Replacee is 'CrossbowHefty') || (e.Replacee.GetClassName() == 'TangoShellBox') || (e.Replacee.GetClassName() == 'TangoScrapDrumPack') ) { switch( Random[Replacements](0,14) ) { @@ -2292,11 +2259,44 @@ Class SWWMHandler : EventHandler break; } } - else if ( e.Replacee == 'ClipBox' ) e.Replacement = Random[Replacements](0,4)?'EvisceratorShell':Random[Replacements](0,6)?'EvisceratorTrioSpawn':'EvisceratorSixPack'; - else if ( (e.Replacee == 'BlasterAmmo') || (e.Replacee.GetClassName() == 'TangoBulletClipHalf') ) e.Replacement = 'EvisceratorShell'; - else if ( e.Replacee == 'BlasterHefty' ) e.Replacement = Random[Replacements](0,6)?'EvisceratorTrioSpawn':'EvisceratorSixPack'; - else if ( (e.Replacee == 'RocketAmmo') || (e.Replacee == 'PhoenixRodAmmo') || (e.Replacee == 'MaceAmmo') || (e.Replacee.GetClassName() == 'TangoStomperAmmo') ) e.Replacement = Random[Replacements](0,2)?'HellblazerMissiles':'HellblazerCrackshots'; - else if ( (e.Replacee == 'RocketBox') || (e.Replacee == 'PhoenixRodHefty') || (e.Replacee == 'MaceHefty')|| (e.Replacee.GetClassName() == 'TangoStomperBox') ) + else if ( (e.Replacee is 'Shell') || (e.Replacee is 'CrossbowAmmo') || (e.Replacee.GetClassName() == 'TangoShell') || (e.Replacee.GetClassName() == 'TangoScrapDrum') ) + { + switch( Random[Replacements](0,13) ) + { + case 0: + case 1: + case 2: + e.Replacement = redpool[Random[Replacements](0,2)]; + break; + case 3: + case 4: + case 5: + e.Replacement = greenpool[Random[Replacements](0,2)]; + break; + case 6: + case 7: + e.Replacement = whitepool[0]; + break; + case 8: + case 9: + case 10: + e.Replacement = purplepool[Random[Replacements](0,1)]; + break; + case 11: + case 12: + e.Replacement = bluepool[Random[Replacements](0,1)]; + break; + case 13: + e.Replacement = blackpool[0]; + break; + } + } + + else if ( e.Replacee is 'ClipBox' ) e.Replacement = Random[Replacements](0,4)?'EvisceratorShell':Random[Replacements](0,6)?'EvisceratorTrioSpawn':'EvisceratorSixPack'; + else if ( (e.Replacee is 'Clip') || (e.Replacee is 'GoldWandAmmo') ) e.Replacement = 'SWWMNothing'; + else if ( e.Replacee is 'BlasterHefty' ) e.Replacement = Random[Replacements](0,6)?'EvisceratorTrioSpawn':'EvisceratorSixPack'; + else if ( (e.Replacee is 'BlasterAmmo') || (e.Replacee.GetClassName() == 'TangoBulletClipHalf') ) e.Replacement = 'EvisceratorShell'; + else if ( (e.Replacee is 'RocketBox') || (e.Replacee is 'PhoenixRodHefty') || (e.Replacee is 'MaceHefty')|| (e.Replacee.GetClassName() == 'TangoStomperBox') ) { switch ( Random[Replacements](0,11) ) { @@ -2327,14 +2327,8 @@ Class SWWMHandler : EventHandler break; } } - else if ( (e.Replacee == 'Cell') || (e.Replacee == 'SkullRodAmmo') ) - { - if ( !Random[Replacements](0,2) ) e.Replacement = Random[Replacements](0,2)?'HellblazerRavagers':'HellblazerWarheads'; - else if ( Random[Replacements](0,2) ) e.Replacement = 'SparkUnit'; - else if ( !Random[Replacements](0,3) ) e.Replacement = 'CandyGunBullets'; - else e.Replacement = Random[Replacements](0,2)?'SilverBullets':'SilverBullets2'; - } - else if ( (e.Replacee == 'CellPack') || (e.Replacee == 'SkullRodHefty') ) + else if ( (e.Replacee is 'RocketAmmo') || (e.Replacee is 'PhoenixRodAmmo') || (e.Replacee is 'MaceAmmo') || (e.Replacee.GetClassName() == 'TangoStomperAmmo') ) e.Replacement = Random[Replacements](0,2)?'HellblazerMissiles':'HellblazerCrackshots'; + else if ( (e.Replacee is 'CellPack') || (e.Replacee is 'SkullRodHefty') ) { if ( !Random[Replacements](0,2) ) { @@ -2344,37 +2338,44 @@ Class SWWMHandler : EventHandler else if ( Random[Replacements](0,2) ) e.Replacement = 'CandyGunBulletsBundleSpawn'; else e.Replacement = 'CandyGunAmmo'; } - else if ( e.Replacee == 'Mana1' ) e.Replacement = 'FabricatorTier1'; - else if ( e.Replacee == 'Mana2' ) e.Replacement = 'FabricatorTier2'; - else if ( e.Replacee == 'Mana3' ) e.Replacement = 'FabricatorTier3'; - else if ( e.Replacee == 'ArtiBoostMana' ) e.Replacement = 'FabricatorTier4'; - else if ( (e.Replacee == 'Backpack') || (e.Replacee == 'BagOfHolding') || (e.Replacee == 'ArtiBoostArmor') ) e.Replacement = 'HammerspaceEmbiggener'; - else if ( (e.Replacee == 'FWeaponPiece1') || (e.Replacee == 'FWeaponPiece2') - || (e.Replacee == 'CWeaponPiece1') || (e.Replacee == 'CWeaponPiece3') - || (e.Replacee == 'MWeaponPiece2') || (e.Replacee == 'MWeaponPiece3') ) + else if ( (e.Replacee is 'Cell') || (e.Replacee is 'SkullRodAmmo') ) + { + if ( !Random[Replacements](0,2) ) e.Replacement = Random[Replacements](0,2)?'HellblazerRavagers':'HellblazerWarheads'; + else if ( Random[Replacements](0,2) ) e.Replacement = 'SparkUnit'; + else if ( !Random[Replacements](0,3) ) e.Replacement = 'CandyGunBullets'; + else e.Replacement = Random[Replacements](0,2)?'SilverBullets':'SilverBullets2'; + } + else if ( e.Replacee is 'Mana1' ) e.Replacement = 'FabricatorTier1'; + else if ( e.Replacee is 'Mana2' ) e.Replacement = 'FabricatorTier2'; + else if ( e.Replacee is 'Mana3' ) e.Replacement = 'FabricatorTier3'; + else if ( e.Replacee is 'ArtiBoostMana' ) e.Replacement = 'FabricatorTier4'; + else if ( (e.Replacee is 'Backpack') || (e.Replacee is 'BagOfHolding') || (e.Replacee is 'ArtiBoostArmor') ) e.Replacement = 'HammerspaceEmbiggener'; + else if ( (e.Replacee is 'FWeaponPiece1') || (e.Replacee is 'FWeaponPiece2') + || (e.Replacee is 'CWeaponPiece1') || (e.Replacee is 'CWeaponPiece3') + || (e.Replacee is 'MWeaponPiece2') || (e.Replacee is 'MWeaponPiece3') ) { if ( Random[Replacements](0,1) ) e.Replacement = 'SWWMNothing'; else if ( Random[Replacements](0,5) ) e.Replacement = 'HammerspaceEmbiggener'; else e.Replacement = 'GoldShell'; } - else if ( (e.Replacee == 'ArmorBonus') || (e.Replacee == 'ArtiTimeBomb') || (e.Replacee == 'ArtiBlastRadius') || (e.Replacee is 'ArtiPoisonBag') ) e.Replacement = 'ArmorNuggetItem'; - else if ( (e.Replacee == 'HealthBonus') || (e.Replacee == 'CrystalVial') ) e.Replacement = 'HealthNuggetItem'; - else if ( e.Replacee == 'Stimpack' ) e.Replacement = 'TetraHealthItem'; - else if ( e.Replacee == 'Medikit' ) e.Replacement = 'CubeHealthItem'; - else if ( e.Replacee == 'ArtiHealth' ) e.Replacement = Random[Replacements](0,1)?'CubeHealthItem':'TetraHealthItem'; - else if ( (e.Replacee == 'Soulsphere') || (e.Replacee == 'ArtiSuperHealth') ) e.Replacement = 'RefresherItem'; - else if ( e.Replacee == 'ArtiHealingRadius' ) e.Replacement = 'SWWMNothing'; - else if ( (e.Replacee == 'Megasphere') || (e.Replacee == 'ArtiEgg') || (e.Replacee == 'PlatinumHelm') ) e.Replacement = 'GrilledCheeseSandwich'; - else if ( (e.Replacee == 'Blursphere') || (e.Replacee == 'ArtiInvisibility') || (e.Replacee == 'AmuletOfWarding') ) e.Replacement = 'GhostArtifact'; - else if ( e.Replacee == 'Radsuit' ) e.Replacement = 'EBarrier'; - else if ( (e.Replacee == 'ArtiFly') ) e.Replacement = 'GravitySuppressor'; - else if ( (e.Replacee == 'InvulnerabilitySphere') || (e.Replacee == 'ArtiInvulnerability') || (e.Replacee == 'ArtiInvulnerability2') ) e.Replacement = 'FuckingInvinciball'; - else if ( (e.Replacee == 'Berserk') || (e.Replacee == 'ArtiTomeOfPower') || (e.Replacee == 'ArtiSpeedBoots') ) e.Replacement = 'Ragekit'; - else if ( (e.Replacee == 'AllMap') || (e.Replacee == 'SuperMap') ) e.Replacement = 'Omnisight'; - else if ( (e.Replacee == 'Infrared') || (e.Replacee == 'ArtiTorch') ) e.Replacement = 'SWWMLamp'; - else if ( (e.Replacee == 'GreenArmor') || (e.Replacee == 'SilverShield') || (e.Replacee == 'MeshArmor') ) e.Replacement = 'BlastSuitItem'; - else if ( (e.Replacee == 'BlueArmor') || (e.Replacee == 'FalconShield') || (e.Replacee == 'EnchantedShield') ) e.Replacement = 'WarArmorItem'; - else if ( (e.Replacee == 'ArtiPork') || (e.Replacee == 'ArtiDarkServant') || (e.Replacee == 'ArtiTeleport') || (e.Replacee == 'ArtiTeleportOther') ) e.Replacement = 'ChanceboxSpawner'; + else if ( (e.Replacee is 'ArmorBonus') || (e.Replacee is 'ArtiTimeBomb') || (e.Replacee is 'ArtiBlastRadius') || (e.Replacee is 'ArtiPoisonBag') ) e.Replacement = 'ArmorNuggetItem'; + else if ( (e.Replacee is 'HealthBonus') || (e.Replacee is 'CrystalVial') ) e.Replacement = 'HealthNuggetItem'; + else if ( e.Replacee is 'Stimpack' ) e.Replacement = 'TetraHealthItem'; + else if ( e.Replacee is 'Medikit' ) e.Replacement = 'CubeHealthItem'; + else if ( e.Replacee is 'ArtiHealth' ) e.Replacement = Random[Replacements](0,1)?'CubeHealthItem':'TetraHealthItem'; + else if ( (e.Replacee is 'Soulsphere') || (e.Replacee is 'ArtiSuperHealth') ) e.Replacement = 'RefresherItem'; + else if ( e.Replacee is 'ArtiHealingRadius' ) e.Replacement = 'SWWMNothing'; + else if ( (e.Replacee is 'Megasphere') || (e.Replacee is 'ArtiEgg') || (e.Replacee is 'PlatinumHelm') ) e.Replacement = 'GrilledCheeseSandwich'; + else if ( (e.Replacee is 'Blursphere') || (e.Replacee is 'ArtiInvisibility') || (e.Replacee is 'AmuletOfWarding') ) e.Replacement = 'GhostArtifact'; + else if ( e.Replacee is 'Radsuit' ) e.Replacement = 'EBarrier'; + else if ( (e.Replacee is 'ArtiFly') ) e.Replacement = 'GravitySuppressor'; + else if ( (e.Replacee is 'InvulnerabilitySphere') || (e.Replacee is 'ArtiInvulnerability') || (e.Replacee is 'ArtiInvulnerability2') ) e.Replacement = 'FuckingInvinciball'; + else if ( (e.Replacee is 'Berserk') || (e.Replacee == 'ArtiTomeOfPower') || (e.Replacee == 'ArtiSpeedBoots') ) e.Replacement = 'Ragekit'; + else if ( (e.Replacee is 'AllMap') || (e.Replacee is 'SuperMap') ) e.Replacement = 'Omnisight'; + else if ( (e.Replacee is 'Infrared') || (e.Replacee is 'ArtiTorch') ) e.Replacement = 'SWWMLamp'; + else if ( (e.Replacee is 'GreenArmor') || (e.Replacee is 'SilverShield') || (e.Replacee is 'MeshArmor') ) e.Replacement = 'BlastSuitItem'; + else if ( (e.Replacee is 'BlueArmor') || (e.Replacee is 'FalconShield') || (e.Replacee is 'EnchantedShield') ) e.Replacement = 'WarArmorItem'; + else if ( (e.Replacee is 'ArtiPork') || (e.Replacee is 'ArtiDarkServant') || (e.Replacee is 'ArtiTeleport') || (e.Replacee == 'ArtiTeleportOther') ) e.Replacement = 'ChanceboxSpawner'; else return; // this last part is kind of ugly, but it works // guarantees that OUR replacements are all final