Beta 2. Changes are as follows:

- Corrected selection order of all weapons.
- Rewrote flaky reloading code. Should be more robust now.
- [flak_m] manually triggered player animations no longer happen while dead.
- Protomag whip damage changed to 15, instead of same damage as Doom fist. This matches the Unreal 0.83 default melee damage.
- Adjusted dual-wielded weapons to try and prevent spin/reload from triggering right when the second gun is brought up.
- Razorclaw no longer stunlocks and can gib.
- Razorclaw damages increased (5/20 → 6/30).
- Dispersion Pistol alt splash damage radius reduced (120 → 80);
- Fixed Dispersion Pistol switching out instead of releasing when out of ammo.
- Dispersion Pistol will only autoselect if it has at least 10 ammo.
- Increased Fireblaster alt projectile damage (50 → 60).
- Fireblaster no longer forces an autoswitch when trying to altfire with less than 30 ammo.
- Increased Autocannon ammo capacity (30/50 → 32/64) and pickup ammo (20 → 32).
- Increased Autocannon hit damage (150 → 300) and explosion radius (50 → 120).
- Adjusted Impaler bolt damage formula (2*amplifiermult**3 → 10*amplifiermult**1.5).
- Impaler bolt seek range now affected by Amplifier.
- Reduced Impaler base explosion radius (120 → 80).
- Impaler altfire drain also affected by Amplifier too.
- Removed the ability to put out fire by moving very fast. This was a dumb idea as it would make fast monsters harder to burn.
- Increased Quadshot per-trace damage to fixed value (Random(4,8) → 11). This matches the 0.83 damage value for it.
- Doubled the damage boost of Razorjack charging.
- Fix Stinger altfire only firing 4 shoots. Was supposed to fire 5 with the first being always accurate.
- Adjusted Stunner damage and charge range so it matches Unreal Bible values (0-6/1-6 → 0-5/1-20).
- Reduced Stunner ammo consumption for a full charge (20 → 10).
- Stunner now also flagged as a "wimpy weapon".
- Reduced Eightball splash damage radius (200/200 → 120/140).
- Dispersion Pistol and Stunner always have at least 1 ammo after each shot.
- Added option to disable Impaler beam self-damage.
This commit is contained in:
Marisa the Magician 2019-09-27 22:26:44 +02:00
commit da224bcfae
26 changed files with 215 additions and 146 deletions

View file

@ -267,21 +267,18 @@ Class ImpalerBolt : Actor
if ( !(GetAge()%5) )
{
UTMainHandler.DoKnockback(t.hitlist[i].hitactor,t.hitlist[i].x,500*specialf1**2);
t.hitlist[i].hitactor.DamageMobj(self,target,int(2*specialf1**3),'Impaler',DMG_THRUSTLESS);
t.hitlist[i].hitactor.DamageMobj(self,target,int(10*specialf1**1.5),'Impaler',DMG_THRUSTLESS);
}
if ( start.Hitlist.Find(t.HitList[i].HitActor) == start.HitList.Size() )
start.Hitlist.Push(t.HitList[i].HitActor);
}
// seeking
double closest = 500;
double closest = 500*specialf1;
if ( tracer )
{
double closest = Distance3D(tracer);
if ( (closest > 500) || (tracer.Health <= 0) )
{
double tdist = Distance3D(tracer);
if ( (tdist > closest) || (tracer.Health <= 0) )
tracer = null;
closest = 500;
}
}
let bt = BlockThingsIterator.Create(self,closest);
while ( bt.Next() )
@ -358,14 +355,14 @@ Class ImpalerBolt : Actor
next.special2 = special2+1;
next.specialf1 = max(1.,specialf1);
next.oldx = dir;
next.bHITOWNER = true;
next.bHITOWNER = !sting_impself;
}
else
{
next.tracer = tracer;
next.special1 = special1+1;
next.specialf1 = max(1.,specialf1);
next.bHITOWNER = true;
next.bHITOWNER = !sting_impself;
next.UpdateBeam(self,t.Results.HitPos+normal,dir);
}
if ( t.Results.HitType != TRACE_HitNone )
@ -373,7 +370,6 @@ Class ImpalerBolt : Actor
if ( !weffect ) weffect = Spawn("ImpalerBoltHit",t.Results.HitPos+normal*4);
weffect.SetOrigin(t.Results.HitPos+normal*4,true);
weffect.sprite = weffect.GetSpriteIndex('IHIT');
}
else if ( weffect ) weffect.Destroy();
return;
@ -547,9 +543,9 @@ Class ImpalerProjectile : Actor
A_AlertMonsters();
A_SetRenderStyle(1.,STYLE_Add);
A_NoGravity();
A_Explode(50+special1/2,120+special1/5);
UTMainHandler.DoBlast(self,120+special1/5,40000);
A_QuakeEx(2,2,2,5,0,250+special1/5,"",QF_RELATIVE|QF_SCALEDOWN,falloff:120+special1/2,rollintensity:0.2);
A_Explode(50+special1/2,80+special1/5);
UTMainHandler.DoBlast(self,80+special1/5,40000);
A_QuakeEx(2,2,2,5,0,150+special1/5,"",QF_RELATIVE|QF_SCALEDOWN,falloff:80+special1/2,rollintensity:0.2);
A_PlaySound("impaler/hit",CHAN_VOICE);
A_SprayDecal("ShockMark",20);
let l = Spawn("ImpalerBurstLight",pos);
@ -734,9 +730,10 @@ Class Impaler : UnrealWeapon
if ( !(invoker.special1%15) )
{
if ( invoker.ClipCount <= 0 ) return;
double mul = Amplifier.GetMult(self,10);
if ( invoker.beam )
invoker.beam.specialf1 = Amplifier.GetMult(self,10);
invoker.clipcount--;
invoker.beam.specialf1 = mul;
invoker.clipcount = max(0,invoker.clipcount-int(mul));
}
invoker.FireEffect();
UTMainHandler.DoFlash(self,Color(16,255,32,255),3);
@ -836,6 +833,8 @@ Class Impaler : UnrealWeapon
override void DoEffect()
{
Super.DoEffect();
if ( (Ammo1.Amount <= 0) && (ClipCount <= 0) ) SelectionOrder = 6600;
else SelectionOrder = default.SelectionOrder;
if ( Owner.player.ReadyWeapon != self ) return;
if ( (Owner.waterlevel > 2) && !(level.maptime%5) )
ClipCount = max(0,ClipCount-1);
@ -853,7 +852,7 @@ Class Impaler : UnrealWeapon
Inventory.PickupMessage "$I_IMPALER";
Weapon.UpSound "impaler/select";
Weapon.SlotNumber 7;
Weapon.SelectionOrder 0;
Weapon.SelectionOrder 700;
Weapon.SlotPriority 0.9;
Weapon.AmmoType "ImpalerAmmo";
Weapon.AmmoUse 1;