From 3811e15e22fbe632ffa5e6925ade34efde391bca Mon Sep 17 00:00:00 2001 From: Marisa Kirisame Date: Thu, 21 Jan 2021 21:56:25 +0100 Subject: [PATCH] Fix Eviscerator deselecting before last round is chambered. Picked up Candy Gun spares will leave behind their mag if no more ammo can be held. Mag Ammo max amounts tweaked again. --- language.version | 2 +- zscript/dlc1/swwm_dlcammo.zsc | 8 ++++---- zscript/swwm_ammo.zsc | 12 ++++++------ zscript/swwm_danmaku.zsc | 6 ++++-- zscript/swwm_tastytreat.zsc | 6 ++++++ 5 files changed, 21 insertions(+), 13 deletions(-) diff --git a/language.version b/language.version index ffc7c6748..839e60cd6 100644 --- a/language.version +++ b/language.version @@ -1,2 +1,2 @@ [default] -SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r778 \cu(Thu 21 Jan 18:16:09 CET 2021)"; +SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r779 \cu(Thu 21 Jan 21:56:25 CET 2021)"; diff --git a/zscript/dlc1/swwm_dlcammo.zsc b/zscript/dlc1/swwm_dlcammo.zsc index 1baa65a2f..c3d681552 100644 --- a/zscript/dlc1/swwm_dlcammo.zsc +++ b/zscript/dlc1/swwm_dlcammo.zsc @@ -246,8 +246,8 @@ Class RayBolt : MagAmmo Inventory.Icon "graphics/HUD/Icons/A_RayBolt.png"; MagAmmo.ParentAmmo "RayAmmo"; MagAmmo.ClipSize 20; - Inventory.MaxAmount 21; - Inventory.InterHubAmount 21; + Inventory.MaxAmount 25; + Inventory.InterHubAmount 25; +FLOATBOB; FloatBobStrength 0.25; } @@ -326,8 +326,8 @@ Class GrandSpear : MagAmmo Inventory.Icon "graphics/HUD/Icons/A_GrandSpear.png"; MagAmmo.ParentAmmo "GrandAmmo"; MagAmmo.ClipSize 5; - Inventory.MaxAmount 6; - Inventory.InterHubAmount 6; + Inventory.MaxAmount 8; + Inventory.InterHubAmount 8; +FLOATBOB; FloatBobStrength 0.25; } diff --git a/zscript/swwm_ammo.zsc b/zscript/swwm_ammo.zsc index 25068aa65..b23082ff3 100644 --- a/zscript/swwm_ammo.zsc +++ b/zscript/swwm_ammo.zsc @@ -1159,8 +1159,8 @@ Class SilverBullets : MagAmmo Inventory.Icon "graphics/HUD/Icons/A_SilverBulletBullet.png"; MagAmmo.ParentAmmo "SilverBulletAmmo"; MagAmmo.ClipSize 5; - Inventory.MaxAmount 6; - Inventory.InterHubAmount 6; + Inventory.MaxAmount 8; + Inventory.InterHubAmount 8; +FLOATBOB; FloatBobStrength 0.25; Radius 4; @@ -1182,8 +1182,8 @@ Class SilverBullets2 : MagAmmo Inventory.Icon "graphics/HUD/Icons/A_SilverBulletBullet2.png"; MagAmmo.ParentAmmo "SilverBulletAmmo2"; MagAmmo.ClipSize 5; - Inventory.MaxAmount 6; - Inventory.InterHubAmount 6; + Inventory.MaxAmount 8; + Inventory.InterHubAmount 8; +FLOATBOB; FloatBobStrength 0.25; Radius 4; @@ -1285,8 +1285,8 @@ Class CandyGunBullets : MagAmmo Inventory.Icon "graphics/HUD/Icons/A_CandyBullet.png"; MagAmmo.ParentAmmo "CandyGunAmmo"; MagAmmo.ClipSize 7; - Inventory.MaxAmount 8; - Inventory.InterHubAmount 8; + Inventory.MaxAmount 10; + Inventory.InterHubAmount 10; +FLOATBOB; FloatBobStrength 0.25; Radius 2; diff --git a/zscript/swwm_danmaku.zsc b/zscript/swwm_danmaku.zsc index 6061c81c1..66e99c9ad 100644 --- a/zscript/swwm_danmaku.zsc +++ b/zscript/swwm_danmaku.zsc @@ -978,7 +978,8 @@ Class Eviscerator : SWWMWeapon invoker.pendingload = true; } A_WeaponReady(flg); - if ( player.cmd.buttons&(BT_ATTACK|BT_ALTATTACK) ) + // avoid the check while still chambering + if ( player.cmd.buttons&(BT_ATTACK|BT_ALTATTACK) && (invoker.loadtics < 20) ) invoker.CheckAmmo(EitherFire,true); } Wait; @@ -995,7 +996,8 @@ Class Eviscerator : SWWMWeapon invoker.pendingload = true; } A_WeaponReady(flg); - if ( player.cmd.buttons&(BT_ATTACK|BT_ALTATTACK) ) + // avoid the check while still chambering + if ( player.cmd.buttons&(BT_ATTACK|BT_ALTATTACK) && (invoker.loadtics < 20) ) invoker.CheckAmmo(EitherFire,true); } Wait; diff --git a/zscript/swwm_tastytreat.zsc b/zscript/swwm_tastytreat.zsc index 70fffa0cd..dd97f0d5d 100644 --- a/zscript/swwm_tastytreat.zsc +++ b/zscript/swwm_tastytreat.zsc @@ -919,6 +919,12 @@ Class CandyGun : SWWMWeapon Console.Printf(StringTable.Localize(SWWMUtility.SellFemaleItem(item)?"$SWWM_SELLEXTRA_FEM":"$SWWM_SELLEXTRA"),Owner.player.GetUserName(),GetTag(),sellprice); item.bPickupGood = true; } + if ( spareget && !ammoget ) + { + // leave the excess mag behind + let m = Spawn(AmmoType1,item.pos); + m.angle = item.angle; + } return true; } return Super.HandlePickup(item);