Added lesser variants to shock core and biorifle ammo for balance.
Added "dropped ammo" properties to all weapons, also for balance. Silence warnings about floating point truncation.
This commit is contained in:
parent
884bbab247
commit
569ef037ec
20 changed files with 154 additions and 72 deletions
BIN
brightmaps/JShockCore_2.png
Normal file
BIN
brightmaps/JShockCore_2.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 674 B |
|
|
@ -126,6 +126,14 @@ HardwareShader Texture "models/JShockCore.png"
|
||||||
{
|
{
|
||||||
Shader "shaders/glsl/AmbientGlow_Brightmapped.fp"
|
Shader "shaders/glsl/AmbientGlow_Brightmapped.fp"
|
||||||
}
|
}
|
||||||
|
/*Brightmap Texture "models/JShockCore_2.png"
|
||||||
|
{
|
||||||
|
Map "brightmaps/JShockCore_2.png"
|
||||||
|
}*/
|
||||||
|
HardwareShader Texture "models/JShockCore_2.png"
|
||||||
|
{
|
||||||
|
Shader "shaders/glsl/AmbientGlow_Brightmapped.fp"
|
||||||
|
}
|
||||||
/*Brightmap Texture "models/SASMD_t.png"
|
/*Brightmap Texture "models/SASMD_t.png"
|
||||||
{
|
{
|
||||||
Map "brightmaps/ASMD_t.png"
|
Map "brightmaps/ASMD_t.png"
|
||||||
|
|
|
||||||
12
modeldef.ges
12
modeldef.ges
|
|
@ -10,6 +10,18 @@ Model "BioAmmo"
|
||||||
|
|
||||||
FrameIndex BIOA A 0 0
|
FrameIndex BIOA A 0 0
|
||||||
}
|
}
|
||||||
|
Model "BioAmmo2"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 0 "BioAmmoM_d.3d"
|
||||||
|
Skin 0 "Jbammo1.png"
|
||||||
|
Scale 0.08 0.096 0.08
|
||||||
|
PitchOffset 180
|
||||||
|
RollOffset 90
|
||||||
|
ZOffset 4
|
||||||
|
|
||||||
|
FrameIndex BIOA A 0 0
|
||||||
|
}
|
||||||
|
|
||||||
Model "BioGel"
|
Model "BioGel"
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,16 @@ Model "ShockAmmo"
|
||||||
|
|
||||||
FrameIndex SHOA A 0 0
|
FrameIndex SHOA A 0 0
|
||||||
}
|
}
|
||||||
|
Model "ShockAmmo2"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 0 "ShockCoreM_d.3d"
|
||||||
|
Skin 0 "JShockCore_2.png"
|
||||||
|
Scale 0.11 0.11 0.132
|
||||||
|
ZOffset 12
|
||||||
|
|
||||||
|
FrameIndex SHOA A 0 0
|
||||||
|
}
|
||||||
|
|
||||||
Model "EnhancedShockAmmo"
|
Model "EnhancedShockAmmo"
|
||||||
{
|
{
|
||||||
|
|
|
||||||
BIN
models/JShockCore_2.png
Normal file
BIN
models/JShockCore_2.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 18 KiB |
|
|
@ -15,7 +15,7 @@ Class UTArmor : Armor
|
||||||
int saved;
|
int saved;
|
||||||
if ( (amount > 0) && !DamageTypeDefinition.IgnoreArmor(damageType) )
|
if ( (amount > 0) && !DamageTypeDefinition.IgnoreArmor(damageType) )
|
||||||
{
|
{
|
||||||
saved = damage*absorb/100.;
|
saved = int(damage*absorb/100.);
|
||||||
if ( amount <= saved ) saved = amount;
|
if ( amount <= saved ) saved = amount;
|
||||||
newdamage -= saved;
|
newdamage -= saved;
|
||||||
amount -= saved;
|
amount -= saved;
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,8 @@ Class Tier3Ammo : RandomSpawner2 replaces Shell
|
||||||
{
|
{
|
||||||
Default
|
Default
|
||||||
{
|
{
|
||||||
DropItem "BioAmmo", 255, 1;
|
DropItem "BioAmmo2", 255, 1;
|
||||||
DropItem "ShockAmmo", 255, 1;
|
DropItem "ShockAmmo2", 255, 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Class Tier3Ammo2 : Tier3Ammo replaces ShellBox {}
|
Class Tier3Ammo2 : Tier3Ammo replaces ShellBox {}
|
||||||
|
|
@ -37,6 +37,24 @@ Class BioAmmo : Ammo
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Class BioAmmo2 : BioAmmo // small variant
|
||||||
|
{
|
||||||
|
Default
|
||||||
|
{
|
||||||
|
Tag "Biosludge Ammo";
|
||||||
|
Inventory.PickupMessage "You picked up the Small Biosludge Ammo.";
|
||||||
|
Inventory.Amount 10;
|
||||||
|
Ammo.DropAmount 5;
|
||||||
|
Scale 0.5;
|
||||||
|
}
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
BIOA A -1;
|
||||||
|
Stop;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Class BioSpark : Actor
|
Class BioSpark : Actor
|
||||||
{
|
{
|
||||||
Default
|
Default
|
||||||
|
|
@ -139,7 +157,7 @@ Class BioLight : DynamicLight
|
||||||
Destroy();
|
Destroy();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
args[LIGHT_INTENSITY] = 8*target.Scale.x;
|
args[LIGHT_INTENSITY] = int(8*target.Scale.x);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -161,9 +179,9 @@ Class BioXLight : DynamicLight
|
||||||
{
|
{
|
||||||
Super.Tick();
|
Super.Tick();
|
||||||
if ( globalfreeze || level.frozen ) return;
|
if ( globalfreeze || level.frozen ) return;
|
||||||
args[LIGHT_RED] = 64*lifetime;
|
args[LIGHT_RED] = int(64*lifetime);
|
||||||
args[LIGHT_GREEN] = 255*lifetime;
|
args[LIGHT_GREEN] = int(255*lifetime);
|
||||||
args[LIGHT_BLUE] = 48*lifetime;
|
args[LIGHT_BLUE] = int(48*lifetime);
|
||||||
lifetime -= 0.05;
|
lifetime -= 0.05;
|
||||||
if ( lifetime <= 0 ) Destroy();
|
if ( lifetime <= 0 ) Destroy();
|
||||||
}
|
}
|
||||||
|
|
@ -187,7 +205,7 @@ Class BioGel : Actor
|
||||||
int atplane;
|
int atplane;
|
||||||
Sector atsector;
|
Sector atsector;
|
||||||
double atz;
|
double atz;
|
||||||
int rollvel, pitchvel, yawvel;
|
double rollvel, pitchvel, yawvel;
|
||||||
Vector3 normal;
|
Vector3 normal;
|
||||||
|
|
||||||
override void PostBeginPlay()
|
override void PostBeginPlay()
|
||||||
|
|
@ -252,7 +270,7 @@ Class BioGel : Actor
|
||||||
}
|
}
|
||||||
if ( !InStateSequence(CurState,FindState("XDeath")) && ((!bNOGRAVITY && !Random[GES](0,2)) || !Random[GES](0,10)) )
|
if ( !InStateSequence(CurState,FindState("XDeath")) && ((!bNOGRAVITY && !Random[GES](0,2)) || !Random[GES](0,10)) )
|
||||||
{
|
{
|
||||||
int numpt = Min(20,Scale.x*2)+Random[GES](-1,1);
|
int numpt = Min(20,int(Scale.x*2))+Random[GES](-1,1);
|
||||||
for ( int i=0; i<numpt; i++ )
|
for ( int i=0; i<numpt; i++ )
|
||||||
{
|
{
|
||||||
Vector3 pvel = (FRandom[GES](-1,1),FRandom[GES](-1,1),FRandom[GES](-1,1)).unit()*FRandom[GES](1,3);
|
Vector3 pvel = (FRandom[GES](-1,1),FRandom[GES](-1,1),FRandom[GES](-1,1)).unit()*FRandom[GES](1,3);
|
||||||
|
|
@ -355,7 +373,7 @@ Class BioGel : Actor
|
||||||
}
|
}
|
||||||
A_PlaySound("ges/hit");
|
A_PlaySound("ges/hit");
|
||||||
A_SprayDecal("BioSplat",-172);
|
A_SprayDecal("BioSplat",-172);
|
||||||
int numpt = Min(100,Scale.x*10)+Random[GES](-5,5);
|
int numpt = Min(100,int(Scale.x*10))+Random[GES](-5,5);
|
||||||
for ( int i=0; i<numpt; i++ )
|
for ( int i=0; i<numpt; i++ )
|
||||||
{
|
{
|
||||||
Vector3 pvel = (normal+(FRandom[GES](-.8,.8),FRandom[GES](-.8,.8),FRandom[GES](-.8,.8))).unit()*FRandom[GES](3,6);
|
Vector3 pvel = (normal+(FRandom[GES](-.8,.8),FRandom[GES](-.8,.8),FRandom[GES](-.8,.8))).unit()*FRandom[GES](3,6);
|
||||||
|
|
@ -381,19 +399,19 @@ Class BioGel : Actor
|
||||||
if ( invoker.l ) invoker.l.Destroy();
|
if ( invoker.l ) invoker.l.Destroy();
|
||||||
if ( invoker.b ) invoker.b.Destroy();
|
if ( invoker.b ) invoker.b.Destroy();
|
||||||
let s = Spawn("BioXLight",pos);
|
let s = Spawn("BioXLight",pos);
|
||||||
s.args[3] *= Scale.x;
|
s.args[3] = int(s.args[3]*Scale.x);
|
||||||
invoker.deadtimer = -2;
|
invoker.deadtimer = -2;
|
||||||
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](20,40)*Scale.x,Min(150,Scale.x*25));
|
A_Explode(int(Random[GES](20,40)*Scale.x),Min(150,int(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,int(Scale.x*30))+Random[GES](-10,10);
|
||||||
for ( int i=0; i<numpt; i++ )
|
for ( int i=0; i<numpt; i++ )
|
||||||
{
|
{
|
||||||
Vector3 pvel = (FRandom[GES](-1,1),FRandom[GES](-1,1),FRandom[GES](-1,1)).unit()*FRandom[GES](3,12);
|
Vector3 pvel = (FRandom[GES](-1,1),FRandom[GES](-1,1),FRandom[GES](-1,1)).unit()*FRandom[GES](3,12);
|
||||||
let s = Spawn("BioSpark",pos);
|
let s = Spawn("BioSpark",pos);
|
||||||
s.vel = pvel;
|
s.vel = pvel;
|
||||||
}
|
}
|
||||||
numpt = Min(100,Scale.x*10)+Random[GES](-4,4);
|
numpt = Min(100,int(Scale.x*10))+Random[GES](-4,4);
|
||||||
for ( int i=0; i<numpt; i++ )
|
for ( int i=0; i<numpt; i++ )
|
||||||
{
|
{
|
||||||
Vector3 pvel = (FRandom[GES](-1,1),FRandom[GES](-1,1),FRandom[GES](-1,1)).unit()*FRandom[GES](1.2,2.4);
|
Vector3 pvel = (FRandom[GES](-1,1),FRandom[GES](-1,1),FRandom[GES](-1,1)).unit()*FRandom[GES](1.2,2.4);
|
||||||
|
|
@ -487,7 +505,7 @@ Class BioGlob : BioGel
|
||||||
override void AlignSelf()
|
override void AlignSelf()
|
||||||
{
|
{
|
||||||
Super.AlignSelf();
|
Super.AlignSelf();
|
||||||
if ( !bAMBUSH ) numsplash = 2*Scale.x-1;
|
if ( !bAMBUSH ) numsplash = int(2*Scale.x)-1;
|
||||||
}
|
}
|
||||||
override void Tick()
|
override void Tick()
|
||||||
{
|
{
|
||||||
|
|
@ -536,7 +554,7 @@ Class BioRifle : UTWeapon
|
||||||
invoker.FireEffect();
|
invoker.FireEffect();
|
||||||
UTMainHandler.DoFlash(self,Color(48,0,255,0),1);
|
UTMainHandler.DoFlash(self,Color(48,0,255,0),1);
|
||||||
A_AlertMonsters();
|
A_AlertMonsters();
|
||||||
if ( alt ) A_QuakeEx(1+0.5*invoker.charge,1+0.5*invoker.charge,1+0.5*invoker.charge,5+1.2*invoker.charge,0,64,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.05+0.01*invoker.charge);
|
if ( alt ) A_QuakeEx(1+int(0.5*invoker.charge),1+int(0.5*invoker.charge),1+int(0.5*invoker.charge),5+int(1.2*invoker.charge),0,64,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.05+0.01*invoker.charge);
|
||||||
else A_QuakeEx(1,1,1,5,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.05);
|
else A_QuakeEx(1,1,1,5,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.05);
|
||||||
Vector3 x, y, z;
|
Vector3 x, y, z;
|
||||||
double a, s;
|
double a, s;
|
||||||
|
|
@ -593,6 +611,7 @@ Class BioRifle : UTWeapon
|
||||||
Weapon.AmmoType2 "BioAmmo";
|
Weapon.AmmoType2 "BioAmmo";
|
||||||
Weapon.AmmoUse2 1;
|
Weapon.AmmoUse2 1;
|
||||||
Weapon.AmmoGive 25;
|
Weapon.AmmoGive 25;
|
||||||
|
UTWeapon.DropAmmo 5;
|
||||||
}
|
}
|
||||||
States
|
States
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -413,6 +413,7 @@ Class UTRocketLauncher : UTWeapon
|
||||||
Weapon.AmmoType2 "UTRocketAmmo";
|
Weapon.AmmoType2 "UTRocketAmmo";
|
||||||
Weapon.AmmoUse2 1;
|
Weapon.AmmoUse2 1;
|
||||||
Weapon.AmmoGive 6;
|
Weapon.AmmoGive 6;
|
||||||
|
UTWeapon.DropAmmo 3;
|
||||||
}
|
}
|
||||||
States
|
States
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -53,7 +53,7 @@ Class BulletImpact : Actor
|
||||||
{
|
{
|
||||||
Super.PostBeginPlay();
|
Super.PostBeginPlay();
|
||||||
A_SprayDecal("Pock",-20);
|
A_SprayDecal("Pock",-20);
|
||||||
int numpt = Random[Enforcer](5,10)*scale.x*4;
|
int numpt = int(Random[Enforcer](5,10)*scale.x*4);
|
||||||
Vector3 x = (cos(angle)*cos(pitch),sin(angle)*cos(pitch),-sin(pitch));
|
Vector3 x = (cos(angle)*cos(pitch),sin(angle)*cos(pitch),-sin(pitch));
|
||||||
for ( int i=0; i<numpt; i++ )
|
for ( int i=0; i<numpt; i++ )
|
||||||
{
|
{
|
||||||
|
|
@ -62,14 +62,14 @@ Class BulletImpact : Actor
|
||||||
s.vel = pvel;
|
s.vel = pvel;
|
||||||
s.SetShade(Color(1,1,1)*Random[Enforcer](128,192));
|
s.SetShade(Color(1,1,1)*Random[Enforcer](128,192));
|
||||||
}
|
}
|
||||||
numpt = Random[Enforcer](3,8)*scale.x*4;
|
numpt = int(Random[Enforcer](3,8)*scale.x*4);
|
||||||
for ( int i=0; i<numpt; i++ )
|
for ( int i=0; i<numpt; i++ )
|
||||||
{
|
{
|
||||||
Vector3 pvel = (FRandom[Enforcer](-1,1),FRandom[Enforcer](-1,1),FRandom[Enforcer](-1,1)).unit()*FRandom[Enforcer](2,8);
|
Vector3 pvel = (FRandom[Enforcer](-1,1),FRandom[Enforcer](-1,1),FRandom[Enforcer](-1,1)).unit()*FRandom[Enforcer](2,8);
|
||||||
let s = Spawn("UTSpark",pos+x*2);
|
let s = Spawn("UTSpark",pos+x*2);
|
||||||
s.vel = pvel;
|
s.vel = pvel;
|
||||||
}
|
}
|
||||||
numpt = Random[Enforcer](2,5)*scale.x*4;
|
numpt = int(Random[Enforcer](2,5)*scale.x*4);
|
||||||
for ( int i=0; i<numpt; i++ )
|
for ( int i=0; i<numpt; i++ )
|
||||||
{
|
{
|
||||||
Vector3 pvel = (FRandom[Enforcer](-1,1),FRandom[Enforcer](-1,1),FRandom[Enforcer](-1,1)).unit()*FRandom[Enforcer](2,8);
|
Vector3 pvel = (FRandom[Enforcer](-1,1),FRandom[Enforcer](-1,1),FRandom[Enforcer](-1,1)).unit()*FRandom[Enforcer](2,8);
|
||||||
|
|
@ -386,6 +386,7 @@ Class Enforcer : UTWeapon replaces Pistol
|
||||||
Weapon.AmmoUse2 1;
|
Weapon.AmmoUse2 1;
|
||||||
Weapon.AmmoGive 30;
|
Weapon.AmmoGive 30;
|
||||||
Weapon.Kickback 180;
|
Weapon.Kickback 180;
|
||||||
|
UTWeapon.DropAmmo 10;
|
||||||
Enforcer.ClipCount 20;
|
Enforcer.ClipCount 20;
|
||||||
Enforcer.SlaveClipCount 20;
|
Enforcer.SlaveClipCount 20;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -77,9 +77,9 @@ Class ChunkLight : DynamicLight
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if ( globalfreeze || level.frozen ) return;
|
if ( globalfreeze || level.frozen ) return;
|
||||||
args[LIGHT_RED] = 255*(10-target.frame)*0.1;
|
args[LIGHT_RED] = int(255*(10-target.frame)*0.1);
|
||||||
args[LIGHT_GREEN] = 224*(10-target.frame)*0.1;
|
args[LIGHT_GREEN] = int(224*(10-target.frame)*0.1);
|
||||||
args[LIGHT_BLUE] = 128*(10-target.frame)*0.1;
|
args[LIGHT_BLUE] = int(128*(10-target.frame)*0.1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -345,9 +345,9 @@ Class SlugLight : DynamicLight
|
||||||
{
|
{
|
||||||
Super.Tick();
|
Super.Tick();
|
||||||
if ( globalfreeze || level.frozen ) return;
|
if ( globalfreeze || level.frozen ) return;
|
||||||
args[LIGHT_RED] = 255*lifetime;
|
args[LIGHT_RED] = int(255*lifetime);
|
||||||
args[LIGHT_GREEN] = 224*lifetime;
|
args[LIGHT_GREEN] = int(224*lifetime);
|
||||||
args[LIGHT_BLUE] = 128*lifetime;
|
args[LIGHT_BLUE] = int(128*lifetime);
|
||||||
lifetime -= 0.05;
|
lifetime -= 0.05;
|
||||||
if ( lifetime <= 0 ) Destroy();
|
if ( lifetime <= 0 ) Destroy();
|
||||||
}
|
}
|
||||||
|
|
@ -577,6 +577,7 @@ Class FlakCannon : UTWeapon
|
||||||
Weapon.AmmoType2 "FlakAmmo";
|
Weapon.AmmoType2 "FlakAmmo";
|
||||||
Weapon.AmmoUse2 1;
|
Weapon.AmmoUse2 1;
|
||||||
Weapon.AmmoGive 10;
|
Weapon.AmmoGive 10;
|
||||||
|
UTWeapon.DropAmmo 5;
|
||||||
}
|
}
|
||||||
States
|
States
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -58,7 +58,7 @@ Class ImpactHammer : UTWeapon replaces Fist
|
||||||
invoker.count = 0;
|
invoker.count = 0;
|
||||||
A_AlertMonsters();
|
A_AlertMonsters();
|
||||||
}
|
}
|
||||||
A_QuakeEx(clamp(invoker.chargesize*3,0,3),clamp(invoker.chargesize*3,0,3),clamp(invoker.chargesize*3,0,3),amt+1,0,96,"",QF_RELATIVE,rollIntensity:clamp(invoker.chargesize*0.3,0,0.3));
|
A_QuakeEx(clamp(int(invoker.chargesize*3),0,3),clamp(int(invoker.chargesize*3),0,3),clamp(int(invoker.chargesize*3),0,3),amt+1,0,96,"",QF_RELATIVE,rollIntensity:clamp(invoker.chargesize*0.3,0,0.3));
|
||||||
}
|
}
|
||||||
action void A_FireBlast()
|
action void A_FireBlast()
|
||||||
{
|
{
|
||||||
|
|
@ -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](60,80)*realcharge;
|
int dmg = int(Random[Impact](60,80)*realcharge);
|
||||||
dmg = d.HitActor.DamageMobj(invoker,self,dmg,'impact',DMG_THRUSTLESS);
|
dmg = d.HitActor.DamageMobj(invoker,self,dmg,'impact',DMG_THRUSTLESS);
|
||||||
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 )
|
||||||
|
|
@ -93,7 +93,7 @@ Class ImpactHammer : UTWeapon replaces Fist
|
||||||
else if ( d.HitType != TRACE_HitNone )
|
else if ( d.HitType != TRACE_HitNone )
|
||||||
{
|
{
|
||||||
realcharge = max(1.0,realcharge);
|
realcharge = max(1.0,realcharge);
|
||||||
int dmg = Random[Impact](16,24)*realcharge; // It's a flat damage of 36 on UT, but I think it's more fair for it to scale
|
int dmg = int(Random[Impact](16,24)*realcharge); // It's a flat damage of 36 on UT, but I think it's more fair for it to scale
|
||||||
dmg = DamageMobj(invoker,self,dmg,'impact',DMG_THRUSTLESS);
|
dmg = DamageMobj(invoker,self,dmg,'impact',DMG_THRUSTLESS);
|
||||||
TraceBleed(dmg,invoker);
|
TraceBleed(dmg,invoker);
|
||||||
vel -= x*(1200/mass)*realcharge;
|
vel -= x*(1200/mass)*realcharge;
|
||||||
|
|
@ -102,7 +102,7 @@ Class ImpactHammer : UTWeapon replaces Fist
|
||||||
p.pitch = asin(-d.HitDir.z);
|
p.pitch = asin(-d.HitDir.z);
|
||||||
if ( d.HitType == TRACE_HitWall ) d.HitLine.RemoteActivate(self,d.LineSide,SPAC_Impact,d.HitLocation-d.HitDir*4);
|
if ( d.HitType == TRACE_HitWall ) d.HitLine.RemoteActivate(self,d.LineSide,SPAC_Impact,d.HitLocation-d.HitDir*4);
|
||||||
}
|
}
|
||||||
A_QuakeEx(realcharge*6,realcharge*6,realcharge*6,16,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:realcharge*0.2);
|
A_QuakeEx(int(realcharge*6),int(realcharge*6),int(realcharge*6),16,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:realcharge*0.2);
|
||||||
realcharge = max(1.0,realcharge);
|
realcharge = max(1.0,realcharge);
|
||||||
int numpt = Random[Impact](5,10);
|
int numpt = Random[Impact](5,10);
|
||||||
for ( int i=0; i<numpt; i++ )
|
for ( int i=0; i<numpt; i++ )
|
||||||
|
|
@ -137,13 +137,13 @@ 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](25,35)*dscale;
|
int dmg = int(Random[Impact](25,35)*dscale);
|
||||||
dmg = d.HitActor.DamageMobj(invoker,self,dmg,'impact',DMG_THRUSTLESS);
|
dmg = d.HitActor.DamageMobj(invoker,self,dmg,'impact',DMG_THRUSTLESS);
|
||||||
d.HitActor.vel = x*(500/d.HitActor.mass)*dscale;
|
d.HitActor.vel = x*(500/d.HitActor.mass)*dscale;
|
||||||
}
|
}
|
||||||
else if ( d.HitType != TRACE_HitNone )
|
else if ( d.HitType != TRACE_HitNone )
|
||||||
{
|
{
|
||||||
int dmg = Random[Impact](16,24)*dscale;
|
int dmg = int(Random[Impact](16,24)*dscale);
|
||||||
dmg = DamageMobj(invoker,self,dmg,'impact',DMG_THRUSTLESS);
|
dmg = DamageMobj(invoker,self,dmg,'impact',DMG_THRUSTLESS);
|
||||||
vel -= x*(600/mass)*dscale;
|
vel -= x*(600/mass)*dscale;
|
||||||
if ( d.HitType == TRACE_HitWall ) d.HitLine.RemoteActivate(self,d.LineSide,SPAC_Impact,d.HitLocation-d.HitDir*4);
|
if ( d.HitType == TRACE_HitWall ) d.HitLine.RemoteActivate(self,d.LineSide,SPAC_Impact,d.HitLocation-d.HitDir*4);
|
||||||
|
|
|
||||||
|
|
@ -215,6 +215,7 @@ Class Minigun : UTWeapon
|
||||||
Weapon.AmmoUse2 1;
|
Weapon.AmmoUse2 1;
|
||||||
Weapon.AmmoGive 50;
|
Weapon.AmmoGive 50;
|
||||||
Weapon.Kickback 180;
|
Weapon.Kickback 180;
|
||||||
|
UTWeapon.DropAmmo 20;
|
||||||
}
|
}
|
||||||
States
|
States
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -454,9 +454,9 @@ Class mkLight : DynamicLight
|
||||||
else SetOrigin(target.vec3Offset(0,0,target.height*0.75),true);
|
else SetOrigin(target.vec3Offset(0,0,target.height*0.75),true);
|
||||||
A_SetAngle(target.angle,SPF_INTERPOLATE);
|
A_SetAngle(target.angle,SPF_INTERPOLATE);
|
||||||
A_SetPitch(target.pitch,SPF_INTERPOLATE);
|
A_SetPitch(target.pitch,SPF_INTERPOLATE);
|
||||||
args[LIGHT_RED] = GetDefaultByType(GetClass()).args[LIGHT_RED]*clamp(Inventory(master).amount/40.,0.,1.);
|
args[LIGHT_RED] = int(GetDefaultByType(GetClass()).args[LIGHT_RED]*clamp(Inventory(master).amount/40.,0.,1.));
|
||||||
args[LIGHT_GREEN] = GetDefaultByType(GetClass()).args[LIGHT_GREEN]*clamp(Inventory(master).amount/40.,0.,1.);
|
args[LIGHT_GREEN] = int(GetDefaultByType(GetClass()).args[LIGHT_GREEN]*clamp(Inventory(master).amount/40.,0.,1.));
|
||||||
args[LIGHT_BLUE] = GetDefaultByType(GetClass()).args[LIGHT_BLUE]*clamp(Inventory(master).amount/40.,0.,1.);
|
args[LIGHT_BLUE] = int(GetDefaultByType(GetClass()).args[LIGHT_BLUE]*clamp(Inventory(master).amount/40.,0.,1.));
|
||||||
bDORMANT = (target.health <= 0);
|
bDORMANT = (target.health <= 0);
|
||||||
if ( Inventory(target) && target.bInvisible ) bDORMANT = true;
|
if ( Inventory(target) && target.bInvisible ) bDORMANT = true;
|
||||||
// alert monsters hit by the light
|
// alert monsters hit by the light
|
||||||
|
|
@ -501,9 +501,9 @@ Class mkLight3 : DynamicLight
|
||||||
Destroy();
|
Destroy();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
args[LIGHT_RED] = GetDefaultByType(GetClass()).args[LIGHT_RED]*clamp(Inventory(master).amount/40,0.,1.);
|
args[LIGHT_RED] = int(GetDefaultByType(GetClass()).args[LIGHT_RED]*clamp(Inventory(master).amount/40,0.,1.));
|
||||||
args[LIGHT_GREEN] = GetDefaultByType(GetClass()).args[LIGHT_GREEN]*clamp(Inventory(master).amount/40,0.,1.);
|
args[LIGHT_GREEN] = int(GetDefaultByType(GetClass()).args[LIGHT_GREEN]*clamp(Inventory(master).amount/40,0.,1.));
|
||||||
args[LIGHT_BLUE] = GetDefaultByType(GetClass()).args[LIGHT_BLUE]*clamp(Inventory(master).amount/40,0.,1.);
|
args[LIGHT_BLUE] = int(GetDefaultByType(GetClass()).args[LIGHT_BLUE]*clamp(Inventory(master).amount/40,0.,1.));
|
||||||
SetOrigin(target.vec3Offset(0,0,target.height*0.5),true);
|
SetOrigin(target.vec3Offset(0,0,target.height*0.5),true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -146,7 +146,7 @@ Class PulseBallLight : DynamicLight
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
SetOrigin(target.pos,true);
|
SetOrigin(target.pos,true);
|
||||||
args[LIGHT_INTENSITY] = 10+sin(gametic*80+pulseofs)*5;
|
args[LIGHT_INTENSITY] = 10+int(sin(gametic*80+pulseofs)*5);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -168,8 +168,8 @@ Class PulseExplLight : DynamicLight
|
||||||
{
|
{
|
||||||
Super.Tick();
|
Super.Tick();
|
||||||
if ( globalfreeze || level.frozen ) return;
|
if ( globalfreeze || level.frozen ) return;
|
||||||
args[LIGHT_RED] = 64*lifetime;
|
args[LIGHT_RED] = int(64*lifetime);
|
||||||
args[LIGHT_GREEN] = 255*lifetime;
|
args[LIGHT_GREEN] = int(255*lifetime);
|
||||||
lifetime -= 1./ReactionTime;
|
lifetime -= 1./ReactionTime;
|
||||||
if ( lifetime <= 0 ) Destroy();
|
if ( lifetime <= 0 ) Destroy();
|
||||||
}
|
}
|
||||||
|
|
@ -391,12 +391,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](70,80)*accdamage,'zapped',DMG_USEANGLE,atan2(x.y,x.x));
|
t.Results.HitActor.DamageMobj(self,target,int(Random[Pulse](70,80)*accdamage),'zapped',DMG_USEANGLE,atan2(x.y,x.x));
|
||||||
accdamage = 0;
|
accdamage = 0;
|
||||||
}
|
}
|
||||||
else if ( t.Results.HitActor != damagedactor )
|
else if ( t.Results.HitActor != damagedactor )
|
||||||
{
|
{
|
||||||
t.Results.HitActor.DamageMobj(self,target,Random[Pulse](70,80)*accdamage,'zapped',DMG_USEANGLE,atan2(x.y,x.x));
|
t.Results.HitActor.DamageMobj(self,target,int(Random[Pulse](70,80)*accdamage),'zapped',DMG_USEANGLE,atan2(x.y,x.x));
|
||||||
accdamage = 0;
|
accdamage = 0;
|
||||||
}
|
}
|
||||||
lasthit = level.time;
|
lasthit = level.time;
|
||||||
|
|
@ -404,7 +404,7 @@ 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](70,80)*accdamage,'zapped',DMG_USEANGLE,atan2(x.y,x.x));
|
t.Results.HitActor.DamageMobj(self,target,int(Random[Pulse](70,80)*accdamage),'zapped',DMG_USEANGLE,atan2(x.y,x.x));
|
||||||
accdamage = 0;
|
accdamage = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -446,7 +446,7 @@ Class PulseBolt : Actor
|
||||||
}
|
}
|
||||||
else if ( damagedactor )
|
else if ( damagedactor )
|
||||||
{
|
{
|
||||||
damagedactor.DamageMobj(self,target,Random[Pulse](65,75)*accdamage,'zapped');
|
damagedactor.DamageMobj(self,target,int(Random[Pulse](65,75)*accdamage),'zapped');
|
||||||
accdamage = 0;
|
accdamage = 0;
|
||||||
damagedactor = null;
|
damagedactor = null;
|
||||||
}
|
}
|
||||||
|
|
@ -716,6 +716,7 @@ Class PulseGun : UTWeapon
|
||||||
Weapon.AmmoUse2 1;
|
Weapon.AmmoUse2 1;
|
||||||
Weapon.AmmoGive 60;
|
Weapon.AmmoGive 60;
|
||||||
PulseGun.ClipCount 50;
|
PulseGun.ClipCount 50;
|
||||||
|
UTWeapon.DropAmmo 15;
|
||||||
}
|
}
|
||||||
States
|
States
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -171,9 +171,9 @@ Class Razor2AltLight : DynamicLight
|
||||||
{
|
{
|
||||||
Super.Tick();
|
Super.Tick();
|
||||||
if ( globalfreeze || level.frozen ) return;
|
if ( globalfreeze || level.frozen ) return;
|
||||||
args[LIGHT_RED] = 255*lifetime;
|
args[LIGHT_RED] = int(255*lifetime);
|
||||||
args[LIGHT_GREEN] = 240*lifetime;
|
args[LIGHT_GREEN] = int(240*lifetime);
|
||||||
args[LIGHT_BLUE] = 224*lifetime;
|
args[LIGHT_BLUE] = int(224*lifetime);
|
||||||
lifetime -= 0.05;
|
lifetime -= 0.05;
|
||||||
if ( lifetime <= 0 ) Destroy();
|
if ( lifetime <= 0 ) Destroy();
|
||||||
}
|
}
|
||||||
|
|
@ -258,6 +258,7 @@ Class Ripper2 : UTWeapon
|
||||||
Weapon.AmmoType2 "RipperAmmo";
|
Weapon.AmmoType2 "RipperAmmo";
|
||||||
Weapon.AmmoUse2 1;
|
Weapon.AmmoUse2 1;
|
||||||
Weapon.AmmoGive 15;
|
Weapon.AmmoGive 15;
|
||||||
|
UTWeapon.DropAmmo 5;
|
||||||
}
|
}
|
||||||
action void A_RazorFire( bool alt = false )
|
action void A_RazorFire( bool alt = false )
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,23 @@ Class ShockAmmo : Ammo
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Class ShockAmmo2 : ShockAmmo
|
||||||
|
{
|
||||||
|
Default
|
||||||
|
{
|
||||||
|
Tag "Used Shock Core";
|
||||||
|
Inventory.PickupMessage "You picked up a used Shock Core.";
|
||||||
|
Inventory.Amount 3;
|
||||||
|
Ammo.DropAmount 3;
|
||||||
|
}
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
SHOA A -1;
|
||||||
|
Stop;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Class ShockBeamTracer : LineTracer
|
Class ShockBeamTracer : LineTracer
|
||||||
{
|
{
|
||||||
Actor owner, ignore, lasthit;
|
Actor owner, ignore, lasthit;
|
||||||
|
|
@ -728,9 +745,9 @@ Class ShockExplLight : DynamicLight
|
||||||
{
|
{
|
||||||
Super.Tick();
|
Super.Tick();
|
||||||
if ( globalfreeze || level.frozen ) return;
|
if ( globalfreeze || level.frozen ) return;
|
||||||
args[LIGHT_RED] = 160*lifetime;
|
args[LIGHT_RED] = int(160*lifetime);
|
||||||
args[LIGHT_GREEN] = 128*lifetime;
|
args[LIGHT_GREEN] = int(128*lifetime);
|
||||||
args[LIGHT_BLUE] = 255*lifetime;
|
args[LIGHT_BLUE] = int(255*lifetime);
|
||||||
lifetime -= 1./ReactionTime;
|
lifetime -= 1./ReactionTime;
|
||||||
if ( lifetime <= 0 ) Destroy();
|
if ( lifetime <= 0 ) Destroy();
|
||||||
}
|
}
|
||||||
|
|
@ -754,9 +771,9 @@ Class SuperShockExplLight : DynamicLight
|
||||||
{
|
{
|
||||||
Super.Tick();
|
Super.Tick();
|
||||||
if ( globalfreeze || level.frozen ) return;
|
if ( globalfreeze || level.frozen ) return;
|
||||||
args[LIGHT_RED] = 255*lifetime;
|
args[LIGHT_RED] = int(255*lifetime);
|
||||||
args[LIGHT_GREEN] = 160*lifetime;
|
args[LIGHT_GREEN] = int(160*lifetime);
|
||||||
args[LIGHT_BLUE] = 128*lifetime;
|
args[LIGHT_BLUE] = int(128*lifetime);
|
||||||
lifetime -= 1./ReactionTime;
|
lifetime -= 1./ReactionTime;
|
||||||
if ( lifetime <= 0 ) Destroy();
|
if ( lifetime <= 0 ) Destroy();
|
||||||
}
|
}
|
||||||
|
|
@ -1046,6 +1063,7 @@ Class ShockRifle : UTWeapon
|
||||||
Weapon.AmmoType2 "ShockAmmo";
|
Weapon.AmmoType2 "ShockAmmo";
|
||||||
Weapon.AmmoUse2 1;
|
Weapon.AmmoUse2 1;
|
||||||
Weapon.AmmoGive 20;
|
Weapon.AmmoGive 20;
|
||||||
|
UTWeapon.DropAmmo 5;
|
||||||
}
|
}
|
||||||
States
|
States
|
||||||
{
|
{
|
||||||
|
|
@ -1218,6 +1236,7 @@ Class EnhancedShockRifle : UTWeapon replaces InvulnerabilitySphere
|
||||||
Weapon.AmmoType2 "EnhancedShockAmmo";
|
Weapon.AmmoType2 "EnhancedShockAmmo";
|
||||||
Weapon.AmmoUse2 1;
|
Weapon.AmmoUse2 1;
|
||||||
Weapon.AmmoGive 25;
|
Weapon.AmmoGive 25;
|
||||||
|
UTWeapon.DropAmmo 5;
|
||||||
+WEAPON.AMMO_OPTIONAL;
|
+WEAPON.AMMO_OPTIONAL;
|
||||||
+WEAPON.ALT_AMMO_OPTIONAL;
|
+WEAPON.ALT_AMMO_OPTIONAL;
|
||||||
+WEAPON.CHEATNOTWEAPON;
|
+WEAPON.CHEATNOTWEAPON;
|
||||||
|
|
|
||||||
|
|
@ -155,6 +155,7 @@ Class SniperRifle : UTWeapon
|
||||||
Weapon.AmmoUse2 1;
|
Weapon.AmmoUse2 1;
|
||||||
Weapon.AmmoGive 8;
|
Weapon.AmmoGive 8;
|
||||||
Weapon.Kickback 250;
|
Weapon.Kickback 250;
|
||||||
|
UTWeapon.DropAmmo 2;
|
||||||
}
|
}
|
||||||
States
|
States
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -197,12 +197,18 @@ Class RandomSpawner2 : RandomSpawner
|
||||||
{
|
{
|
||||||
spawned.SetState(spawned.ResolveState("Spawn")+1);
|
spawned.SetState(spawned.ResolveState("Spawn")+1);
|
||||||
Inventory(spawned).bALWAYSPICKUP = true;
|
Inventory(spawned).bALWAYSPICKUP = true;
|
||||||
|
if ( UTWeapon(spawned).DropAmmo > 0 )
|
||||||
|
Weapon(spawned).AmmoGive1 = min(UTWeapon(spawned).DropAmmo,Weapon(spawned).AmmoGive1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Class UTWeapon : Weapon
|
Class UTWeapon : Weapon
|
||||||
{
|
{
|
||||||
|
int DropAmmo;
|
||||||
|
|
||||||
|
Property DropAmmo: DropAmmo;
|
||||||
|
|
||||||
// Drawstuffs under HUD
|
// Drawstuffs under HUD
|
||||||
virtual ui void PreRender( double lbottom ) {}
|
virtual ui void PreRender( double lbottom ) {}
|
||||||
// Drawstuffs over HUD
|
// Drawstuffs over HUD
|
||||||
|
|
@ -272,9 +278,9 @@ Class UTTeleportLight : DynamicLight
|
||||||
Destroy();
|
Destroy();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
args[LIGHT_RED] = 128*alpha;
|
args[LIGHT_RED] = int(128*alpha);
|
||||||
args[LIGHT_GREEN] = 160*alpha;
|
args[LIGHT_GREEN] = int(160*alpha);
|
||||||
args[LIGHT_BLUE] = 255*alpha;
|
args[LIGHT_BLUE] = int(255*alpha);
|
||||||
args[LIGHT_INTENSITY] = Random[Tele](10,14)*8;
|
args[LIGHT_INTENSITY] = Random[Tele](10,14)*8;
|
||||||
alpha -= 1./35;
|
alpha -= 1./35;
|
||||||
}
|
}
|
||||||
|
|
@ -295,9 +301,9 @@ Class UTItemLight : DynamicLight
|
||||||
Destroy();
|
Destroy();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
args[LIGHT_RED] = 255*alpha;
|
args[LIGHT_RED] = int(255*alpha);
|
||||||
args[LIGHT_GREEN] = 224*alpha;
|
args[LIGHT_GREEN] = int(224*alpha);
|
||||||
args[LIGHT_BLUE] = 160*alpha;
|
args[LIGHT_BLUE] = int(160*alpha);
|
||||||
args[LIGHT_INTENSITY] = Random[Tele](6,8)*8;
|
args[LIGHT_INTENSITY] = Random[Tele](6,8)*8;
|
||||||
alpha -= 3./35;
|
alpha -= 3./35;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -300,18 +300,18 @@ Class UTHud : BaseStatusBar
|
||||||
if ( CPlayer.GetGender() == 1 )
|
if ( CPlayer.GetGender() == 1 )
|
||||||
{
|
{
|
||||||
UTDrawTintedTex(Woman[0],hudsize*statussize,min(opacity,15),dollcolor);
|
UTDrawTintedTex(Woman[0],hudsize*statussize,min(opacity,15),dollcolor);
|
||||||
if ( a ) UTDrawTintedTex(Woman[1],hudsize*statussize,min(opacity,15)*(a.Amount/double(a.MaxAmount)),dollcolor);
|
if ( a ) UTDrawTintedTex(Woman[1],hudsize*statussize,int(min(opacity,15)*(a.Amount/double(a.MaxAmount))),dollcolor);
|
||||||
if ( t ) UTDrawTintedTex(Woman[2],hudsize*statussize,min(opacity,15)*(t.Amount/double(t.MaxAmount)),dollcolor);
|
if ( t ) UTDrawTintedTex(Woman[2],hudsize*statussize,int(min(opacity,15)*(t.Amount/double(t.MaxAmount))),dollcolor);
|
||||||
if ( j ) UTDrawTintedTex(Woman[3],hudsize*statussize,min(opacity,15)*(j.Amount/double(j.MaxAmount)),dollcolor);
|
if ( j ) UTDrawTintedTex(Woman[3],hudsize*statussize,int(min(opacity,15)*(j.Amount/double(j.MaxAmount))),dollcolor);
|
||||||
if ( s ) UTDrawTintedTex(Woman[4],hudsize*statussize,min(opacity,15)*(s.Amount/double(s.MaxAmount)),GoldColor);
|
if ( s ) UTDrawTintedTex(Woman[4],hudsize*statussize,int(min(opacity,15)*(s.Amount/double(s.MaxAmount))),GoldColor);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
UTDrawTintedTex(Man[0],hudsize*statussize,min(opacity,15),dollcolor);
|
UTDrawTintedTex(Man[0],hudsize*statussize,min(opacity,15),dollcolor);
|
||||||
if ( a ) UTDrawTintedTex(Man[1],hudsize*statussize,min(opacity,15)*(a.Amount/double(a.MaxAmount)),dollcolor);
|
if ( a ) UTDrawTintedTex(Man[1],hudsize*statussize,int(min(opacity,15)*(a.Amount/double(a.MaxAmount))),dollcolor);
|
||||||
if ( t ) UTDrawTintedTex(Man[2],hudsize*statussize,min(opacity,15)*(t.Amount/double(t.MaxAmount)),dollcolor);
|
if ( t ) UTDrawTintedTex(Man[2],hudsize*statussize,int(min(opacity,15)*(t.Amount/double(t.MaxAmount))),dollcolor);
|
||||||
if ( j ) UTDrawTintedTex(Man[3],hudsize*statussize,min(opacity,15)*(j.Amount/double(j.MaxAmount)),dollcolor);
|
if ( j ) UTDrawTintedTex(Man[3],hudsize*statussize,int(min(opacity,15)*(j.Amount/double(j.MaxAmount))),dollcolor);
|
||||||
if ( s ) UTDrawTintedTex(Man[4],hudsize*statussize,min(opacity,15)*(s.Amount/double(s.MaxAmount)),GoldColor);
|
if ( s ) UTDrawTintedTex(Man[4],hudsize*statussize,int(min(opacity,15)*(s.Amount/double(s.MaxAmount))),GoldColor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
DrawColor = WhiteColor;
|
DrawColor = WhiteColor;
|
||||||
|
|
@ -617,7 +617,7 @@ Class UTHud : BaseStatusBar
|
||||||
}
|
}
|
||||||
int protrusion = GetProtrusion(swidth/hres);
|
int protrusion = GetProtrusion(swidth/hres);
|
||||||
[tmp,tmp,hres] = StatusbarToRealCoords(0,0,protrusion);
|
[tmp,tmp,hres] = StatusbarToRealCoords(0,0,protrusion);
|
||||||
width += (swidth-hres)/scale.X;
|
width += int((swidth-hres)/scale.X);
|
||||||
if ( am_showtime )
|
if ( am_showtime )
|
||||||
{
|
{
|
||||||
printtext = level.TimeFormatted();
|
printtext = level.TimeFormatted();
|
||||||
|
|
|
||||||
|
|
@ -69,7 +69,7 @@ Class ShockWave : Actor
|
||||||
if ( (dist > olddmgradius) || (dir dot a.vel < 0) )
|
if ( (dist > olddmgradius) || (dir dot a.vel < 0) )
|
||||||
{
|
{
|
||||||
if ( !a.bDONTTHRUST ) a.vel += dir*((moscale+20)/a.mass);
|
if ( !a.bDONTTHRUST ) a.vel += dir*((moscale+20)/a.mass);
|
||||||
a.DamageMobj(self,target,moscale,'RedeemerDeath',DMG_THRUSTLESS);
|
a.DamageMobj(self,target,int(moscale),'RedeemerDeath',DMG_THRUSTLESS);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
olddmgradius = dmgradius;
|
olddmgradius = dmgradius;
|
||||||
|
|
@ -163,9 +163,9 @@ Class WarheadExplodLight : DynamicLight
|
||||||
{
|
{
|
||||||
Super.Tick();
|
Super.Tick();
|
||||||
if ( globalfreeze || level.frozen ) return;
|
if ( globalfreeze || level.frozen ) return;
|
||||||
args[LIGHT_RED] = 255*lifetime;
|
args[LIGHT_RED] = int(255*lifetime);
|
||||||
args[LIGHT_GREEN] = 192*lifetime;
|
args[LIGHT_GREEN] = int(192*lifetime);
|
||||||
args[LIGHT_BLUE] = 128*lifetime;
|
args[LIGHT_BLUE] = int(128*lifetime);
|
||||||
lifetime -= 1./ReactionTime;
|
lifetime -= 1./ReactionTime;
|
||||||
if ( lifetime <= 0 ) Destroy();
|
if ( lifetime <= 0 ) Destroy();
|
||||||
}
|
}
|
||||||
|
|
@ -663,6 +663,7 @@ Class WarheadLauncher : UTWeapon replaces BFG9000
|
||||||
Inventory.RespawnTics 2100;
|
Inventory.RespawnTics 2100;
|
||||||
+INVENTORY.ALWAYSPICKUP;
|
+INVENTORY.ALWAYSPICKUP;
|
||||||
+WEAPON.NOAUTOFIRE;
|
+WEAPON.NOAUTOFIRE;
|
||||||
|
UTWeapon.DropAmmo 1;
|
||||||
}
|
}
|
||||||
States
|
States
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue