1.0.3 release:

- Add option for vanilla style Power Shield to not drain over time (defaults to true).
 - Fix various weapons being able to fire after player dies while charging (Biorifle, Flamethrower).
 - Fix Minigun not firing bullets immediately at start of fire loop or on refire.
 - Fix Minigun playing unwind animation on death, this time for real.
 - Added interpolation to some Teleport Capsule states and made refire a bit quicker.
This commit is contained in:
Marisa the Magician 2019-10-29 13:32:11 +01:00
commit 8061ce28b2
9 changed files with 47 additions and 10 deletions

View file

@ -858,10 +858,15 @@ Class UFlamethrower : UnrealWeapon
}
action void A_FireFlame()
{
if ( Health <= 0 )
{
player.SetPSprite(-9999,ResolveState("Null"));
return;
}
let weap = Weapon(invoker);
if ( (weap.Ammo1.Amount <= 0) || !(player.cmd.buttons&BT_ATTACK) )
{
player.SetPSPrite(PSP_WEAPON,invoker.FindState("Release"));
player.SetPSprite(PSP_WEAPON,invoker.FindState("Release"));
return;
}
invoker.count += 10./TICRATE;
@ -921,6 +926,12 @@ Class UFlamethrower : UnrealWeapon
}
action void A_ChargeUp()
{
if ( Health <= 0 )
{
invoker.bCharging = false;
player.SetPSprite(-9999,ResolveState("Null"));
return;
}
let weap = Weapon(invoker);
if ( (invoker.chargesize < 4.9) && (weap.Ammo1.Amount > 0) )
{

View file

@ -209,6 +209,7 @@ Class PowerShield : UnrealArmor
override void Tick()
{
Super.Tick();
if ( sting_pshield && sting_pshield2 ) return;
if ( !Owner || !Owner.player || (amount <= 0) ) return;
if ( gothit )
{

View file

@ -640,6 +640,12 @@ Class UBioRifle : UnrealWeapon
}
action void A_ChargeUp()
{
if ( Health <= 0 )
{
invoker.bCharging = false;
player.SetPSprite(-9999,ResolveState("Null"));
return;
}
let weap = Weapon(invoker);
if ( (invoker.chargesize < 4.9) && (weap.Ammo1.Amount > 0) )
{

View file

@ -143,6 +143,7 @@ Class UMinigun : UnrealWeapon
return;
}
weap.bAltFire = !!(player.cmd.buttons&BT_ALTATTACK);
invoker.bcnt = 5;
A_Refire("Hold");
}
@ -183,11 +184,12 @@ Class UMinigun : UnrealWeapon
FireDummy:
TNT1 A 1
{
if ( Health <= 0 ) return ResolveState("Null");
let weap = Weapon(invoker);
if ( !(player.cmd.buttons&(BT_ATTACK|BT_ALTATTACK)) || (weap.Ammo1.Amount <= 0) )
{
A_StopSound(CHAN_WEAPON);
if ( Health > 0 ) player.SetPSprite(PSP_WEAPON,invoker.FindState("Release"));
player.SetPSprite(PSP_WEAPON,invoker.FindState("Release"));
return ResolveState("Null");
}
return ResolveState(null);
@ -197,7 +199,11 @@ Class UMinigun : UnrealWeapon
AltFire:
MGNW A 0 A_PlaySound("umini/wind",CHAN_WEAPON,Dampener.Active(self)?.1:1.);
MGNW ABCDEFGHIJKLMNO 1;
MGNW O 0 A_Refire(1);
MGNW O 0
{
invoker.bcnt = 5;
A_Refire(1);
}
Goto Release;
Hold:
MGNF A 0

View file

@ -291,26 +291,31 @@ Class UTranslocator : UnrealWeapon
TLCT ABCDEFGHI 5;
Goto Idle+1;
Fire:
TLCF A 0 A_Overlay(-9999,"Null");
TLCF A 0 A_JumpIf(invoker.module,"Recall");
#### # 0 A_Overlay(-9999,"Null");
#### # 0 A_JumpIf(invoker.module,"Recall");
#### # 2;
TLCF ABCDEF 2;
TLCF G 0 A_ThrowModule();
TLCF GHIJKLMNOPQRSTUVWXY 2;
TLCF GHIJKLMNOPQRSTUV 2;
TLCF WXY 2 A_WeaponReady();
Goto Idle;
Recall:
#### # 2;
TLCR ABCDEF 2;
TLCR G 0 A_ReturnModule();
TLCR GHIJKLM 2;
Goto Idle;
AltFire:
TLCA A 0 A_Overlay(-9999,"Null");
TLCA A 0 A_JumpIf(!invoker.module,"Reload");
#### # 0 A_Overlay(-9999,"Null");
#### # 0 A_JumpIf(!invoker.module,"Reload");
#### # 2;
TLCA ABCDE 2;
TLCA A 0 A_Translocate();
TLCA FGHIJKL 2;
Goto Idle;
Reload:
TLCB A 0 A_Overlay(-9999,"Null");
#### # 0 A_Overlay(-9999,"Null");
#### # 2;
TLCB ABCDEFGHIJKLMNOPQRSTUVWXYZ[\] 2;
TLB2 AB 2;
Goto Idle;