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

@ -81,21 +81,22 @@ Class QuadshotTracer : LineTracer
Class QuadShot : UnrealWeapon
{
int ClipCount;
int ClipCount, HeldShells;
bool ClipOut;
QuadshotTracer t;
property ClipCount : ClipCount;
override int, int, bool, bool GetClipAmount()
{
return ClipCount, -1, (ClipCount<2), false;
return ClipOut?-1:ClipCount, -1, (ClipCount<2), false;
}
action void ProcessTraceHit( Linetracer t )
{
if ( t.Results.HitType == TRACE_HitActor )
{
int dmg = Random[Quadshot](4,8);
int dmg = 11;
FlakAccumulator.Accumulate(t.Results.HitActor,dmg,invoker,self,'shot');
double mm = 2400;
UTMainHandler.DoKnockback(t.Results.HitActor,t.Results.HitVector+(0,0,0.025),mm*FRandom[Quadshot](0.4,1.2));
@ -257,7 +258,7 @@ Class QuadShot : UnrealWeapon
Inventory.PickupMessage "$I_QUADSHOT";
Weapon.UpSound "quadshot/select";
Weapon.SlotNumber 3;
Weapon.SelectionOrder 2;
Weapon.SelectionOrder 1400;
Weapon.SlotPriority 0.9;
Weapon.AmmoType "UShells";
Weapon.AmmoUse 1;
@ -279,6 +280,12 @@ Class QuadShot : UnrealWeapon
QUAS A 1 A_Raise(int.max);
Wait;
Ready:
QUAS A 0
{
invoker.clipout = false;
invoker.clipcount += invoker.heldshells;
invoker.heldshells = 0;
}
QUAS ABCDEFGHIJK 2 A_WeaponReady(WRF_NOFIRE);
Goto Idle;
Dummy:
@ -288,7 +295,7 @@ Class QuadShot : UnrealWeapon
if ( !A_QuadshotCheckForReload() )
{
let weap = Weapon(invoker);
if ( invoker.clipcount < min(weap.Ammo1.Amount,invoker.default.clipcount) )
if ( (invoker.clipcount < invoker.default.clipcount) && (invoker.Ammo1.Amount > 0) )
A_WeaponReady(WRF_ALLOWRELOAD);
else A_WeaponReady();
}
@ -359,25 +366,25 @@ Class QuadShot : UnrealWeapon
QUAR LMNOPQRSTU 1;
QUAR V 0
{
invoker.clipout = true;
A_DropShells();
let weap = Weapon(invoker);
invoker.special1 = min(weap.Ammo1.Amount,invoker.default.clipcount);
invoker.special2 = invoker.special1-invoker.clipcount;
invoker.clipcount = -1;
}
QUAR VWXYZ[\] 1;
QUR2 ABCDEFGHIJKLMNOPQR 1;
QUR2 S 0
{
invoker.clipout = false;
invoker.heldshells = invoker.clipcount;
invoker.clipcount = 0;
A_PlaySound("quadshot/load",CHAN_6,Dampener.Active(self)?.1:1.);
let weap = Weapon(invoker);
invoker.clipcount = 0;
if ( invoker.special1 > 0 )
for ( int i=0; i<2; i++ )
{
weap.Ammo1.Amount -= min(2,invoker.special2);
invoker.clipcount += min(2,invoker.special1);
invoker.special1 = max(0,invoker.special1-2);
invoker.special2 = max(0,invoker.special2-2);
if ( (invoker.clipcount >= 4) || (invoker.heldshells+weap.Ammo1.Amount <= 0) ) continue;
invoker.clipcount++;
if ( invoker.heldshells > 0 ) invoker.heldshells--;
else weap.Ammo1.Amount--;
}
if ( self is 'UTPlayer' )
UTPlayer(self).PlayReloading();
@ -388,12 +395,12 @@ Class QuadShot : UnrealWeapon
{
A_PlaySound("quadshot/load",CHAN_6,Dampener.Active(self)?.1:1.);
let weap = Weapon(invoker);
if ( invoker.special1 > 0 )
for ( int i=0; i<2; i++ )
{
weap.Ammo1.Amount -= min(2,invoker.special2);
invoker.clipcount += min(2,invoker.special1);
invoker.special1 = max(0,invoker.special1-2);
invoker.special2 = max(0,invoker.special2-2);
if ( (invoker.clipcount >= 4) || (invoker.heldshells+weap.Ammo1.Amount <= 0) ) continue;
invoker.clipcount++;
if ( invoker.heldshells > 0 ) invoker.heldshells--;
else weap.Ammo1.Amount--;
}
if ( self is 'UTPlayer' )
UTPlayer(self).PlayReloading();