Rebalanced things across the board, buffing relatively weak weapons.
Double capacity with backpack for all ammo (except Redeemer, it just gets one extra). Made Enhanced Shock Rifle ammo drain over time (1 unit per second). Uncapped health and armor numbers in the HUD. Fixed Jump Boots not persisting between levels. Increased duration of invisibility. Made translocator toggleable (currently requires manually selecting "apply changes" under the menu option).
This commit is contained in:
parent
bd5561f181
commit
6c096e1b0f
19 changed files with 102 additions and 46 deletions
|
|
@ -18,3 +18,4 @@ user float flak_hudsize = 1.0; // 0.2 <-> 1.0 in steps of 0.2 (default 1.0)
|
||||||
user float flak_weaponsize = 0.8; // 0.2 <-> 1.0 in steps of 0.2 (default 0.8)
|
user float flak_weaponsize = 0.8; // 0.2 <-> 1.0 in steps of 0.2 (default 0.8)
|
||||||
user float flak_statussize = 1.0; // 0.5 <-> 1.5 in steps of 0.1 (default 1.0)
|
user float flak_statussize = 1.0; // 0.5 <-> 1.5 in steps of 0.1 (default 1.0)
|
||||||
user bool flak_footsteps = true;
|
user bool flak_footsteps = true;
|
||||||
|
server bool flak_translocator = false;
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,8 @@ OptionMenu "UTOptionMenu"
|
||||||
Option "Enforcer Reloading", "flak_enforcerreload", "YesNo"
|
Option "Enforcer Reloading", "flak_enforcerreload", "YesNo"
|
||||||
Option "Pulsegun Reloading", "flak_pulsereload", "YesNo"
|
Option "Pulsegun Reloading", "flak_pulsereload", "YesNo"
|
||||||
Option "Redeemer Target Visuals", "flak_redeemerreadout", "YesNo"
|
Option "Redeemer Target Visuals", "flak_redeemerreadout", "YesNo"
|
||||||
|
Option "Enable Translocator", "flak_translocator", "YesNo"
|
||||||
|
Command "Apply Changes", "event refreshtrans"
|
||||||
StaticText " "
|
StaticText " "
|
||||||
StaticText "HUD Options", "Gold"
|
StaticText "HUD Options", "Gold"
|
||||||
Option "Show Weapon Bar", "flak_showweapons", "YesNo"
|
Option "Show Weapon Bar", "flak_showweapons", "YesNo"
|
||||||
|
|
|
||||||
|
|
@ -182,6 +182,7 @@ shock/ball expla02
|
||||||
$pitchshift shock/ball 5
|
$pitchshift shock/ball 5
|
||||||
$pitchshiftrange 0
|
$pitchshiftrange 0
|
||||||
sshock/blast expl2
|
sshock/blast expl2
|
||||||
|
sshock/dryfire aclick2
|
||||||
|
|
||||||
pulse/bolt pulseblt
|
pulse/bolt pulseblt
|
||||||
pulse/down pulsedwn
|
pulse/down pulsedwn
|
||||||
|
|
|
||||||
BIN
sounds/aclick2.ogg
Normal file
BIN
sounds/aclick2.ogg
Normal file
Binary file not shown.
|
|
@ -26,7 +26,7 @@ Class BioAmmo : Ammo
|
||||||
Inventory.Amount 25;
|
Inventory.Amount 25;
|
||||||
Inventory.MaxAmount 100;
|
Inventory.MaxAmount 100;
|
||||||
Ammo.BackpackAmount 50;
|
Ammo.BackpackAmount 50;
|
||||||
Ammo.BackpackMaxAmount 100;
|
Ammo.BackpackMaxAmount 200;
|
||||||
Ammo.DropAmount 10;
|
Ammo.DropAmount 10;
|
||||||
}
|
}
|
||||||
States
|
States
|
||||||
|
|
@ -329,7 +329,7 @@ Class BioGel : Actor
|
||||||
s.args[3] *= Scale.x;
|
s.args[3] *= Scale.x;
|
||||||
invoker.deadtimer = -1;
|
invoker.deadtimer = -1;
|
||||||
if ( invoker.atline ) invoker.atline.RemoteActivate(target,invoker.atside,SPAC_Impact,pos);
|
if ( invoker.atline ) invoker.atline.RemoteActivate(target,invoker.atside,SPAC_Impact,pos);
|
||||||
A_Explode(Random[GES](15,25)*Scale.x,Min(150,Scale.x*25));
|
A_Explode(Random[GES](20,40)*Scale.x,Min(150,Scale.x*25));
|
||||||
A_PlaySound("ges/explode",CHAN_VOICE);
|
A_PlaySound("ges/explode",CHAN_VOICE);
|
||||||
int numpt = Min(300,Scale.x*30)+Random[GES](-10,10);
|
int numpt = Min(300,Scale.x*30)+Random[GES](-10,10);
|
||||||
for ( int i=0; i<numpt; i++ )
|
for ( int i=0; i<numpt; i++ )
|
||||||
|
|
@ -344,7 +344,7 @@ Class BioGel : Actor
|
||||||
{
|
{
|
||||||
Obituary "%o drank a glass of %k's dripping green load.";
|
Obituary "%o drank a glass of %k's dripping green load.";
|
||||||
DamageType 'Slime';
|
DamageType 'Slime';
|
||||||
DamageFunction Random[GES](20,30)*Scale.x;
|
DamageFunction Random[GES](20,40)*Scale.x;
|
||||||
RenderStyle "Add";
|
RenderStyle "Add";
|
||||||
Radius 3;
|
Radius 3;
|
||||||
Height 3;
|
Height 3;
|
||||||
|
|
|
||||||
|
|
@ -67,7 +67,7 @@ Class UTChainsaw : UTWeapon
|
||||||
LineTrace(angle,90,BulletSlope(),TRF_ABSPOSITION,origin.z,origin.x,origin.y,d);
|
LineTrace(angle,90,BulletSlope(),TRF_ABSPOSITION,origin.z,origin.x,origin.y,d);
|
||||||
if ( d.HitType == TRACE_HitActor )
|
if ( d.HitType == TRACE_HitActor )
|
||||||
{
|
{
|
||||||
int dmg = Random[Chainsaw](16,22);
|
int dmg = Random[Chainsaw](20,30);
|
||||||
dmg = d.HitActor.DamageMobj(invoker,self,dmg,'slashed');
|
dmg = d.HitActor.DamageMobj(invoker,self,dmg,'slashed');
|
||||||
d.HitActor.vel -= x*(500/d.HitActor.mass);
|
d.HitActor.vel -= x*(500/d.HitActor.mass);
|
||||||
vel += x*(100/mass);
|
vel += x*(100/mass);
|
||||||
|
|
@ -104,7 +104,7 @@ Class UTChainsaw : UTWeapon
|
||||||
LineTrace(angle,90,BulletSlope(),TRF_ABSPOSITION,origin.z,origin.x,origin.y,d);
|
LineTrace(angle,90,BulletSlope(),TRF_ABSPOSITION,origin.z,origin.x,origin.y,d);
|
||||||
if ( d.HitType == TRACE_HitActor )
|
if ( d.HitType == TRACE_HitActor )
|
||||||
{
|
{
|
||||||
int dmg = Random[Chainsaw](50,55);
|
int dmg = Random[Chainsaw](50,60);
|
||||||
if ( d.HitLocation.z >= (d.HitActor.pos.z+d.HitActor.height*0.8) )
|
if ( d.HitLocation.z >= (d.HitActor.pos.z+d.HitActor.height*0.8) )
|
||||||
dmg = d.HitActor.DamageMobj(invoker,self,dmg*2,'Decapitated');
|
dmg = d.HitActor.DamageMobj(invoker,self,dmg*2,'Decapitated');
|
||||||
else dmg = d.HitActor.DamageMobj(invoker,self,dmg,'slashed');
|
else dmg = d.HitActor.DamageMobj(invoker,self,dmg,'slashed');
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ Class UTRocketAmmo : Ammo
|
||||||
Inventory.Amount 12;
|
Inventory.Amount 12;
|
||||||
Inventory.MaxAmount 48;
|
Inventory.MaxAmount 48;
|
||||||
Ammo.BackpackAmount 12;
|
Ammo.BackpackAmount 12;
|
||||||
Ammo.BackpackMaxAmount 48;
|
Ammo.BackpackMaxAmount 96;
|
||||||
Ammo.DropAmount 3;
|
Ammo.DropAmount 3;
|
||||||
}
|
}
|
||||||
States
|
States
|
||||||
|
|
@ -105,7 +105,7 @@ Class UTRocket : Actor
|
||||||
Default
|
Default
|
||||||
{
|
{
|
||||||
Obituary "%o was smacked down by %k's Rocket Launcher.";
|
Obituary "%o was smacked down by %k's Rocket Launcher.";
|
||||||
DamageFunction Random[Eightball](70,80);
|
DamageFunction Random[Eightball](90,115);
|
||||||
DamageType 'RocketDeath';
|
DamageType 'RocketDeath';
|
||||||
Radius 2;
|
Radius 2;
|
||||||
Height 2;
|
Height 2;
|
||||||
|
|
@ -129,7 +129,7 @@ Class UTRocket : Actor
|
||||||
A_SprayDecal("RocketBlast",150);
|
A_SprayDecal("RocketBlast",150);
|
||||||
A_NoGravity();
|
A_NoGravity();
|
||||||
A_SetScale(0.75);
|
A_SetScale(0.75);
|
||||||
A_Explode(Random[Eightball](60,70),100);
|
A_Explode(Random[Eightball](80,100),100);
|
||||||
A_QuakeEx(3,3,3,8,0,250,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.2);
|
A_QuakeEx(3,3,3,8,0,250,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.2);
|
||||||
A_PlaySound("utrl/explode",CHAN_VOICE);
|
A_PlaySound("utrl/explode",CHAN_VOICE);
|
||||||
A_AlertMonsters();
|
A_AlertMonsters();
|
||||||
|
|
@ -182,7 +182,7 @@ Class UTGrenade : UTRocket
|
||||||
|
|
||||||
Default
|
Default
|
||||||
{
|
{
|
||||||
DamageFunction Random[Eightball](80,90);
|
DamageFunction Random[Eightball](90,120);
|
||||||
DamageType 'GrenadeDeath';
|
DamageType 'GrenadeDeath';
|
||||||
-NOGRAVITY;
|
-NOGRAVITY;
|
||||||
+USEBOUNCESTATE;
|
+USEBOUNCESTATE;
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@ Class FlakAmmo : Ammo
|
||||||
Inventory.Amount 10;
|
Inventory.Amount 10;
|
||||||
Inventory.MaxAmount 50;
|
Inventory.MaxAmount 50;
|
||||||
Ammo.BackpackAmount 20;
|
Ammo.BackpackAmount 20;
|
||||||
Ammo.BackpackMaxAmount 50;
|
Ammo.BackpackMaxAmount 100;
|
||||||
Ammo.DropAmount 5;
|
Ammo.DropAmount 5;
|
||||||
}
|
}
|
||||||
States
|
States
|
||||||
|
|
@ -140,7 +140,7 @@ Class FlakChunk : Actor
|
||||||
Radius 2;
|
Radius 2;
|
||||||
Height 2;
|
Height 2;
|
||||||
Speed 50;
|
Speed 50;
|
||||||
DamageFunction Random[Flak](12,18);
|
DamageFunction Random[Flak](15,25);
|
||||||
DamageType 'Shredded';
|
DamageType 'Shredded';
|
||||||
BounceType "Doom";
|
BounceType "Doom";
|
||||||
BounceFactor 0.8;
|
BounceFactor 0.8;
|
||||||
|
|
@ -359,7 +359,7 @@ Class FlakSlug : Actor
|
||||||
{
|
{
|
||||||
Obituary "%o was ripped to shreds by %k's Flak Cannon.";
|
Obituary "%o was ripped to shreds by %k's Flak Cannon.";
|
||||||
DamageType 'FlakDeath';
|
DamageType 'FlakDeath';
|
||||||
DamageFunction Random[Flak](60,80);
|
DamageFunction Random[Flak](80,90);
|
||||||
Radius 2;
|
Radius 2;
|
||||||
Height 2;
|
Height 2;
|
||||||
Speed 40;
|
Speed 40;
|
||||||
|
|
@ -386,7 +386,7 @@ Class FlakSlug : Actor
|
||||||
A_SprayDecal("RocketBlast",150);
|
A_SprayDecal("RocketBlast",150);
|
||||||
A_NoGravity();
|
A_NoGravity();
|
||||||
A_SetScale(1.2);
|
A_SetScale(1.2);
|
||||||
A_Explode(Random[Flak](40,60),80);
|
A_Explode(Random[Flak](70,80),80);
|
||||||
A_QuakeEx(4,4,4,8,0,200,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.2);
|
A_QuakeEx(4,4,4,8,0,200,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.2);
|
||||||
A_PlaySound("flak/explode",CHAN_VOICE);
|
A_PlaySound("flak/explode",CHAN_VOICE);
|
||||||
A_AlertMonsters();
|
A_AlertMonsters();
|
||||||
|
|
|
||||||
|
|
@ -75,7 +75,7 @@ Class ImpactHammer : UTWeapon replaces Fist
|
||||||
LineTrace(angle,80,BulletSlope(),TRF_ABSPOSITION,origin.z,origin.x,origin.y,d);
|
LineTrace(angle,80,BulletSlope(),TRF_ABSPOSITION,origin.z,origin.x,origin.y,d);
|
||||||
if ( d.HitType == TRACE_HitActor )
|
if ( d.HitType == TRACE_HitActor )
|
||||||
{
|
{
|
||||||
int dmg = Random[Impact](50,60)*realcharge;
|
int dmg = Random[Impact](60,80)*realcharge;
|
||||||
dmg = d.HitActor.DamageMobj(invoker,self,dmg,'impact');
|
dmg = d.HitActor.DamageMobj(invoker,self,dmg,'impact');
|
||||||
d.HitActor.vel = x*(1000/d.HitActor.mass)*realcharge;
|
d.HitActor.vel = x*(1000/d.HitActor.mass)*realcharge;
|
||||||
if ( d.HitActor.bNOBLOOD )
|
if ( d.HitActor.bNOBLOOD )
|
||||||
|
|
@ -137,7 +137,7 @@ Class ImpactHammer : UTWeapon replaces Fist
|
||||||
double dscale = d.Distance/180.;
|
double dscale = d.Distance/180.;
|
||||||
if ( d.HitType == TRACE_HitActor )
|
if ( d.HitType == TRACE_HitActor )
|
||||||
{
|
{
|
||||||
int dmg = Random[Impact](16,20)*dscale;
|
int dmg = Random[Impact](25,35)*dscale;
|
||||||
dmg = d.HitActor.DamageMobj(invoker,self,dmg,'impact');
|
dmg = d.HitActor.DamageMobj(invoker,self,dmg,'impact');
|
||||||
d.HitActor.vel = x*(500/d.HitActor.mass)*dscale;
|
d.HitActor.vel = x*(500/d.HitActor.mass)*dscale;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -31,9 +31,9 @@ Class MiniAmmo : Ammo
|
||||||
Tag "Large Bullets";
|
Tag "Large Bullets";
|
||||||
Inventory.PickupMessage "You picked up 50 bullets.";
|
Inventory.PickupMessage "You picked up 50 bullets.";
|
||||||
Inventory.Amount 50;
|
Inventory.Amount 50;
|
||||||
Inventory.MaxAmount 199;
|
Inventory.MaxAmount 200;
|
||||||
Ammo.BackpackAmount 100;
|
Ammo.BackpackAmount 100;
|
||||||
Ammo.BackpackMaxAmount 199;
|
Ammo.BackpackMaxAmount 400;
|
||||||
Ammo.DropAmount 20;
|
Ammo.DropAmount 20;
|
||||||
}
|
}
|
||||||
States
|
States
|
||||||
|
|
@ -122,7 +122,7 @@ Class Minigun : UTWeapon
|
||||||
LineTrace(atan2(dir.y,dir.x),10000,asin(-dir.z),TRF_ABSPOSITION,origin.z,origin.x,origin.y,d);
|
LineTrace(atan2(dir.y,dir.x),10000,asin(-dir.z),TRF_ABSPOSITION,origin.z,origin.x,origin.y,d);
|
||||||
if ( d.HitType == TRACE_HitActor )
|
if ( d.HitType == TRACE_HitActor )
|
||||||
{
|
{
|
||||||
int dmg = Random[Minigun](9,15); // fun fact: the Minigun is one of the few weapons that has actual RNG damage in UT (and it's exactly this damage)
|
int dmg = Random[Minigun](12,18); // fun fact: the Minigun is one of the few weapons that has actual RNG damage in UT
|
||||||
dmg = d.HitActor.DamageMobj(invoker,self,dmg,'shot');
|
dmg = d.HitActor.DamageMobj(invoker,self,dmg,'shot');
|
||||||
if ( d.HitActor.bNOBLOOD )
|
if ( d.HitActor.bNOBLOOD )
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -196,10 +196,10 @@ Class PowerUTInvisibility : PowerInvisibility
|
||||||
{
|
{
|
||||||
Default
|
Default
|
||||||
{
|
{
|
||||||
Powerup.Duration -50;
|
Powerup.Duration -80;
|
||||||
Powerup.Strength 95;
|
Powerup.Strength 90;
|
||||||
Powerup.Mode "Translucent";
|
Powerup.Mode "Additive";
|
||||||
Powerup.Color "FFFFFF", 0.15;
|
Powerup.Color "FFFFFF", 0.1;
|
||||||
}
|
}
|
||||||
override void EndEffect()
|
override void EndEffect()
|
||||||
{
|
{
|
||||||
|
|
@ -297,6 +297,7 @@ Class UTJumpBoots : Inventory replaces RadSuit
|
||||||
+INVENTORY.ALWAYSPICKUP;
|
+INVENTORY.ALWAYSPICKUP;
|
||||||
Inventory.Amount 3;
|
Inventory.Amount 3;
|
||||||
Inventory.MaxAmount 3;
|
Inventory.MaxAmount 3;
|
||||||
|
Inventory.InterHubAmount 3;
|
||||||
Inventory.PickupMessage "You picked up the AntiGrav boots.";
|
Inventory.PickupMessage "You picked up the AntiGrav boots.";
|
||||||
Inventory.PickupSound "boot/pickup";
|
Inventory.PickupSound "boot/pickup";
|
||||||
Inventory.RespawnTics 1050;
|
Inventory.RespawnTics 1050;
|
||||||
|
|
@ -350,6 +351,7 @@ Class PowerJumpBoots_HighJump : PowerHighJump
|
||||||
{
|
{
|
||||||
Powerup.Strength 3;
|
Powerup.Strength 3;
|
||||||
Powerup.Duration int.max;
|
Powerup.Duration int.max;
|
||||||
|
+INVENTORY.PERSISTENTPOWER;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Class PowerJumpBoots_IronFeet : PowerIronFeet
|
Class PowerJumpBoots_IronFeet : PowerIronFeet
|
||||||
|
|
@ -358,6 +360,7 @@ Class PowerJumpBoots_IronFeet : PowerIronFeet
|
||||||
{
|
{
|
||||||
Powerup.Duration int.max;
|
Powerup.Duration int.max;
|
||||||
Powerup.Color "00 00 00", 0.0;
|
Powerup.Color "00 00 00", 0.0;
|
||||||
|
+INVENTORY.PERSISTENTPOWER;
|
||||||
}
|
}
|
||||||
override void AbsorbDamage( int damage, Name damageType, out int newdamage )
|
override void AbsorbDamage( int damage, Name damageType, out int newdamage )
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -23,9 +23,9 @@ Class PulseAmmo : Ammo
|
||||||
Tag "Pulse Cell";
|
Tag "Pulse Cell";
|
||||||
Inventory.PickupMessage "You picked up a Pulse Cell.";
|
Inventory.PickupMessage "You picked up a Pulse Cell.";
|
||||||
Inventory.Amount 25;
|
Inventory.Amount 25;
|
||||||
Inventory.MaxAmount 199;
|
Inventory.MaxAmount 200;
|
||||||
Ammo.BackpackAmount 50;
|
Ammo.BackpackAmount 50;
|
||||||
Ammo.BackpackMaxAmount 199;
|
Ammo.BackpackMaxAmount 400;
|
||||||
Ammo.DropAmount 10;
|
Ammo.DropAmount 10;
|
||||||
}
|
}
|
||||||
States
|
States
|
||||||
|
|
@ -142,7 +142,7 @@ Class PulseBall : Actor
|
||||||
Obituary "%o ate %k's burning plasma death.";
|
Obituary "%o ate %k's burning plasma death.";
|
||||||
DamageType 'Pulsed';
|
DamageType 'Pulsed';
|
||||||
RenderStyle "Add";
|
RenderStyle "Add";
|
||||||
DamageFunction Random[Pulse](15,25);
|
DamageFunction Random[Pulse](20,30);
|
||||||
PROJECTILE;
|
PROJECTILE;
|
||||||
+EXPLODEONWATER;
|
+EXPLODEONWATER;
|
||||||
+SKYEXPLODE;
|
+SKYEXPLODE;
|
||||||
|
|
@ -315,12 +315,12 @@ Class PulseBolt : Actor
|
||||||
if ( !damagedactor )
|
if ( !damagedactor )
|
||||||
{
|
{
|
||||||
accdamage = min(0.5*(level.time-lasthit),0.1);
|
accdamage = min(0.5*(level.time-lasthit),0.1);
|
||||||
t.Results.HitActor.DamageMobj(self,target,Random[Pulse](65,75)*accdamage,'zapped');
|
t.Results.HitActor.DamageMobj(self,target,Random[Pulse](70,80)*accdamage,'zapped');
|
||||||
accdamage = 0;
|
accdamage = 0;
|
||||||
}
|
}
|
||||||
else if ( t.Results.HitActor != damagedactor )
|
else if ( t.Results.HitActor != damagedactor )
|
||||||
{
|
{
|
||||||
t.Results.HitActor.DamageMobj(self,target,Random[Pulse](65,75)*accdamage,'zapped');
|
t.Results.HitActor.DamageMobj(self,target,Random[Pulse](70,80)*accdamage,'zapped');
|
||||||
accdamage = 0;
|
accdamage = 0;
|
||||||
}
|
}
|
||||||
lasthit = level.time;
|
lasthit = level.time;
|
||||||
|
|
@ -328,10 +328,11 @@ Class PulseBolt : Actor
|
||||||
accdamage += 1./TICRATE;
|
accdamage += 1./TICRATE;
|
||||||
if ( accdamage > 0.22 )
|
if ( accdamage > 0.22 )
|
||||||
{
|
{
|
||||||
t.Results.HitActor.DamageMobj(self,target,Random[Pulse](65,75)*accdamage,'zapped');
|
t.Results.HitActor.DamageMobj(self,target,Random[Pulse](70,80)*accdamage,'zapped');
|
||||||
accdamage = 0;
|
accdamage = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if ( t.Results.HitType == TRACE_HitWall ) t.Results.HitLine.RemoteActivate(tracer,t.Results.Side,SPAC_Impact,t.Results.HitPos);
|
||||||
int numpt = Random[Pulse](10,20)*!Random[Pulse](0,2);
|
int numpt = Random[Pulse](10,20)*!Random[Pulse](0,2);
|
||||||
for ( int i=0; i<numpt; i++ )
|
for ( int i=0; i<numpt; i++ )
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ Class RipperAmmo : Ammo
|
||||||
Inventory.Amount 25;
|
Inventory.Amount 25;
|
||||||
Inventory.MaxAmount 75;
|
Inventory.MaxAmount 75;
|
||||||
Ammo.BackpackAmount 50;
|
Ammo.BackpackAmount 50;
|
||||||
Ammo.BackpackMaxAmount 75;
|
Ammo.BackpackMaxAmount 150;
|
||||||
Ammo.DropAmount 10;
|
Ammo.DropAmount 10;
|
||||||
}
|
}
|
||||||
States
|
States
|
||||||
|
|
@ -58,7 +58,7 @@ Class Razor2 : Actor
|
||||||
Radius 2;
|
Radius 2;
|
||||||
Height 2;
|
Height 2;
|
||||||
Speed 50;
|
Speed 50;
|
||||||
DamageFunction Random[Ripper](20,30);
|
DamageFunction Random[Ripper](30,40);
|
||||||
DamageType 'Ripper';
|
DamageType 'Ripper';
|
||||||
Obituary "%k ripped a chunk of meat out of %o with the Ripper.";
|
Obituary "%k ripped a chunk of meat out of %o with the Ripper.";
|
||||||
BounceType "Doom";
|
BounceType "Doom";
|
||||||
|
|
@ -183,7 +183,7 @@ Class Razor2Alt : Razor2
|
||||||
{
|
{
|
||||||
Default
|
Default
|
||||||
{
|
{
|
||||||
DamageFunction Random[Ripper](25,34);
|
DamageFunction Random[Ripper](40,60);
|
||||||
DamageType 'RipperAltDealth';
|
DamageType 'RipperAltDealth';
|
||||||
BounceType "None";
|
BounceType "None";
|
||||||
-CANBOUNCEWATER;
|
-CANBOUNCEWATER;
|
||||||
|
|
@ -199,7 +199,7 @@ Class Razor2Alt : Razor2
|
||||||
Spawn("Razor2AltLight",pos);
|
Spawn("Razor2AltLight",pos);
|
||||||
A_AlertMonsters();
|
A_AlertMonsters();
|
||||||
A_SprayDecal("RazorBlast",20);
|
A_SprayDecal("RazorBlast",20);
|
||||||
A_Explode(Random[Ripper](20,34),120);
|
A_Explode(Random[Ripper](30,50),120);
|
||||||
A_QuakeEx(3,3,3,10,0,180,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.1);
|
A_QuakeEx(3,3,3,10,0,180,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.1);
|
||||||
int numpt = Random[Ripper](10,20);
|
int numpt = Random[Ripper](10,20);
|
||||||
Vector3 x = (cos(angle)*cos(pitch),sin(angle)*cos(pitch),-sin(pitch));
|
Vector3 x = (cos(angle)*cos(pitch),sin(angle)*cos(pitch),-sin(pitch));
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ Class ShockAmmo : Ammo
|
||||||
Inventory.Amount 10;
|
Inventory.Amount 10;
|
||||||
Inventory.MaxAmount 50;
|
Inventory.MaxAmount 50;
|
||||||
Ammo.BackpackAmount 20;
|
Ammo.BackpackAmount 20;
|
||||||
Ammo.BackpackMaxAmount 50;
|
Ammo.BackpackMaxAmount 100;
|
||||||
Ammo.DropAmount 5;
|
Ammo.DropAmount 5;
|
||||||
}
|
}
|
||||||
States
|
States
|
||||||
|
|
@ -1021,6 +1021,17 @@ Class EnhancedShockAmmo : Ammo
|
||||||
|
|
||||||
Class EnhancedShockRifle : UTWeapon replaces InvulnerabilitySphere
|
Class EnhancedShockRifle : UTWeapon replaces InvulnerabilitySphere
|
||||||
{
|
{
|
||||||
|
int ticcnt;
|
||||||
|
|
||||||
|
override void Tick()
|
||||||
|
{
|
||||||
|
Super.Tick();
|
||||||
|
if ( !Owner ) return;
|
||||||
|
ticcnt++;
|
||||||
|
if ( ticcnt < 35 ) return;
|
||||||
|
ticcnt = 0;
|
||||||
|
DepleteAmmo(false,true,1);
|
||||||
|
}
|
||||||
action void A_SShockFire()
|
action void A_SShockFire()
|
||||||
{
|
{
|
||||||
Weapon weap = Weapon(invoker);
|
Weapon weap = Weapon(invoker);
|
||||||
|
|
@ -1073,6 +1084,9 @@ Class EnhancedShockRifle : UTWeapon replaces InvulnerabilitySphere
|
||||||
Weapon.AmmoType2 "EnhancedShockAmmo";
|
Weapon.AmmoType2 "EnhancedShockAmmo";
|
||||||
Weapon.AmmoUse2 1;
|
Weapon.AmmoUse2 1;
|
||||||
Weapon.AmmoGive 25;
|
Weapon.AmmoGive 25;
|
||||||
|
+WEAPON.AMMO_OPTIONAL;
|
||||||
|
+WEAPON.ALT_AMMO_OPTIONAL;
|
||||||
|
+WEAPON.CHEATNOTWEAPON;
|
||||||
}
|
}
|
||||||
States
|
States
|
||||||
{
|
{
|
||||||
|
|
@ -1084,20 +1098,27 @@ Class EnhancedShockRifle : UTWeapon replaces InvulnerabilitySphere
|
||||||
Ready:
|
Ready:
|
||||||
ASMS ABCDEFGHIJKLMNO 1 A_WeaponReady(WRF_NOFIRE);
|
ASMS ABCDEFGHIJKLMNO 1 A_WeaponReady(WRF_NOFIRE);
|
||||||
Idle:
|
Idle:
|
||||||
ASMI A 1
|
ASMI A 1 A_WeaponReady();
|
||||||
{
|
|
||||||
A_CheckReload();
|
|
||||||
A_WeaponReady();
|
|
||||||
}
|
|
||||||
Wait;
|
Wait;
|
||||||
Fire:
|
Fire:
|
||||||
|
ASMI A 0 A_JumpIfNoAmmo("DryFire");
|
||||||
ASMF A 1 A_SShockFire();
|
ASMF A 1 A_SShockFire();
|
||||||
ASMF BCDEFGHIJ 2;
|
ASMF BCDEFGHIJ 2;
|
||||||
Goto Idle;
|
Goto Idle;
|
||||||
AltFire:
|
AltFire:
|
||||||
|
ASMI A 0 A_JumpIfNoAmmo("DryFire");
|
||||||
ASMA A 1 A_SShockAlt();
|
ASMA A 1 A_SShockAlt();
|
||||||
ASMA BCDEFGHIJ 2;
|
ASMA BCDEFGHIJ 2;
|
||||||
Goto Idle;
|
Goto Idle;
|
||||||
|
DryFire:
|
||||||
|
ASMA I 3
|
||||||
|
{
|
||||||
|
A_PlaySound("sshock/dryfire",CHAN_WEAPON);
|
||||||
|
A_AlertMonsters();
|
||||||
|
}
|
||||||
|
ASMA J 4;
|
||||||
|
ASMI A 10;
|
||||||
|
Goto Idle;
|
||||||
Deselect:
|
Deselect:
|
||||||
ASMD ABCDEFG 1;
|
ASMD ABCDEFG 1;
|
||||||
ASMD G 1 A_Lower(int.max);
|
ASMD G 1 A_Lower(int.max);
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ Class RifleAmmo : Ammo
|
||||||
Inventory.Amount 10;
|
Inventory.Amount 10;
|
||||||
Inventory.MaxAmount 50;
|
Inventory.MaxAmount 50;
|
||||||
Ammo.BackpackAmount 20;
|
Ammo.BackpackAmount 20;
|
||||||
Ammo.BackpackMaxAmount 50;
|
Ammo.BackpackMaxAmount 100;
|
||||||
Ammo.DropAmount 5;
|
Ammo.DropAmount 5;
|
||||||
}
|
}
|
||||||
States
|
States
|
||||||
|
|
@ -87,9 +87,9 @@ Class SniperRifle : UTWeapon
|
||||||
LineTrace(angle,10000,BulletSlope(),TRF_ABSPOSITION,origin.z,origin.x,origin.y,d);
|
LineTrace(angle,10000,BulletSlope(),TRF_ABSPOSITION,origin.z,origin.x,origin.y,d);
|
||||||
if ( d.HitType == TRACE_HitActor )
|
if ( d.HitType == TRACE_HitActor )
|
||||||
{
|
{
|
||||||
int dmg = Random[Sniper](40,50);
|
int dmg = Random[Sniper](45,60);
|
||||||
if ( d.HitLocation.z >= (d.HitActor.pos.z+d.HitActor.height*0.8) )
|
if ( d.HitLocation.z >= (d.HitActor.pos.z+d.HitActor.height*0.8) )
|
||||||
dmg = d.HitActor.DamageMobj(invoker,self,dmg+65,'Decapitated');
|
dmg = d.HitActor.DamageMobj(invoker,self,dmg+70,'Decapitated');
|
||||||
else dmg = d.HitActor.DamageMobj(invoker,self,dmg,'shot');
|
else dmg = d.HitActor.DamageMobj(invoker,self,dmg,'shot');
|
||||||
if ( d.HitActor.bNOBLOOD )
|
if ( d.HitActor.bNOBLOOD )
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -370,6 +370,7 @@ Class Translocator : UTWeapon
|
||||||
Weapon.SlotNumber 1;
|
Weapon.SlotNumber 1;
|
||||||
Weapon.SelectionOrder 10;
|
Weapon.SelectionOrder 10;
|
||||||
+WEAPON.NO_AUTO_SWITCH;
|
+WEAPON.NO_AUTO_SWITCH;
|
||||||
|
+WEAPON.CHEATNOTWEAPON;
|
||||||
}
|
}
|
||||||
States
|
States
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,6 @@ Class UTPlayer : DoomPlayer
|
||||||
Default
|
Default
|
||||||
{
|
{
|
||||||
Player.StartItem "Enforcer";
|
Player.StartItem "Enforcer";
|
||||||
Player.StartItem "Translocator";
|
|
||||||
Player.StartItem "ImpactHammer";
|
Player.StartItem "ImpactHammer";
|
||||||
Player.StartItem "MiniAmmo", 30;
|
Player.StartItem "MiniAmmo", 30;
|
||||||
Player.DamageScreenColor "FF 00 00", 1.0;
|
Player.DamageScreenColor "FF 00 00", 1.0;
|
||||||
|
|
@ -755,9 +754,36 @@ Class UTMainHandler : StaticEventHandler
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override void PlayerEntered( PlayerEvent e )
|
||||||
|
{
|
||||||
|
if ( CVar.GetCVar('flak_translocator').GetBool() )
|
||||||
|
players[e.playernumber].mo.GiveInventory("Translocator",1);
|
||||||
|
}
|
||||||
|
override void PlayerRespawned( PlayerEvent e )
|
||||||
|
{
|
||||||
|
if ( CVar.GetCVar('flak_translocator').GetBool() )
|
||||||
|
players[e.playernumber].mo.GiveInventory("Translocator",1);
|
||||||
|
}
|
||||||
|
|
||||||
|
override void NetworkProcess( ConsoleEvent e )
|
||||||
|
{
|
||||||
|
if ( e.Name ~== "refreshtrans" )
|
||||||
|
{
|
||||||
|
if ( CVar.GetCVar('flak_translocator').GetBool() )
|
||||||
|
{
|
||||||
|
for ( int i=0; i<MAXPLAYERS; i++ ) if ( playeringame[i] ) players[i].mo.GiveInventory("Translocator",1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
for ( int i=0; i<MAXPLAYERS; i++ ) if ( playeringame[i] ) players[i].mo.TakeInventory("Translocator",1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
override void ConsoleProcess( ConsoleEvent e )
|
override void ConsoleProcess( ConsoleEvent e )
|
||||||
{
|
{
|
||||||
if ( e.Name ~== "refreshmenu" ) StartMenu();
|
if ( e.Name ~== "refreshmenu" ) StartMenu();
|
||||||
|
if ( e.Name ~== "refreshtrans" ) EventHandler.SendNetworkEvent("refreshtrans");
|
||||||
}
|
}
|
||||||
|
|
||||||
override void WorldTick()
|
override void WorldTick()
|
||||||
|
|
|
||||||
|
|
@ -335,7 +335,7 @@ Class UTHud : BaseStatusBar
|
||||||
CurX += 8*hudsize*HScale;
|
CurX += 8*hudsize*HScale;
|
||||||
CurY += 14*hudsize*HScale;
|
CurY += 14*hudsize*HScale;
|
||||||
if ( !showstatus && b ) DrawColor = GoldColor;
|
if ( !showstatus && b ) DrawColor = GoldColor;
|
||||||
UTDrawBigNum(Min(199,allarmor),hudsize);
|
UTDrawBigNum(allarmor,hudsize);
|
||||||
DrawColor = WhiteColor;
|
DrawColor = WhiteColor;
|
||||||
if ( !showstatus && !showweapons )
|
if ( !showstatus && !showweapons )
|
||||||
{
|
{
|
||||||
|
|
@ -358,14 +358,14 @@ Class UTHud : BaseStatusBar
|
||||||
DrawColor = LerpColor(WhiteColor,blinkcolor,blinky);
|
DrawColor = LerpColor(WhiteColor,blinkcolor,blinky);
|
||||||
CurX += 8*hudsize*HScale;
|
CurX += 8*hudsize*HScale;
|
||||||
CurY += 14*hudsize*HScale;
|
CurY += 14*hudsize*HScale;
|
||||||
UTDrawBigNum(max(0,CPlayer.mo.Health),hudsize);
|
UTDrawBigNum(Max(0,CPlayer.mo.Health),hudsize);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
UTDrawTintedTex(Boxes[2],hudsize);
|
UTDrawTintedTex(Boxes[2],hudsize);
|
||||||
CurX += 8*hudsize*HScale;
|
CurX += 8*hudsize*HScale;
|
||||||
CurY += 14*hudsize*HScale;
|
CurY += 14*hudsize*HScale;
|
||||||
UTDrawBigNum(Clamp(CPlayer.mo.Health,0,199),hudsize);
|
UTDrawBigNum(Max(0,CPlayer.mo.Health),hudsize);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private void DrawWeapons()
|
private void DrawWeapons()
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ Class WarheadAmmo : Ammo
|
||||||
Inventory.Amount 1;
|
Inventory.Amount 1;
|
||||||
Inventory.MaxAmount 2;
|
Inventory.MaxAmount 2;
|
||||||
Ammo.BackpackAmount 0;
|
Ammo.BackpackAmount 0;
|
||||||
Ammo.BackpackMaxAmount 2;
|
Ammo.BackpackMaxAmount 3;
|
||||||
Ammo.DropAmount 1;
|
Ammo.DropAmount 1;
|
||||||
Inventory.RespawnTics 2100;
|
Inventory.RespawnTics 2100;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue