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:
Mari the Deer 2020-06-24 14:41:26 +02:00
commit ccd923a256
6 changed files with 90 additions and 41 deletions

View file

@ -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

View file

@ -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)";

View file

@ -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;

View file

@ -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 )

View file

@ -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';

View file

@ -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();