- [flak_m] Implement particle meshes.
- Append heal amount to health pickups (excl. superhealth).
- Armor Bonus item.
- Overhaul Stinger explosive charge behaviour, more in line with 0.83 and the novels.
- Fix: Dispersion Pistol should only have infinite ammo in deathmatch.
- Dispersion Pistol altfire always at level 0 if below 10 ammo.
- More Fireblaster tweaks and touches and whatnot. Now fires in 3 bursts of 3 projectiles. And there's more damage and whatnot, it should stop sucking.
- Capped fire effects for huge actors.
- Reduced flames per tic on Flamethrower, to see if this causes less performance issues. May roll back if this was a bad idea.
- Snuck in some longer versions of a couple player sounds.
- [oldsounds] Added higher quality dispersion pistol select sound.
This commit is contained in:
Marisa the Magician 2019-10-02 17:40:09 +02:00
commit 0cb76eb03a
30 changed files with 270 additions and 117 deletions

View file

@ -503,7 +503,7 @@ Class DispersionPistol : UnrealWeapon
}
else weap.Ammo1.Amount -= invoker.MainUse;
}
DefaultAmmo(weap.Ammo1).rechargephase = ((weap.Ammo1.Amount>0)?0:30);
DefaultAmmo(weap.Ammo1).rechargephase = (((weap.Ammo1.Amount>0)||!deathmatch)?0:30);
switch ( ulevel )
{
case 0:
@ -568,11 +568,12 @@ Class DispersionPistol : UnrealWeapon
invoker.bCharging = false;
if ( self is 'UTPlayer' )
UTPlayer(self).PlayAttacking3();
DefaultAmmo(weap.Ammo1).rechargephase = ((weap.Ammo1.Amount>0)?0:30);
DefaultAmmo(weap.Ammo1).rechargephase = (((weap.Ammo1.Amount>0)||!deathmatch)?0:30);
A_PlaySound("dpistol/altfire",CHAN_WEAPON,Dampener.Active(self)?.4:1.);
double mult = Amplifier.GetMult(self,int(invoker.ChargeSize*50)+50);
invoker.FireEffect();
int ulevel = sting_dpistol?0:invoker.upgradelevel;
if ( weap.Ammo1.Amount < max(10,invoker.MainUse) ) ulevel = 0;
Class<Actor> proj, part;
switch ( ulevel )
{
@ -673,8 +674,10 @@ Class DispersionPistol : UnrealWeapon
if ( invoker.chargesize >= 5. ) return ResolveState(next);
if ( !(sv_infiniteammo || (FindInventory('PowerInfiniteAmmo',true))) )
{
if ( weap.Ammo1.Amount < invoker.ChargeUse ) return ResolveState(next);
weap.Ammo1.Amount -= invoker.ChargeUse;
int use = invoker.ChargeUse;
if ( weap.Ammo1.Amount < max(10,invoker.ChargeUse) ) use = 1;
if ( weap.Ammo1.Amount < use ) return ResolveState(next);
weap.Ammo1.Amount -= use;
}
return ResolveState(null);
}
@ -737,7 +740,7 @@ Class DispersionPistol : UnrealWeapon
{
A_CheckReload();
let weap = Weapon(invoker);
if ( weap && weap.Ammo1.Amount > 0 ) A_WeaponReady();
if ( weap && (weap.Ammo1.Amount > 0) ) A_WeaponReady();
else A_WeaponReady(WRF_NOFIRE);
}
TNT1 A 1
@ -815,6 +818,10 @@ Class DispersionPistol : UnrealWeapon
#### # 0
{
invoker.chargesize = invoker.count = 0.;
let weap = Weapon(invoker);
if ( weap.Ammo1.Amount < max(10,invoker.ChargeUse) )
weap.Ammo1.Amount--;
else weap.Ammo1.Amount -= invoker.ChargeUse;
invoker.bCharging = true;
// need to make sure player does the repeat fire anim
if ( self is 'UPlayer' )