1.0.4:
- Very noticeable changes to the Automag and Protomag firing speeds. This is going to make dual wielding even more OP than it already was. Just so you know, dual wielding is NOT "canon" here, and if it breaks balance I really can't do much about it. - Automag and Protomag now start firing as soon as the trigger is held. - Protomag damage reduced back to 10 now that it has a much faster altfire. Believe it or not, the new altfire speed is actually true to the original. - Propagate the AmbientGlow changes from DT.
This commit is contained in:
parent
8061ce28b2
commit
71fc572952
5 changed files with 83 additions and 61 deletions
|
|
@ -218,8 +218,9 @@ no need to reload. An experimental entanglement unit inside the gun's internal
|
|||
mag locates spare ammunition carried by the user and automatically loads it.
|
||||
|
||||
Both of its fire modes work exactly like the Automag, although due to
|
||||
internal differences, it's a bit weaker in terms of speed and damage. However
|
||||
it compensates by being much more accurate, even when rapid firing.
|
||||
internal differences, it's a bit weaker in terms of damage, however it
|
||||
compensates by having pinpoint accuracy on its primary fire (unless dual
|
||||
wielded) and having a much faster alternate fire.
|
||||
|
||||
Pressing the reload button makes use of the gun's weight to beat the crap out
|
||||
of your enemies up close.
|
||||
|
|
|
|||
|
|
@ -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.3 release.
|
||||
- N/A, this is the 1.0.4 release.
|
||||
|
||||
## Planned
|
||||
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
// imitation of the Unreal Engine 1.x ambient glow effect, timing may be off
|
||||
#define PI 3.14159265
|
||||
// imitation of the Unreal Engine 1.x ambient glow effect
|
||||
vec4 ProcessLight( vec4 color )
|
||||
{
|
||||
float glow = (1.0+sin(timer*2*PI))*0.25;
|
||||
float glow = 0.25+0.2*sin(timer*8);
|
||||
return vec4(min(color.rgb+vec3(glow),1.0),color.a);
|
||||
}
|
||||
|
||||
// imitation of the Unreal Engine 1.x bMeshEnviroMap effect, not 1:1 but gets close
|
||||
// with the addition of a mask for blending the environment map with the base texture
|
||||
vec4 ProcessTexel()
|
||||
{
|
||||
vec4 base = getTexel(vTexCoord.st);
|
||||
|
|
|
|||
|
|
@ -195,6 +195,7 @@ Class Automag : UnrealWeapon
|
|||
if ( alt ) origin = level.Vec3Offset(origin,-z*3+ydir*y);
|
||||
else origin = level.Vec3Offset(origin,-z+ydir*y*4);
|
||||
double a = FRandom[Automag](0,360), s = FRandom[Automag](0,alt?invoker.altaccuracy:0.01);
|
||||
if ( invoker.Amount > 1 ) s *= 1.6;
|
||||
[x2, y2, z2] = dt_CoordUtil.GetAxes(BulletSlope(),angle,roll);
|
||||
Vector3 dir = (x2+y2*cos(a)*s+z2*sin(a)*s).unit();
|
||||
FLineTraceData d;
|
||||
|
|
@ -341,6 +342,7 @@ Class Automag : UnrealWeapon
|
|||
Stop;
|
||||
Select:
|
||||
AUTS A 1 A_Raise(int.max);
|
||||
Wait;
|
||||
Ready:
|
||||
AUTS A 0
|
||||
{
|
||||
|
|
@ -403,27 +405,33 @@ Class Automag : UnrealWeapon
|
|||
}
|
||||
Wait;
|
||||
Fire:
|
||||
AUTF A 1 A_Overlay(-9999,null);
|
||||
AUTF A 1
|
||||
{
|
||||
A_Overlay(-9999,null);
|
||||
A_AutomagFire();
|
||||
}
|
||||
AUTF BCD 1;
|
||||
AUTF LM 3;
|
||||
AUTF N 0 A_AutomagRefire(1);
|
||||
Goto Release;
|
||||
Hold:
|
||||
AUTF E 2 A_AutomagFire();
|
||||
AUTF FG 2;
|
||||
AUTF N 1;
|
||||
AUTF E 3 A_AutomagFire();
|
||||
AUTF FG 3;
|
||||
AUTF N 0 A_AutomagRefire(1);
|
||||
Goto Release;
|
||||
AUTF NN 2;
|
||||
AUTF H 2 A_AutomagFire();
|
||||
AUTF IJ 2;
|
||||
AUTF N 1;
|
||||
AUTF H 3 A_AutomagFire();
|
||||
AUTF IJ 3;
|
||||
AUTF N 0 A_AutomagRefire(1);
|
||||
Goto Release;
|
||||
AUTF NN 2;
|
||||
AUTF K 2 A_AutomagFire();
|
||||
AUTF LM 2;
|
||||
AUTF N 0 A_AutomagRefire(1);
|
||||
AUTF N 1;
|
||||
AUTF K 3 A_AutomagFire();
|
||||
AUTF LM 3;
|
||||
AUTF N 0 A_AutomagRefire("Hold");
|
||||
Goto Release;
|
||||
AUTF NN 2;
|
||||
Goto Hold;
|
||||
Release:
|
||||
AUTF NN 2;
|
||||
AUTF N 1;
|
||||
AUTF OPQRST 1;
|
||||
AUTI A 0;
|
||||
Goto Idle;
|
||||
|
|
@ -431,26 +439,29 @@ Class Automag : UnrealWeapon
|
|||
2UTI A 5 A_Overlay(-9998,null);
|
||||
2UTI A 0 A_AutomagRefire(1,true);
|
||||
Goto LeftIdle;
|
||||
2UTF A 1 A_AutomagFire(false,true);
|
||||
2UTF BCD 1;
|
||||
2UTF LM 3;
|
||||
2UTF N 0 A_AutomagRefire(1,true);
|
||||
Goto LeftRelease;
|
||||
LeftHold:
|
||||
2UTF ABCD 1;
|
||||
2UTF E 2 A_AutomagFire(false,true);
|
||||
2UTF FG 2;
|
||||
2UTF N 1;
|
||||
2UTF E 3 A_AutomagFire(false,true);
|
||||
2UTF FG 3;
|
||||
2UTF N 0 A_AutomagRefire(1,true);
|
||||
Goto LeftRelease;
|
||||
2UTF NN 2;
|
||||
2UTF H 2 A_AutomagFire(false,true);
|
||||
2UTF IJ 2;
|
||||
2UTF N 1;
|
||||
2UTF H 3 A_AutomagFire(false,true);
|
||||
2UTF IJ 3;
|
||||
2UTF N 0 A_AutomagRefire(1,true);
|
||||
Goto LeftRelease;
|
||||
2UTF NN 2;
|
||||
2UTF K 2 A_AutomagFire(false,true);
|
||||
2UTF LM 2;
|
||||
2UTF N 0 A_AutomagRefire(1,true);
|
||||
2UTF N 1;
|
||||
2UTF K 3 A_AutomagFire(false,true);
|
||||
2UTF LM 3;
|
||||
2UTF N 0 A_AutomagRefire("LeftHold",true);
|
||||
Goto LeftRelease;
|
||||
2UTF NN 2;
|
||||
Goto LeftHold+4;
|
||||
LeftRelease:
|
||||
2UTF NN 2;
|
||||
2UTF N 1;
|
||||
2UTF OPQRST 1;
|
||||
2UTI A 0;
|
||||
Goto LeftIdle;
|
||||
|
|
@ -466,17 +477,17 @@ Class Automag : UnrealWeapon
|
|||
AUTA LM 2;
|
||||
AUTA T 0 A_AutomagRefire(1);
|
||||
Goto AltRelease;
|
||||
AUTA T 1;
|
||||
AUTA T 2;
|
||||
AUTA N 2 A_AutomagFire(true);
|
||||
AUTA OP 2;
|
||||
AUTA T 0 A_AutomagRefire(1);
|
||||
Goto AltRelease;
|
||||
AUTA T 1;
|
||||
AUTA T 2;
|
||||
AUTA Q 2 A_AutomagFire(true);
|
||||
AUTA RS 2;
|
||||
AUTA T 0 A_AutomagRefire(1);
|
||||
Goto AltRelease;
|
||||
AUTA T 1;
|
||||
AUTA T 2;
|
||||
Goto AltHold;
|
||||
AltRelease:
|
||||
AUTA TUVWXYZ 1;
|
||||
|
|
@ -491,17 +502,17 @@ Class Automag : UnrealWeapon
|
|||
2UTA LM 2;
|
||||
2UTA T 0 A_AutomagRefire(1,true);
|
||||
Goto LeftAltRelease;
|
||||
2UTA T 1;
|
||||
2UTA T 2;
|
||||
2UTA N 2 A_AutomagFire(true,true);
|
||||
2UTA OP 2;
|
||||
2UTA T 0 A_AutomagRefire(1,true);
|
||||
Goto LeftAltRelease;
|
||||
2UTA T 1;
|
||||
2UTA T 2;
|
||||
2UTA Q 2 A_AutomagFire(true,true);
|
||||
2UTA RS 2;
|
||||
2UTA T 0 A_AutomagRefire(1,true);
|
||||
Goto LeftAltRelease;
|
||||
2UTA T 1;
|
||||
2UTA T 2;
|
||||
Goto LeftAltHold+10;
|
||||
LeftAltRelease:
|
||||
2UTA TUVWXYZ 1;
|
||||
|
|
|
|||
|
|
@ -111,7 +111,7 @@ Class Betamag : UnrealWeapon
|
|||
{
|
||||
Weapon weap = Weapon(invoker);
|
||||
if ( !weap || !player ) return;
|
||||
if ( invoker.altaccuracy < 0.05 ) invoker.altaccuracy += 0.01;
|
||||
if ( invoker.altaccuracy < 0.06 ) invoker.altaccuracy += 0.01;
|
||||
if ( slave )
|
||||
{
|
||||
if ( weap.Ammo1.Amount <= 0 )
|
||||
|
|
@ -234,6 +234,7 @@ Class Betamag : UnrealWeapon
|
|||
if ( alt ) origin = level.Vec3Offset(origin,-z*2.5+ydir*y*1.5);
|
||||
else origin = level.Vec3Offset(origin,-z*1.5+ydir*y*2);
|
||||
double a = FRandom[Betamag](0,360), s = FRandom[Betamag](0,alt?invoker.altaccuracy:0.);
|
||||
if ( invoker.Amount > 1 ) s = s*2.+FRandom[Betamag](0,0.01);
|
||||
[x2, y2, z2] = dt_CoordUtil.GetAxes(BulletSlope(),angle,roll);
|
||||
Vector3 dir = (x2+y2*cos(a)*s+z2*sin(a)*s).unit();
|
||||
FLineTraceData d;
|
||||
|
|
@ -241,7 +242,7 @@ Class Betamag : UnrealWeapon
|
|||
UTBulletTrail.DoTrail(self,origin,dir,10000,int((invoker.Amount+alt)**2));
|
||||
if ( d.HitType == TRACE_HitActor )
|
||||
{
|
||||
int dmg = 14;
|
||||
int dmg = 10;
|
||||
dmg = d.HitActor.DamageMobj(invoker,self,dmg,'shot',DMG_USEANGLE|DMG_THRUSTLESS,atan2(d.HitDir.y,d.HitDir.x));
|
||||
double mm = 3000;
|
||||
if ( FRandom[Betamag](0,1) < 0.2 ) mm *= 5;
|
||||
|
|
@ -284,7 +285,7 @@ Class Betamag : UnrealWeapon
|
|||
for ( int i=0; i<3; i++ )
|
||||
{
|
||||
let s = Spawn("UTViewSmoke",origin);
|
||||
if ( alt ) UTViewSmoke(s).ofs = (10,ydir,-3);
|
||||
if ( alt ) UTViewSmoke(s).ofs = (10,1.5*ydir,-3);
|
||||
else UTViewSmoke(s).ofs = (10,4*ydir,-1);
|
||||
s.target = self;
|
||||
s.alpha *= 0.5;
|
||||
|
|
@ -421,63 +422,72 @@ Class Betamag : UnrealWeapon
|
|||
}
|
||||
Wait;
|
||||
Fire:
|
||||
AUTF A 2
|
||||
AUTF A 1
|
||||
{
|
||||
if ( invoker.Ammo1.Amount <= 0 )
|
||||
return ResolveState("Reload");
|
||||
A_BetamagFire();
|
||||
A_Overlay(-9999,null);
|
||||
return A_JumpIfNoAmmo("Reload");
|
||||
return ResolveState(null);
|
||||
}
|
||||
AUTF B 2;
|
||||
Hold:
|
||||
AUTF C 2 A_BetamagFire();
|
||||
AUTF DE 2;
|
||||
AUTF BCD 1;
|
||||
AUTF E 2;
|
||||
AUTF F 0 A_PlaySound("betamag/slide",CHAN_ITEM,!Dampener.Active(self)?.3:.03);
|
||||
AUTF FGHI 2;
|
||||
AUTF J 0 A_BetamagRefire("Hold");
|
||||
AUTF J 2;
|
||||
AUTI A 0;
|
||||
Goto Idle;
|
||||
Hold:
|
||||
AUTF C 2 A_BetamagFire();
|
||||
AUTF D 2;
|
||||
Goto Fire+4;
|
||||
LeftFire:
|
||||
#### # 10 A_Overlay(-9998,null);
|
||||
#### # 9 A_Overlay(-9998,null);
|
||||
2UTI A 0 A_BetamagRefire(1,true);
|
||||
Goto LeftIdle;
|
||||
2UTF AB 1;
|
||||
LeftHold:
|
||||
2UTF C 2 A_BetamagFire(false,true);
|
||||
2UTF DE 2;
|
||||
2UTF A 1 A_BetamagFire(false,true);
|
||||
2UTF BCD 1;
|
||||
2UTF E 2;
|
||||
2UTF F 0 A_PlaySound("betamag/slide",CHAN_7,!Dampener.Active(self)?.3:.03);
|
||||
2UTF FGHI 2;
|
||||
2UTF J 0 A_BetamagRefire("LeftHold",true);
|
||||
2UTF J 2;
|
||||
2UTI A 0;
|
||||
Goto LeftIdle;
|
||||
LeftHold:
|
||||
2UTF C 2 A_BetamagFire(false,true);
|
||||
2UTF D 2;
|
||||
Goto LeftFire+6;
|
||||
AltFire:
|
||||
AUTA A 0
|
||||
{
|
||||
if ( invoker.Ammo1.Amount <= 0 )
|
||||
return ResolveState("Reload");
|
||||
invoker.altaccuracy = 0.08;
|
||||
A_Overlay(-9999,null);
|
||||
return A_JumpIfNoAmmo("Reload");
|
||||
return ResolveState(null);
|
||||
}
|
||||
AUTA ABCDEFG 2;
|
||||
AltHold:
|
||||
AUTA H 2 A_BetamagFire(true);
|
||||
AUTA I 2;
|
||||
AUTA H 1 A_BetamagFire(true);
|
||||
AUTA I 1;
|
||||
AUTA J 0 A_PlaySound("betamag/slide",CHAN_ITEM,!Dampener.Active(self)?.3:.03);
|
||||
AUTA JKLM 2;
|
||||
AUTA JKLM 1;
|
||||
AUTA N 0 A_BetamagRefire("AltHold");
|
||||
AltRelease:
|
||||
AUTA NOPQ 2;
|
||||
AUTI A 2;
|
||||
Goto Idle;
|
||||
LeftAltFire:
|
||||
#### # 6 A_Overlay(-9998,null);
|
||||
#### # 4 A_Overlay(-9998,null);
|
||||
2UTI A 0 A_BetamagRefire(1,true);
|
||||
Goto LeftIdle;
|
||||
2UTA ABCDEFG 2;
|
||||
LeftAltHold:
|
||||
2UTA H 2 A_BetamagFire(true,true);
|
||||
2UTA I 2;
|
||||
2UTA H 1 A_BetamagFire(true,true);
|
||||
2UTA I 1;
|
||||
2UTA J 0 A_PlaySound("betamag/slide",CHAN_7,!Dampener.Active(self)?.3:.03);
|
||||
2UTA JKLM 2;
|
||||
2UTA JKLM 1;
|
||||
2UTA N 0 A_BetamagRefire("LeftAltHold",true);
|
||||
2UTA NOPQ 2;
|
||||
2UTI A 2;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue