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
|
## In progress
|
||||||
|
|
||||||
- N/A, this is the 1.0.2 release.
|
- N/A, this is the 1.0.3 release.
|
||||||
|
|
||||||
## Planned
|
## Planned
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -56,6 +56,11 @@ server bool sting_pshield = false; // p.shield absorbs damage instead of
|
||||||
// note that this will make it less
|
// note that this will make it less
|
||||||
// useful as an invulnerability
|
// useful as an invulnerability
|
||||||
// replacement
|
// 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
|
server bool sting_nopstart = false; // players start only with the
|
||||||
// dispersion pistol, otherwise they
|
// dispersion pistol, otherwise they
|
||||||
// also get an automag for the sake
|
// also get an automag for the sake
|
||||||
|
|
|
||||||
|
|
@ -242,6 +242,7 @@ STING_PROTODUAL = "Protomags";
|
||||||
STING_UOPTS = "Compatibility options";
|
STING_UOPTS = "Compatibility options";
|
||||||
STING_DPISTOL = "Dispersion Pistol altfire isn't upgraded";
|
STING_DPISTOL = "Dispersion Pistol altfire isn't upgraded";
|
||||||
STING_PSHIELD = "Power Shield works like in Unreal";
|
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_NOPSTART = "Players don't start up with an Automag";
|
||||||
STING_OLSMP = "Enable SMP 7243 from Oldskool Amp'd";
|
STING_OLSMP = "Enable SMP 7243 from Oldskool Amp'd";
|
||||||
STING_MSENTRY = "Enable new Minigun Sentry";
|
STING_MSENTRY = "Enable new Minigun Sentry";
|
||||||
|
|
@ -487,6 +488,7 @@ STING_PROTODUAL = "Protoarmas";
|
||||||
STING_UOPTS = "Opciones de compatibilidad";
|
STING_UOPTS = "Opciones de compatibilidad";
|
||||||
STING_DPISTOL = "El fuego alternativo de la Pistola de Dispersión no es mejorado";
|
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_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_NOPSTART = "Los jugadores no empiezan la partida con un Automag";
|
||||||
STING_OLSMP = "Habilitar SMP 7243 de Oldskool Amp'd";
|
STING_OLSMP = "Habilitar SMP 7243 de Oldskool Amp'd";
|
||||||
STING_MSENTRY = "Habilitar nueva Torreta";
|
STING_MSENTRY = "Habilitar nueva Torreta";
|
||||||
|
|
|
||||||
|
|
@ -42,6 +42,7 @@ OptionMenu "UnrealOptionMenu"
|
||||||
StaticText "$STING_UOPTS", "Gold"
|
StaticText "$STING_UOPTS", "Gold"
|
||||||
Option "$STING_DPISTOL", "sting_dpistol", "YesNo"
|
Option "$STING_DPISTOL", "sting_dpistol", "YesNo"
|
||||||
Option "$STING_PSHIELD", "sting_pshield", "YesNo"
|
Option "$STING_PSHIELD", "sting_pshield", "YesNo"
|
||||||
|
Option "$STING_PSHIELD2", "sting_pshield2", "YesNo", "sting_pshield"
|
||||||
Option "$STING_NOPSTART", "sting_nopstart", "YesNo"
|
Option "$STING_NOPSTART", "sting_nopstart", "YesNo"
|
||||||
Option "$STING_OLSMP", "sting_olsmp", "YesNo"
|
Option "$STING_OLSMP", "sting_olsmp", "YesNo"
|
||||||
Option "$STING_MSENTRY", "sting_msentry", "YesNo"
|
Option "$STING_MSENTRY", "sting_msentry", "YesNo"
|
||||||
|
|
|
||||||
|
|
@ -858,10 +858,15 @@ Class UFlamethrower : UnrealWeapon
|
||||||
}
|
}
|
||||||
action void A_FireFlame()
|
action void A_FireFlame()
|
||||||
{
|
{
|
||||||
|
if ( Health <= 0 )
|
||||||
|
{
|
||||||
|
player.SetPSprite(-9999,ResolveState("Null"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
let weap = Weapon(invoker);
|
let weap = Weapon(invoker);
|
||||||
if ( (weap.Ammo1.Amount <= 0) || !(player.cmd.buttons&BT_ATTACK) )
|
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;
|
return;
|
||||||
}
|
}
|
||||||
invoker.count += 10./TICRATE;
|
invoker.count += 10./TICRATE;
|
||||||
|
|
@ -921,6 +926,12 @@ Class UFlamethrower : UnrealWeapon
|
||||||
}
|
}
|
||||||
action void A_ChargeUp()
|
action void A_ChargeUp()
|
||||||
{
|
{
|
||||||
|
if ( Health <= 0 )
|
||||||
|
{
|
||||||
|
invoker.bCharging = false;
|
||||||
|
player.SetPSprite(-9999,ResolveState("Null"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
let weap = Weapon(invoker);
|
let weap = Weapon(invoker);
|
||||||
if ( (invoker.chargesize < 4.9) && (weap.Ammo1.Amount > 0) )
|
if ( (invoker.chargesize < 4.9) && (weap.Ammo1.Amount > 0) )
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -209,6 +209,7 @@ Class PowerShield : UnrealArmor
|
||||||
override void Tick()
|
override void Tick()
|
||||||
{
|
{
|
||||||
Super.Tick();
|
Super.Tick();
|
||||||
|
if ( sting_pshield && sting_pshield2 ) return;
|
||||||
if ( !Owner || !Owner.player || (amount <= 0) ) return;
|
if ( !Owner || !Owner.player || (amount <= 0) ) return;
|
||||||
if ( gothit )
|
if ( gothit )
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -640,6 +640,12 @@ Class UBioRifle : UnrealWeapon
|
||||||
}
|
}
|
||||||
action void A_ChargeUp()
|
action void A_ChargeUp()
|
||||||
{
|
{
|
||||||
|
if ( Health <= 0 )
|
||||||
|
{
|
||||||
|
invoker.bCharging = false;
|
||||||
|
player.SetPSprite(-9999,ResolveState("Null"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
let weap = Weapon(invoker);
|
let weap = Weapon(invoker);
|
||||||
if ( (invoker.chargesize < 4.9) && (weap.Ammo1.Amount > 0) )
|
if ( (invoker.chargesize < 4.9) && (weap.Ammo1.Amount > 0) )
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -143,6 +143,7 @@ Class UMinigun : UnrealWeapon
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
weap.bAltFire = !!(player.cmd.buttons&BT_ALTATTACK);
|
weap.bAltFire = !!(player.cmd.buttons&BT_ALTATTACK);
|
||||||
|
invoker.bcnt = 5;
|
||||||
A_Refire("Hold");
|
A_Refire("Hold");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -183,11 +184,12 @@ Class UMinigun : UnrealWeapon
|
||||||
FireDummy:
|
FireDummy:
|
||||||
TNT1 A 1
|
TNT1 A 1
|
||||||
{
|
{
|
||||||
|
if ( Health <= 0 ) return ResolveState("Null");
|
||||||
let weap = Weapon(invoker);
|
let weap = Weapon(invoker);
|
||||||
if ( !(player.cmd.buttons&(BT_ATTACK|BT_ALTATTACK)) || (weap.Ammo1.Amount <= 0) )
|
if ( !(player.cmd.buttons&(BT_ATTACK|BT_ALTATTACK)) || (weap.Ammo1.Amount <= 0) )
|
||||||
{
|
{
|
||||||
A_StopSound(CHAN_WEAPON);
|
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");
|
||||||
}
|
}
|
||||||
return ResolveState(null);
|
return ResolveState(null);
|
||||||
|
|
@ -197,7 +199,11 @@ Class UMinigun : UnrealWeapon
|
||||||
AltFire:
|
AltFire:
|
||||||
MGNW A 0 A_PlaySound("umini/wind",CHAN_WEAPON,Dampener.Active(self)?.1:1.);
|
MGNW A 0 A_PlaySound("umini/wind",CHAN_WEAPON,Dampener.Active(self)?.1:1.);
|
||||||
MGNW ABCDEFGHIJKLMNO 1;
|
MGNW ABCDEFGHIJKLMNO 1;
|
||||||
MGNW O 0 A_Refire(1);
|
MGNW O 0
|
||||||
|
{
|
||||||
|
invoker.bcnt = 5;
|
||||||
|
A_Refire(1);
|
||||||
|
}
|
||||||
Goto Release;
|
Goto Release;
|
||||||
Hold:
|
Hold:
|
||||||
MGNF A 0
|
MGNF A 0
|
||||||
|
|
|
||||||
|
|
@ -291,26 +291,31 @@ Class UTranslocator : UnrealWeapon
|
||||||
TLCT ABCDEFGHI 5;
|
TLCT ABCDEFGHI 5;
|
||||||
Goto Idle+1;
|
Goto Idle+1;
|
||||||
Fire:
|
Fire:
|
||||||
TLCF A 0 A_Overlay(-9999,"Null");
|
#### # 0 A_Overlay(-9999,"Null");
|
||||||
TLCF A 0 A_JumpIf(invoker.module,"Recall");
|
#### # 0 A_JumpIf(invoker.module,"Recall");
|
||||||
|
#### # 2;
|
||||||
TLCF ABCDEF 2;
|
TLCF ABCDEF 2;
|
||||||
TLCF G 0 A_ThrowModule();
|
TLCF G 0 A_ThrowModule();
|
||||||
TLCF GHIJKLMNOPQRSTUVWXY 2;
|
TLCF GHIJKLMNOPQRSTUV 2;
|
||||||
|
TLCF WXY 2 A_WeaponReady();
|
||||||
Goto Idle;
|
Goto Idle;
|
||||||
Recall:
|
Recall:
|
||||||
|
#### # 2;
|
||||||
TLCR ABCDEF 2;
|
TLCR ABCDEF 2;
|
||||||
TLCR G 0 A_ReturnModule();
|
TLCR G 0 A_ReturnModule();
|
||||||
TLCR GHIJKLM 2;
|
TLCR GHIJKLM 2;
|
||||||
Goto Idle;
|
Goto Idle;
|
||||||
AltFire:
|
AltFire:
|
||||||
TLCA A 0 A_Overlay(-9999,"Null");
|
#### # 0 A_Overlay(-9999,"Null");
|
||||||
TLCA A 0 A_JumpIf(!invoker.module,"Reload");
|
#### # 0 A_JumpIf(!invoker.module,"Reload");
|
||||||
|
#### # 2;
|
||||||
TLCA ABCDE 2;
|
TLCA ABCDE 2;
|
||||||
TLCA A 0 A_Translocate();
|
TLCA A 0 A_Translocate();
|
||||||
TLCA FGHIJKL 2;
|
TLCA FGHIJKL 2;
|
||||||
Goto Idle;
|
Goto Idle;
|
||||||
Reload:
|
Reload:
|
||||||
TLCB A 0 A_Overlay(-9999,"Null");
|
#### # 0 A_Overlay(-9999,"Null");
|
||||||
|
#### # 2;
|
||||||
TLCB ABCDEFGHIJKLMNOPQRSTUVWXYZ[\] 2;
|
TLCB ABCDEFGHIJKLMNOPQRSTUVWXYZ[\] 2;
|
||||||
TLB2 AB 2;
|
TLB2 AB 2;
|
||||||
Goto Idle;
|
Goto Idle;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue