Finetuning of stuff:
- Price adjustments. - Ammo spawn adjustments. - Prevent Sabreclaws and other Heretic enemies from dropping TOO MUCH ammo. - Increased Silver Bullet JET damage and penetration. - Add blood recolors for vanilla Heretic and Hexen enemies.
This commit is contained in:
parent
7bc9617a04
commit
ccd923a256
6 changed files with 90 additions and 41 deletions
|
|
@ -19,22 +19,22 @@ respective weapon.
|
|||
Red Shell | 500
|
||||
Green Shell | 800
|
||||
White Shell | 1000
|
||||
Blue Shell | 1500
|
||||
Black Shell | 3500
|
||||
Purple Shell | 1200
|
||||
Blue Shell | 2500
|
||||
Black Shell | 4000
|
||||
Purple Shell | 1500
|
||||
Golden Shell | N/A
|
||||
Wallbuster | 35000
|
||||
Eviscerator | 50000
|
||||
Evisc. Shell | 2500
|
||||
Evisc. Shell | 3000
|
||||
Hellblazer | 90000
|
||||
Missiles | 6000
|
||||
Crackshots | 8000
|
||||
Ravagers | 12000
|
||||
Warheads | 25000
|
||||
Missiles | 8000
|
||||
Crackshots | 15000
|
||||
Ravagers | 25000
|
||||
Warheads | 40000
|
||||
Sparkster S-5 | 200000
|
||||
Spark Unit | 50000
|
||||
Silver Bullet | 400000
|
||||
S.B. Mag | 70000
|
||||
S.B. Mag | 80000
|
||||
Candygun | 1000000
|
||||
Candy Mag | 100000
|
||||
Spare Gun | 600000
|
||||
|
|
@ -54,7 +54,7 @@ These will be available long after the first release.
|
|||
Quadravol | 80000
|
||||
Quad. Ammo | 10000
|
||||
Blackfire Ig. | 120000
|
||||
Blackfire C. | 15000
|
||||
Blackfire C. | 20000
|
||||
Sparkster x3 | 250000
|
||||
Nokron Unit | 35000
|
||||
Kinylum Unit | 25000
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
[default]
|
||||
SWWM_MODVER="\chSWWM \cwGZ\c- r397 (Wed 24 Jun 13:13:22 CEST 2020)";
|
||||
SWWM_MODVER="\chSWWM \cwGZ\c- r398 (Wed 24 Jun 14:41:26 CEST 2020)";
|
||||
|
|
|
|||
|
|
@ -357,7 +357,7 @@ Class BlueShell : Ammo
|
|||
Default
|
||||
{
|
||||
Tag "$T_BLUESHELLS";
|
||||
Stamina 1500;
|
||||
Stamina 2500;
|
||||
Inventory.Icon "graphics/HUD/Icons/A_ShellsKinylum.png";
|
||||
Inventory.Amount 1;
|
||||
Inventory.MaxAmount 24;
|
||||
|
|
@ -404,7 +404,7 @@ Class BlackShell : Ammo
|
|||
Default
|
||||
{
|
||||
Tag "$T_BLACKSHELLS";
|
||||
Stamina 3500;
|
||||
Stamina 4000;
|
||||
Inventory.Icon "graphics/HUD/Icons/A_ShellsFuck.png";
|
||||
Inventory.Amount 1;
|
||||
Inventory.MaxAmount 12;
|
||||
|
|
@ -444,7 +444,7 @@ Class PurpleShell : Ammo
|
|||
Default
|
||||
{
|
||||
Tag "$T_PURPLESHELLS";
|
||||
Stamina 1200;
|
||||
Stamina 1500;
|
||||
Inventory.Icon "graphics/HUD/Icons/A_ShellsBall.png";
|
||||
Inventory.Amount 1;
|
||||
Inventory.MaxAmount 20;
|
||||
|
|
@ -554,7 +554,7 @@ Class EvisceratorShell : Ammo
|
|||
{
|
||||
Tag "$T_EVISHELLS";
|
||||
Inventory.PickupMessage "$T_EVISHELL";
|
||||
Stamina 2500;
|
||||
Stamina 3000;
|
||||
Inventory.Icon "graphics/HUD/Icons/A_Eviscerator.png";
|
||||
Inventory.Amount 1;
|
||||
Inventory.MaxAmount 24;
|
||||
|
|
@ -563,6 +563,11 @@ Class EvisceratorShell : Ammo
|
|||
+FLOATBOB;
|
||||
FloatBobStrength 0.25;
|
||||
}
|
||||
override void ModifyDropAmount( int dropamount )
|
||||
{
|
||||
Super.ModifyDropAmount(dropamount);
|
||||
Amount = min(Amount,4);
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
|
|
@ -593,7 +598,7 @@ Class HellblazerMissiles : Ammo
|
|||
{
|
||||
Tag "$T_HELLMISSILES";
|
||||
Inventory.PickupMessage "$T_HELLMISSILE";
|
||||
Stamina 6000;
|
||||
Stamina 8000;
|
||||
Inventory.Icon "graphics/HUD/Icons/A_HellblazerMissile.png";
|
||||
Inventory.Amount 1;
|
||||
Inventory.MaxAmount 30;
|
||||
|
|
@ -602,6 +607,11 @@ Class HellblazerMissiles : Ammo
|
|||
+FLOATBOB;
|
||||
FloatBobStrength 0.25;
|
||||
}
|
||||
override void ModifyDropAmount( int dropamount )
|
||||
{
|
||||
Super.ModifyDropAmount(dropamount);
|
||||
Amount = min(Amount,3);
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
|
|
@ -627,7 +637,7 @@ Class HellblazerCrackshots : Ammo
|
|||
{
|
||||
Tag "$T_HELLCLUSTERS";
|
||||
Inventory.PickupMessage "$T_HELLCLUSTER";
|
||||
Stamina 8000;
|
||||
Stamina 15000;
|
||||
Inventory.Icon "graphics/HUD/Icons/A_HellblazerCrackshot.png";
|
||||
Inventory.Amount 1;
|
||||
Inventory.MaxAmount 18;
|
||||
|
|
@ -636,6 +646,11 @@ Class HellblazerCrackshots : Ammo
|
|||
+FLOATBOB;
|
||||
FloatBobStrength 0.25;
|
||||
}
|
||||
override void ModifyDropAmount( int dropamount )
|
||||
{
|
||||
Super.ModifyDropAmount(dropamount);
|
||||
Amount = min(Amount,2);
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
|
|
@ -661,7 +676,7 @@ Class HellblazerRavagers : Ammo
|
|||
{
|
||||
Tag "$T_HELLBURNINATORS";
|
||||
Inventory.PickupMessage "$T_HELLBURNINATOR";
|
||||
Stamina 12000;
|
||||
Stamina 25000;
|
||||
Inventory.Icon "graphics/HUD/Icons/A_HellblazerRavager.png";
|
||||
Inventory.Amount 1;
|
||||
Inventory.MaxAmount 9;
|
||||
|
|
@ -670,6 +685,11 @@ Class HellblazerRavagers : Ammo
|
|||
+FLOATBOB;
|
||||
FloatBobStrength 0.25;
|
||||
}
|
||||
override void ModifyDropAmount( int dropamount )
|
||||
{
|
||||
Super.ModifyDropAmount(dropamount);
|
||||
Amount = min(Amount,1);
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
|
|
@ -695,7 +715,7 @@ Class HellblazerWarheads : Ammo
|
|||
{
|
||||
Tag "$T_HELLNUKES";
|
||||
Inventory.PickupMessage "$T_HELLNUKE";
|
||||
Stamina 25000;
|
||||
Stamina 40000;
|
||||
Inventory.Icon "graphics/HUD/Icons/A_HellblazerWarhead.png";
|
||||
Inventory.Amount 1;
|
||||
Inventory.MaxAmount 4;
|
||||
|
|
@ -704,6 +724,11 @@ Class HellblazerWarheads : Ammo
|
|||
+FLOATBOB;
|
||||
FloatBobStrength 0.25;
|
||||
}
|
||||
override void ModifyDropAmount( int dropamount )
|
||||
{
|
||||
Super.ModifyDropAmount(dropamount);
|
||||
Amount = min(Amount,1);
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
|
|
@ -761,7 +786,7 @@ Class SilverBulletAmmo : Ammo
|
|||
{
|
||||
Tag "$T_XSBMAG";
|
||||
Inventory.PickupMessage "$T_XSBMAG";
|
||||
Stamina 70000;
|
||||
Stamina 80000;
|
||||
Inventory.Icon "graphics/HUD/Icons/A_SilverBullet.png";
|
||||
Inventory.Amount 1;
|
||||
Inventory.MaxAmount 3;
|
||||
|
|
|
|||
|
|
@ -435,6 +435,13 @@ Class BlueBloodReference : Actor
|
|||
BloodColor "Blue";
|
||||
}
|
||||
}
|
||||
Class PurpleBloodReference : Actor
|
||||
{
|
||||
Default
|
||||
{
|
||||
BloodColor "Purple";
|
||||
}
|
||||
}
|
||||
|
||||
// corpse thump handler
|
||||
Class CorpseFallTracker : Thinker
|
||||
|
|
@ -484,7 +491,7 @@ Class SWWMGoreHandler : EventHandler
|
|||
override void WorldThingSpawned( WorldEvent e )
|
||||
{
|
||||
// vanilla blood color changes
|
||||
if ( (e.Thing.GetClass() == "BaronOfHell") || (e.Thing.GetClass() == "HellKnight") )
|
||||
if ( (e.Thing.GetClass() == "BaronOfHell") || (e.Thing.GetClass() == "HellKnight") || (e.Thing.GetClass() == "Bishop") || (e.Thing.GetClass() == "Korax") )
|
||||
{
|
||||
let gb = Actor.Spawn("GreenBloodReference");
|
||||
e.Thing.CopyBloodColor(gb);
|
||||
|
|
@ -496,6 +503,12 @@ Class SWWMGoreHandler : EventHandler
|
|||
e.Thing.CopyBloodColor(bb);
|
||||
bb.Destroy();
|
||||
}
|
||||
else if ( (e.Thing.GetClass() == "Wizard") || (e.Thing.GetClass() == "Heresiarch") || (e.Thing.GetClass() == "Sorcerer2") )
|
||||
{
|
||||
let pb = Actor.Spawn("PurpleBloodReference");
|
||||
e.Thing.CopyBloodColor(pb);
|
||||
pb.Destroy();
|
||||
}
|
||||
}
|
||||
|
||||
override void WorldThingDamaged( WorldEvent e )
|
||||
|
|
|
|||
|
|
@ -3216,27 +3216,29 @@ Class SWWMHandler : EventHandler
|
|||
}
|
||||
else if ( (e.Replacee == 'RocketBox') || (e.Replacee == 'PhoenixRodHefty') || (e.Replacee == 'MaceHefty') )
|
||||
{
|
||||
switch ( Random[Replacements](0,9) )
|
||||
switch ( Random[Replacements](0,11) )
|
||||
{
|
||||
case 0:
|
||||
case 1:
|
||||
case 2:
|
||||
case 3:
|
||||
case 4:
|
||||
if ( Random[Replacements](0,2) ) e.Replacement = 'HellblazerMissiles';
|
||||
else e.Replacement = 'HellblazerMissileMag';
|
||||
break;
|
||||
case 4:
|
||||
case 5:
|
||||
case 6:
|
||||
case 7:
|
||||
case 8:
|
||||
if ( Random[Replacements](0,3) ) e.Replacement = 'HellblazerCrackshots';
|
||||
else e.Replacement = 'HellblazerCrackshotMag';
|
||||
break;
|
||||
case 7:
|
||||
case 8:
|
||||
case 9:
|
||||
case 10:
|
||||
if ( Random[Replacements](0,8) ) e.Replacement = 'HellblazerRavagers';
|
||||
else e.Replacement = 'HellblazerRavagerMag';
|
||||
break;
|
||||
case 9:
|
||||
case 11:
|
||||
if ( Random[Replacements](0,10) ) e.Replacement = 'HellblazerWarheads';
|
||||
else e.Replacement = 'HellblazerWarheadMag';
|
||||
break;
|
||||
|
|
@ -3244,8 +3246,12 @@ Class SWWMHandler : EventHandler
|
|||
}
|
||||
else if ( (e.Replacee == 'Cell') || (e.Replacee == 'SkullRodAmmo') )
|
||||
{
|
||||
if ( Random[Replacements](0,6) ) e.Replacement = 'SparkUnit';
|
||||
else e.Replacement = 'SilverBulletAmmo';
|
||||
if ( Random[Replacements](0,6) )
|
||||
{
|
||||
if ( Random[Replacements](0,2) ) e.Replacement = 'HellblazerRavagers';
|
||||
else e.Replacement = 'HellblazerWarheads';
|
||||
}
|
||||
else e.Replacement = 'SparkUnit';
|
||||
}
|
||||
else if ( (e.Replacee == 'ArtiTeleport') || (e.Replacee == 'ArtiTeleportOther') )
|
||||
{
|
||||
|
|
@ -3255,6 +3261,7 @@ Class SWWMHandler : EventHandler
|
|||
else if ( (e.Replacee == 'CellPack') || (e.Replacee == 'SkullRodHefty') )
|
||||
{
|
||||
if ( !Random[Replacements](0,2) ) e.Replacement = 'SilverBulletAmmo';
|
||||
else if ( Random[Replacements](0,1) ) e.Replacement = 'SparkUnit';
|
||||
else e.Replacement = 'CandyGunAmmo';
|
||||
}
|
||||
else if ( e.Replacee == 'Mana1' ) e.Replacement = 'FabricatorTier1';
|
||||
|
|
|
|||
|
|
@ -56,8 +56,8 @@ Class SilverAirRip : Actor
|
|||
override void PostBeginPlay()
|
||||
{
|
||||
Super.PostBeginPlay();
|
||||
SWWMHandler.DoBlast(self,60,2000.,target);
|
||||
A_Explode(20,60,0);
|
||||
SWWMHandler.DoBlast(self,50,2000.,target);
|
||||
A_Explode(10,50,0);
|
||||
Destroy();
|
||||
}
|
||||
}
|
||||
|
|
@ -79,8 +79,8 @@ Class SilverImpact : Actor
|
|||
override void PostBeginPlay()
|
||||
{
|
||||
Super.PostBeginPlay();
|
||||
SWWMHandler.DoBlast(self,50,8000.);
|
||||
A_Explode(50,100);
|
||||
SWWMHandler.DoBlast(self,100,8000.);
|
||||
A_Explode(40,100);
|
||||
if ( swwm_extraalert ) A_AlertMonsters(2500);
|
||||
A_QuakeEx(4,4,4,20,0,200,"",QF_RELATIVE|QF_SCALEDOWN,falloff:100,rollIntensity:.9);
|
||||
if ( special1 )
|
||||
|
|
@ -180,7 +180,7 @@ Class SilverBulletTracer : SpreadSlugTracer
|
|||
ent.hitdamage = min(Results.HitActor.health+int(Results.HitActor.GetSpawnHealth()*gameinfo.gibfactor),int(penetration));
|
||||
int killdamage = min(Results.HitActor.health,int(penetration));
|
||||
hitlist.Push(ent);
|
||||
penetration = max(0,penetration-killdamage);
|
||||
penetration = max(0,penetration-killdamage*.6);
|
||||
if ( penetration <= 0 ) return TRACE_Stop;
|
||||
return TRACE_Skip;
|
||||
}
|
||||
|
|
@ -190,12 +190,12 @@ Class SilverBulletTracer : SpreadSlugTracer
|
|||
{
|
||||
if ( !Results.HitLine.sidedef[1] || (Results.HitLine.Flags&(Line.ML_BlockHitscan|Line.ML_BlockEverything)) )
|
||||
{
|
||||
for ( int i=1; i<int(penetration/16); i++ )
|
||||
for ( int i=1; i<int(penetration/12); i++ )
|
||||
{
|
||||
Vector3 ofs = level.Vec3Offset(Results.HitPos,Results.HitVector*i);
|
||||
if ( level.IsPointInLevel(ofs) )
|
||||
{
|
||||
penetration = max(0,penetration-i*8);
|
||||
penetration = max(0,penetration-i*6);
|
||||
let wp = new("WallPenetrate");
|
||||
wp.hitpos = Results.HitPos;
|
||||
wp.hitdir = Results.HitVector;
|
||||
|
|
@ -235,12 +235,12 @@ Class SilverBulletTracer : SpreadSlugTracer
|
|||
}
|
||||
else if ( Results.HitType != TRACE_HitNone )
|
||||
{
|
||||
for ( int i=1; i<int(penetration/16); i++ )
|
||||
for ( int i=1; i<int(penetration/12); i++ )
|
||||
{
|
||||
Vector3 ofs = level.Vec3Offset(Results.HitPos,Results.HitVector*i);
|
||||
if ( level.IsPointInLevel(ofs) )
|
||||
{
|
||||
penetration = max(0,penetration-i*8);
|
||||
penetration = max(0,penetration-i*6);
|
||||
let wp = new("WallPenetrate");
|
||||
wp.hitpos = Results.HitPos;
|
||||
wp.hitdir = Results.HitVector;
|
||||
|
|
@ -401,7 +401,9 @@ Class SilverBullet : SWWMWeapon
|
|||
for ( int i=4; i<t.Results.Distance; i+=8 )
|
||||
{
|
||||
if ( !Random[Boolet](0,1) ) continue;
|
||||
let b = Spawn("SWWMSmoke",level.Vec3Offset(origin,dir*i));
|
||||
Vector3 ofs = level.Vec3Offset(origin,dir*i);
|
||||
if ( !level.IsPointInLevel(ofs) ) continue;
|
||||
let b = Spawn("SWWMSmoke",ofs);
|
||||
b.Scale *= FRandom[Boolet](.9,1.6);
|
||||
b.alpha *= .5;
|
||||
b.special1 = Random[Boolet](0,2);
|
||||
|
|
@ -461,9 +463,11 @@ Class SilverBullet : SWWMWeapon
|
|||
p.target = self;
|
||||
if ( t.Results.HitLine ) t.Results.HitLine.RemoteActivate(self,t.Results.Side,SPAC_Impact,t.Results.HitPos);
|
||||
}
|
||||
for ( int i=8; i<t.Results.Distance; i+=16 )
|
||||
for ( int i=0; i<t.Results.Distance; i+=16 )
|
||||
{
|
||||
let s = Spawn("SilverAirRip",level.Vec3Offset(origin,dir*i));
|
||||
Vector3 ofs = level.Vec3Offset(origin,dir*i);
|
||||
if ( !level.IsPointInLevel(ofs) ) continue;
|
||||
let s = Spawn("SilverAirRip",ofs);
|
||||
s.target = self;
|
||||
}
|
||||
}
|
||||
|
|
@ -486,7 +490,7 @@ Class SilverBullet : SWWMWeapon
|
|||
[x2, y2, z2] = swwm_CoordUtil.GetAxes(BulletSlope(),angle,roll);
|
||||
SilverBulletTracer sst = new("SilverBulletTracer");
|
||||
sst.ignoreme = self;
|
||||
sst.penetration = 2000.;
|
||||
sst.penetration = 2500.;
|
||||
sst.hitlist.Clear();
|
||||
sst.shootthroughlist.Clear();
|
||||
sst.waterhitlist.Clear();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue