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:
parent
efda5e69e5
commit
8061ce28b2
9 changed files with 47 additions and 10 deletions
|
|
@ -73,7 +73,7 @@ This mod requires GZDoom 4.2.3 or later, and runs on top of Doom Tournament.
|
|||
|
||||
## In progress
|
||||
|
||||
- N/A, this is the 1.0.2 release.
|
||||
- N/A, this is the 1.0.3 release.
|
||||
|
||||
## Planned
|
||||
|
||||
|
|
|
|||
|
|
@ -56,6 +56,11 @@ server bool sting_pshield = false; // p.shield absorbs damage instead of
|
|||
// note that this will make it less
|
||||
// useful as an invulnerability
|
||||
// replacement
|
||||
server bool sting_pshield2 = true; // p.shield does not drain over time
|
||||
// when in vanilla mode, this was in
|
||||
// fact a bug that never got fixed, but
|
||||
// everyone is used to it so I made it
|
||||
// toggleable
|
||||
server bool sting_nopstart = false; // players start only with the
|
||||
// dispersion pistol, otherwise they
|
||||
// also get an automag for the sake
|
||||
|
|
|
|||
|
|
@ -242,6 +242,7 @@ STING_PROTODUAL = "Protomags";
|
|||
STING_UOPTS = "Compatibility options";
|
||||
STING_DPISTOL = "Dispersion Pistol altfire isn't upgraded";
|
||||
STING_PSHIELD = "Power Shield works like in Unreal";
|
||||
STING_PSHIELD2 = "Unreal style Power Shield does not drain over time";
|
||||
STING_NOPSTART = "Players don't start up with an Automag";
|
||||
STING_OLSMP = "Enable SMP 7243 from Oldskool Amp'd";
|
||||
STING_MSENTRY = "Enable new Minigun Sentry";
|
||||
|
|
@ -487,6 +488,7 @@ STING_PROTODUAL = "Protoarmas";
|
|||
STING_UOPTS = "Opciones de compatibilidad";
|
||||
STING_DPISTOL = "El fuego alternativo de la Pistola de Dispersión no es mejorado";
|
||||
STING_PSHIELD = "El Escudo de Fuerza funciona como en Unreal";
|
||||
STING_PSHIELD2 = "El Escudo de Fuerza en modo Unreal no se gasta con el tiempo";
|
||||
STING_NOPSTART = "Los jugadores no empiezan la partida con un Automag";
|
||||
STING_OLSMP = "Habilitar SMP 7243 de Oldskool Amp'd";
|
||||
STING_MSENTRY = "Habilitar nueva Torreta";
|
||||
|
|
|
|||
|
|
@ -42,6 +42,7 @@ OptionMenu "UnrealOptionMenu"
|
|||
StaticText "$STING_UOPTS", "Gold"
|
||||
Option "$STING_DPISTOL", "sting_dpistol", "YesNo"
|
||||
Option "$STING_PSHIELD", "sting_pshield", "YesNo"
|
||||
Option "$STING_PSHIELD2", "sting_pshield2", "YesNo", "sting_pshield"
|
||||
Option "$STING_NOPSTART", "sting_nopstart", "YesNo"
|
||||
Option "$STING_OLSMP", "sting_olsmp", "YesNo"
|
||||
Option "$STING_MSENTRY", "sting_msentry", "YesNo"
|
||||
|
|
|
|||
|
|
@ -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) )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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 )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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) )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue