Fix up how inventory use sounds are played, so they don't get loudened anymore.
Fix up how auto-healing works, so now if you have 5 refreshers you actually can survive 2500 damage, as one would expect.
This commit is contained in:
parent
58601c1678
commit
e5883dac2f
4 changed files with 28 additions and 20 deletions
|
|
@ -842,7 +842,7 @@ Class AmmoFabricator : Inventory abstract
|
|||
if ( pickup && !shouldautouse ) return false;
|
||||
if ( FabricateAmmo() )
|
||||
{
|
||||
Owner.A_StartSound(UseSound,CHAN_ITEMEXTRA);
|
||||
if ( pickup && ((Owner.player == players[consoleplayer]) || bBigPowerup) ) Owner.A_StartSound(UseSound,CHAN_ITEMEXTRA);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -110,8 +110,8 @@ Class SWWMSpareArmor : Inventory abstract
|
|||
let cur = Owner.FindInventory(giveme);
|
||||
if ( !cur || (!pickup && (cur.Amount < cur.MaxAmount)) || (GetDefaultByType(giveme).Amount+cur.Amount <= cur.MaxAmount) )
|
||||
{
|
||||
if ( pickup && ((Owner.player == players[consoleplayer]) || bBigPowerup) ) Owner.A_StartSound(UseSound,CHAN_ITEMEXTRA);
|
||||
Owner.GiveInventory(giveme,GetDefaultByType(giveme).Amount);
|
||||
if ( UseSound ) Owner.A_StartSound(UseSound,CHAN_ITEMEXTRA,CHANF_DEFAULT,.6);
|
||||
SWWMHandler.DoFlash(Owner,Color(48,96,255,64),5);
|
||||
return true;
|
||||
}
|
||||
|
|
@ -148,7 +148,7 @@ Class SWWMHealth : Inventory abstract
|
|||
else shouldautouse = CVar.GetCVar('swwm_autousehealth',Owner.player).GetBool();
|
||||
if ( pickup && !shouldautouse ) return false;
|
||||
if ( Owner.Health >= GetDefaultByType(giveme).MaxAmount ) return false;
|
||||
if ( UseSound ) Owner.A_StartSound(UseSound,CHAN_ITEMEXTRA,CHANF_DEFAULT,.6);
|
||||
if ( pickup && ((Owner.player == players[consoleplayer]) || bBigPowerup) ) Owner.A_StartSound(UseSound,CHAN_ITEMEXTRA);
|
||||
SWWMHandler.DoFlash(Owner,Color(48,64,128,255),5);
|
||||
Owner.GiveInventory(giveme,GetDefaultByType(giveme).Amount);
|
||||
SWWMScoreObj.Spawn(GetDefaultByType(giveme).Amount,Owner.Vec3Offset(FRandom[ScoreBits](-8,8),FRandom[ScoreBits](-8,8),FRandom[ScoreBits](-8,8)+Owner.Height/2),Font.CR_GREEN);
|
||||
|
|
@ -169,10 +169,11 @@ Class SWWMHealth : Inventory abstract
|
|||
{
|
||||
if ( passive && (Owner.Health-damage <= 0) )
|
||||
{
|
||||
if ( UseSound ) Owner.A_StartSound(UseSound,CHAN_ITEMEXTRA,CHANF_DEFAULT,.6);
|
||||
newdamage = damage;
|
||||
if ( ((Owner.player == players[consoleplayer]) || bBigPowerup) ) Owner.A_StartSound(UseSound,CHAN_ITEMEXTRA);
|
||||
while ( (Amount > 0) && (newdamage > 0) )
|
||||
{
|
||||
newdamage = damage-GetDefaultByType(giveme).Amount;
|
||||
newdamage = newdamage-GetDefaultByType(giveme).Amount;
|
||||
if ( newdamage < 0 ) Owner.GiveBody(-newdamage,GetDefaultByType(giveme).MaxAmount);
|
||||
newdamage = max(0,newdamage);
|
||||
AutoUseExtra();
|
||||
|
|
|
|||
|
|
@ -1120,18 +1120,25 @@ Class Demolitionist : PlayerPawn
|
|||
}
|
||||
override bool UseInventory( Inventory item )
|
||||
{
|
||||
if ( !player ) return Super.UseInventory(item);
|
||||
bool res = Super.UseInventory(item);
|
||||
if ( CheckLocalView() )
|
||||
let itemtype = item.GetClass();
|
||||
if ( (player.cheats&CF_TOTALLYFROZEN) || isFrozen() ) return false;
|
||||
if ( !Actor.UseInventory(item) )
|
||||
{
|
||||
if ( !res && !(item is 'Weapon') ) A_StartSound("menu/noinvuse",CHAN_ITEM);
|
||||
if ( item is 'PuzzleItem' )
|
||||
if ( player == players[consoleplayer] )
|
||||
{
|
||||
if ( res ) SWWMHandler.AddOneliner("puzzsucc",2,10);
|
||||
else SWWMHandler.AddOneliner("puzzfail",2,20);
|
||||
if ( !(item is 'Weapon') )
|
||||
A_StartSound("menu/noinvuse",CHAN_ITEMEXTRA);
|
||||
if ( item is 'PuzzleItem' )
|
||||
SWWMHandler.AddOneliner("puzzfail",2,20);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return res;
|
||||
// use sounds of big powerups are heard by other players
|
||||
if ( (player == players[consoleplayer]) || item.bBIGPOWERUP )
|
||||
A_StartSound(item.UseSound,CHAN_ITEMEXTRA);
|
||||
if ( (player == players[consoleplayer]) && (item is 'PuzzleItem') )
|
||||
SWWMHandler.AddOneliner("puzzsucc",2,10);
|
||||
return true;
|
||||
}
|
||||
void A_Footstep( double yofs, bool run = false, double vol = .3 )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -13,7 +13,6 @@ Class GrilledCheeseSandwich : Inventory
|
|||
{
|
||||
SWWMHandler.DoFlash(Owner,Color(64,255,255,64),10);
|
||||
Owner.A_QuakeEx(9,9,9,3,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:1.);
|
||||
Owner.A_StartSound(UseSound,CHAN_ITEMEXTRA);
|
||||
Owner.GiveBody(1000,1000);
|
||||
SWWMScoreObj.Spawn(1000,Owner.Vec3Offset(FRandom[ScoreBits](-8,8),FRandom[ScoreBits](-8,8),FRandom[ScoreBits](-8,8)+Owner.Height/2),Font.CR_GREEN);
|
||||
let n = Owner.FindInventory("ArmorNugget");
|
||||
|
|
@ -33,6 +32,7 @@ Class GrilledCheeseSandwich : Inventory
|
|||
{
|
||||
if ( pickup && !deathmatch ) return false;
|
||||
if ( Owner.Health >= 1000 ) return false;
|
||||
if ( pickup && ((Owner.player == players[consoleplayer]) || bBigPowerup) ) Owner.A_StartSound(UseSound,CHAN_ITEMEXTRA);
|
||||
DoTheThing();
|
||||
return true;
|
||||
}
|
||||
|
|
@ -41,6 +41,7 @@ Class GrilledCheeseSandwich : Inventory
|
|||
if ( passive && (Owner.Health-damage <= 0) && (Amount > 0) )
|
||||
{
|
||||
newdamage = 0;
|
||||
if ( (Owner.player == players[consoleplayer]) || bBigPowerup ) Owner.A_StartSound(UseSound,CHAN_ITEMEXTRA);
|
||||
DoTheThing();
|
||||
Amount--;
|
||||
}
|
||||
|
|
@ -226,7 +227,7 @@ Class GhostArtifact : Inventory
|
|||
override bool Use( bool pickup )
|
||||
{
|
||||
if ( pickup && !deathmatch ) return false;
|
||||
Owner.A_StartSound(UseSound,CHAN_ITEMEXTRA);
|
||||
if ( pickup && ((Owner.player == players[consoleplayer]) || bBigPowerup) ) Owner.A_StartSound(UseSound,CHAN_ITEMEXTRA);
|
||||
let g = GhostPower(Owner.FindInventory("GhostPower"));
|
||||
if ( g ) g.EffectTics = g.default.EffectTics;
|
||||
else Owner.GiveInventory("GhostPower",1);
|
||||
|
|
@ -351,7 +352,7 @@ Class GravitySuppressor : Inventory
|
|||
override bool Use( bool pickup )
|
||||
{
|
||||
if ( pickup && !deathmatch ) return false;
|
||||
Owner.A_StartSound(UseSound,CHAN_ITEMEXTRA);
|
||||
if ( pickup && ((Owner.player == players[consoleplayer]) || bBigPowerup) ) Owner.A_StartSound(UseSound,CHAN_ITEMEXTRA);
|
||||
let g = GravityPower(Owner.FindInventory("GravityPower"));
|
||||
if ( g ) g.EffectTics = g.default.EffectTics;
|
||||
else Owner.GiveInventory("GravityPower",1);
|
||||
|
|
@ -539,7 +540,7 @@ Class FuckingInvinciball : Inventory
|
|||
override bool Use( bool pickup )
|
||||
{
|
||||
if ( pickup && !deathmatch ) return false;
|
||||
Owner.A_StartSound(UseSound,CHAN_ITEMEXTRA);
|
||||
if ( pickup && ((Owner.player == players[consoleplayer]) || bBigPowerup) ) Owner.A_StartSound(UseSound,CHAN_ITEMEXTRA);
|
||||
Owner.A_StartSound("misc/sundowner",CHAN_POWERUPEXTRA);
|
||||
let i = InvinciballPower(Owner.FindInventory("InvinciballPower"));
|
||||
if ( i )
|
||||
|
|
@ -745,7 +746,7 @@ Class Ragekit : Inventory
|
|||
override bool Use( bool pickup )
|
||||
{
|
||||
if ( pickup && !deathmatch ) return false;
|
||||
Owner.A_StartSound(UseSound,CHAN_ITEMEXTRA);
|
||||
if ( pickup && ((Owner.player == players[consoleplayer]) || bBigPowerup) ) Owner.A_StartSound(UseSound,CHAN_ITEMEXTRA);
|
||||
let r = RagekitPower(Owner.FindInventory("RagekitPower"));
|
||||
if ( r )
|
||||
{
|
||||
|
|
@ -798,7 +799,7 @@ Class Omnisight : Inventory
|
|||
{
|
||||
if ( !level.allmap )
|
||||
{
|
||||
Owner.A_StartSound(UseSound,CHAN_ITEMEXTRA);
|
||||
Owner.A_StartSound("powerup/omnisight",CHAN_ITEMEXTRA);
|
||||
level.allmap = true;
|
||||
}
|
||||
// not used up, must be kept for the targetting features to work
|
||||
|
|
@ -807,7 +808,6 @@ Class Omnisight : Inventory
|
|||
Default
|
||||
{
|
||||
Tag "$T_OMNISIGHT";
|
||||
Inventory.UseSound "powerup/omnisight";
|
||||
Inventory.PickupSound "misc/p_pkup";
|
||||
Inventory.PickupMessage "$I_OMNISIGHT";
|
||||
Inventory.MaxAmount 1;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue