Rebalanced splash damages. Restored vanilla UT damage radii.

Corrected Ripper alt projectile damage. They actually do deal both direct hit and splash damage.
Made UDamage and Enhanced Shock Rifle last longer outside of deathmatch.
This commit is contained in:
Marisa the Magician 2018-08-18 00:02:23 +02:00
commit ac71b65cae
7 changed files with 36 additions and 22 deletions

View file

@ -411,8 +411,8 @@ Class BioGel : Actor
s.args[3] = int(s.args[3]*Scale.x);
invoker.deadtimer = -2;
if ( invoker.atline ) invoker.atline.RemoteActivate(target,invoker.atside,SPAC_Impact,pos);
UTMainHandler.DoBlast(self,Min(150,int(Scale.x*25)),20000*Scale.x);
A_Explode(int(Random[GES](18,22)*max(1,(Scale.x-1)**2)),Min(150,int(Scale.x*25)));
UTMainHandler.DoBlast(self,Min(250,int(Scale.x*75)),20000*Scale.x);
A_Explode(int(Random[GES](18,26)*Scale.x),Min(250,int(Scale.x*75)));
A_PlaySound("ges/explode",CHAN_VOICE);
int numpt = Min(300,int(Scale.x*30))+Random[GES](-10,10);
for ( int i=0; i<numpt; i++ )

View file

@ -123,16 +123,16 @@ Class UTRocket : Actor
l.target = self;
A_PlaySound("utrl/fly",CHAN_VOICE,1.0,true,2.5);
}
action void A_RocketExplode( int dmg )
action void A_RocketExplode( int dmg, int rad )
{
bFORCEXYBILLBOARD = true;
A_SetRenderStyle(1.0,STYLE_Add);
A_SprayDecal("RocketBlast",150);
A_NoGravity();
A_SetScale(0.75);
UTMainHandler.DoBlast(self,100,80000);
A_Explode(dmg,100);
A_QuakeEx(3,3,3,8,0,250,"",QF_RELATIVE|QF_SCALEDOWN,falloff:100,rollIntensity:0.2);
UTMainHandler.DoBlast(self,rad,80000);
A_Explode(dmg,rad);
A_QuakeEx(3,3,3,8,0,rad+50,"",QF_RELATIVE|QF_SCALEDOWN,falloff:rad,rollIntensity:0.2);
A_PlaySound("utrl/explode",CHAN_VOICE);
A_AlertMonsters();
Spawn("RocketExplLight",pos);
@ -179,7 +179,7 @@ Class UTRocket : Actor
}
Wait;
Death:
TNT1 A 0 A_RocketExplode(Random[Eightball](90,115));
TNT1 A 0 A_RocketExplode(Random[Eightball](90,120),220);
SSMX ABCDEFGHIJ 2 Bright;
Stop;
}
@ -232,7 +232,7 @@ Class UTGrenade : UTRocket
}
Goto Spawn;
Death:
TNT1 A 0 A_RocketExplode(Random[Eightball](90,120));
TNT1 A 0 A_RocketExplode(Random[Eightball](100,150),200);
Goto Super::Death+1;
}
}

View file

@ -385,9 +385,9 @@ Class FlakSlug : Actor
A_SprayDecal("RocketBlast",150);
A_NoGravity();
A_SetScale(1.2);
UTMainHandler.DoBlast(self,80,75000);
A_Explode(Random[Flak](70,80),80);
A_QuakeEx(4,4,4,8,0,200,"",QF_RELATIVE|QF_SCALEDOWN,falloff:80,rollIntensity:0.2);
UTMainHandler.DoBlast(self,150,75000);
A_Explode(Random[Flak](70,80),150);
A_QuakeEx(4,4,4,8,0,250,"",QF_RELATIVE|QF_SCALEDOWN,falloff:150,rollIntensity:0.2);
A_PlaySound("flak/explode",CHAN_VOICE);
A_AlertMonsters();
if ( !Tracer ) Spawn("SlugSmoke",pos);

View file

@ -58,6 +58,7 @@ Class DamageAmplifier : Powerup
l = Spawn("DamageAmpLight",Owner.pos);
l.target = Owner;
l.master = self;
if ( deathmatch ) EffectTics /= 2;
}
override void DoEffect()

View file

@ -185,8 +185,6 @@ Class Razor2Alt : Razor2
{
Default
{
DamageFunction 0;
DamageType 'RipperAltDealth';
BounceType "None";
-CANBOUNCEWATER;
+EXPLODEONWATER;
@ -204,7 +202,7 @@ Class Razor2Alt : Razor2
A_AlertMonsters();
A_SprayDecal("RazorBlast",20);
UTMainHandler.DoBlast(self,120,87000);
A_Explode(Random[Ripper](30,50),120);
A_Explode(Random[Ripper](30,50),180,damagetype:'RipperAltDeath');
A_QuakeEx(3,3,3,10,0,180,"",QF_RELATIVE|QF_SCALEDOWN,falloff:120,rollIntensity:0.1);
int numpt = Random[Ripper](10,20);
Vector3 x = (cos(angle)*cos(pitch),sin(angle)*cos(pitch),-sin(pitch));

View file

@ -336,10 +336,10 @@ Class ShockBeam : Actor
{
if ( target ) target.TakeInventory('ShockAmmo',2);
let b = t.Results.HitActor.target;
UTMainHandler.DoBlast(b,300,70000);
UTMainHandler.DoBlast(b,250,70000);
b.ExplodeMissile(null,self);
b.A_Explode(Random[ASMD](150,160),300);
b.A_QuakeEx(6,6,6,60,0,1200,"",QF_RELATIVE|QF_SCALEDOWN,falloff:300,rollIntensity:0.2);
b.A_Explode(Random[ASMD](150,180),250);
b.A_QuakeEx(6,6,6,60,0,1200,"",QF_RELATIVE|QF_SCALEDOWN,falloff:250,rollIntensity:0.2);
b.A_SprayDecal("BigShockMark1",100);
b.A_SprayDecal("BigShockMark2",100);
Spawn("ShockRifleWave",b.pos);
@ -829,7 +829,7 @@ Class ShockBall : Actor
action void A_BallExplode()
{
UTMainHandler.DoBlast(self,70,70000);
A_Explode(Random[ASMD](40,50),70);
A_Explode(Random[ASMD](50,60),70);
A_SprayDecal("ShockMarkBig",16);
Spawn("ShockExplLight",pos);
A_SetScale(1.0);
@ -1115,6 +1115,15 @@ Class EnhancedShockAmmo : Ammo
{
int ticcnt;
override void PostBeginPlay()
{
Super.PostBeginPlay();
if ( deathmatch )
{
MaxAmount /= 2;
BackpackMaxAmount /= 2;
}
}
override void Tick()
{
Super.Tick();
@ -1129,9 +1138,9 @@ Class EnhancedShockAmmo : Ammo
Tag "Enhanced Shock Core";
Inventory.PickupMessage "You picked up an Enhanced Shock Core.";
Inventory.Amount 5;
Inventory.MaxAmount 25;
Inventory.MaxAmount 50;
Ammo.BackpackAmount 0;
Ammo.BackpackMaxAmount 25;
Ammo.BackpackMaxAmount 50;
Ammo.DropAmount 2;
}
States
@ -1155,6 +1164,11 @@ Class ViewSuperShockSpark : ViewShockSpark
Class EnhancedShockRifle : UTWeapon replaces InvulnerabilitySphere
{
override void PostBeginPlay()
{
Super.PostBeginPlay();
if ( deathmatch ) AmmoGive1 /= 2;
}
action void A_SShockFire()
{
Weapon weap = Weapon(invoker);
@ -1247,7 +1261,7 @@ Class EnhancedShockRifle : UTWeapon replaces InvulnerabilitySphere
Weapon.AmmoUse 1;
Weapon.AmmoType2 "EnhancedShockAmmo";
Weapon.AmmoUse2 1;
Weapon.AmmoGive 25;
Weapon.AmmoGive 50;
UTWeapon.DropAmmo 5;
+WEAPON.AMMO_OPTIONAL;
+WEAPON.ALT_AMMO_OPTIONAL;