Adjust Quadravol splash damage.
This commit is contained in:
parent
0f93e9e843
commit
514c1a8a1f
3 changed files with 22 additions and 17 deletions
|
|
@ -1,3 +1,3 @@
|
|||
[default]
|
||||
SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r356 \cu(Sun 21 Aug 16:38:54 CEST 2022)\c-";
|
||||
SWWM_SHORTVER="\cw1.3pre r356 \cu(2022-08-21 16:38:54)\c-";
|
||||
SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r357 \cu(Sun 21 Aug 22:40:27 CEST 2022)\c-";
|
||||
SWWM_SHORTVER="\cw1.3pre r357 \cu(2022-08-21 22:40:27)\c-";
|
||||
|
|
|
|||
|
|
@ -313,9 +313,9 @@ Class QuadProj : Actor
|
|||
}
|
||||
if ( tracer ) SWWMUtility.DoKnockback(tracer,-x+(0,0,.1),bAMBUSH?150000:500000);
|
||||
A_QuakeEx(3,3,3,20,0,500,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,falloff:200,rollintensity:.6);
|
||||
SWWMUtility.DoExplosion(self,0,80000+special2,240,80,DE_BLAST|DE_EXTRAZTHRUST);
|
||||
SWWMUtility.DoExplosion(self,100+special1,0,240,0,DE_QUADRAVOL|DE_NOSPLASH,ignoreme:tracer);
|
||||
SWWMUtility.DoExplosion(self,150+special1,0,200,80,DE_HOWL|DE_NOSPLASH,ignoreme:tracer);
|
||||
SWWMUtility.DoExplosion(self,0,80000+special2,150,40,DE_BLAST|DE_EXTRAZTHRUST);
|
||||
SWWMUtility.DoExplosion(self,100+special1,0,150,0,DE_QUADRAVOL|DE_NOSPLASH,ignoreme:tracer);
|
||||
SWWMUtility.DoExplosion(self,150+special1,0,120,40,DE_HOWL|DE_NOSPLASH,ignoreme:tracer);
|
||||
A_StartSound("quadshot/hit",CHAN_WEAPON,attenuation:.6);
|
||||
A_StartSound("quadshot/hit",CHAN_VOICE,attenuation:.4);
|
||||
A_AlertMonsters(swwm_uncapalert?0:1500);
|
||||
|
|
@ -578,9 +578,9 @@ Class QuadProj2 : QuadProj
|
|||
}
|
||||
if ( tracer ) SWWMUtility.DoKnockback(tracer,-x+(0,0,.1),bAMBUSH?160000:600000);
|
||||
A_QuakeEx(5,5,5,25,0,900,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,falloff:400,rollintensity:.8);
|
||||
SWWMUtility.DoExplosion(self,0,100000+special2,480,120,DE_BLAST|DE_EXTRAZTHRUST);
|
||||
SWWMUtility.DoExplosion(self,200+special1,0,480,0,DE_QUADRAVOL|DE_NOSPLASH,ignoreme:tracer);
|
||||
SWWMUtility.DoExplosion(self,300+special1,0,400,120,DE_HOWL|DE_NOSPLASH,ignoreme:tracer);
|
||||
SWWMUtility.DoExplosion(self,0,100000+special2,240,80,DE_BLAST|DE_EXTRAZTHRUST);
|
||||
SWWMUtility.DoExplosion(self,200+special1,0,240,0,DE_QUADRAVOL|DE_NOSPLASH,ignoreme:tracer);
|
||||
SWWMUtility.DoExplosion(self,300+special1,0,200,80,DE_HOWL|DE_NOSPLASH,ignoreme:tracer);
|
||||
A_StartSound("quadshot/twohit",CHAN_WEAPON,attenuation:.5);
|
||||
A_StartSound("quadshot/twohit",CHAN_VOICE,attenuation:.25);
|
||||
A_AlertMonsters(swwm_uncapalert?0:2500);
|
||||
|
|
@ -854,9 +854,9 @@ Class QuadProj3 : QuadProj
|
|||
}
|
||||
if ( tracer ) SWWMUtility.DoKnockback(tracer,-x+(0,0,.1),bAMBUSH?180000:800000);
|
||||
A_QuakeEx(7,7,7,35,0,1200,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,falloff:600,rollintensity:1.2);
|
||||
SWWMUtility.DoExplosion(self,0,150000+special2,700,150,DE_BLAST|DE_EXTRAZTHRUST);
|
||||
SWWMUtility.DoExplosion(self,400+special1,0,700,0,DE_QUADRAVOL|DE_NOSPLASH,ignoreme:tracer);
|
||||
SWWMUtility.DoExplosion(self,500+special1,0,600,150,DE_HOWL|DE_NOSPLASH,ignoreme:tracer);
|
||||
SWWMUtility.DoExplosion(self,0,150000+special2,300,120,DE_BLAST|DE_EXTRAZTHRUST);
|
||||
SWWMUtility.DoExplosion(self,400+special1,0,300,0,DE_QUADRAVOL|DE_NOSPLASH,ignoreme:tracer);
|
||||
SWWMUtility.DoExplosion(self,500+special1,0,240,120,DE_HOWL|DE_NOSPLASH,ignoreme:tracer);
|
||||
A_StartSound("quadshot/twohit",CHAN_WEAPON,attenuation:.4,pitch:.9);
|
||||
A_StartSound("quadshot/twohit",CHAN_VOICE,attenuation:.3,pitch:.8);
|
||||
A_StartSound("quadshot/extrahit",CHAN_ITEM,attenuation:.2,pitch:1.1);
|
||||
|
|
@ -1048,7 +1048,7 @@ Class OnFire : Thinker
|
|||
let q = instigator.FindInventory("Quadravol");
|
||||
if ( q ) inflictor = q;
|
||||
}
|
||||
SWWMUtility.DoExplosion(victim,clamp(int(amount*.15),1,50),0,victim.radius+40+amount/5,0,DE_NOBLEED|DE_NOSPLASH|DE_HOWL,'Fire',instigator,DMG_THRUSTLESS,instigator,inflictor);
|
||||
SWWMUtility.DoExplosion(victim,clamp(int(amount*.15),1,50),0,victim.radius+40+amount/5,0,DE_NOBLEED|DE_NOSPLASH|DE_HOWL|DE_CENTERHEIGHT,'Fire',instigator,DMG_THRUSTLESS,instigator,inflictor);
|
||||
}
|
||||
|
||||
static OnFire Apply( Actor victim, Actor instigator, int amount )
|
||||
|
|
|
|||
|
|
@ -13,7 +13,8 @@ enum EDoExplosionFlags
|
|||
DE_COUNTSTEALTH = 256, // only count hits for inactive monsters
|
||||
DE_COUNTFHKILLS = 512, // only count kills for enemies that were at full health
|
||||
DE_NOHURTFRIEND = 1024, // splash damage will not affect allies
|
||||
DE_QUADRAVOL = 2048 // splash burn from a Quadravol projectile, so it'll ignite enemies instead of dealing damage
|
||||
DE_CENTERHEIGHT = 2048, // origin of explosion is at the center height of the source actor, rather than its base
|
||||
DE_QUADRAVOL = 4096 // splash burn from a Quadravol projectile, so it'll ignite enemies instead of dealing damage
|
||||
};
|
||||
|
||||
enum EExitType
|
||||
|
|
@ -1191,12 +1192,12 @@ Class SWWMUtility
|
|||
// debug, display radius sphere
|
||||
if ( swwm_debugblast )
|
||||
{
|
||||
let s = Actor.Spawn("RadiusDebugSphere",Source.pos);
|
||||
let s = Actor.Spawn("RadiusDebugSphere",(flags&DE_CENTERHEIGHT)?Source.Vec3Offset(0,0,Source.height/2):Source.pos);
|
||||
s.Scale *= ExplosionRadius;
|
||||
s.SetShade((Damage>0)?"Green":"Blue");
|
||||
if ( FullDamageRadius > 0. )
|
||||
{
|
||||
let s = Actor.Spawn("RadiusDebugSphere",Source.pos);
|
||||
let s = Actor.Spawn("RadiusDebugSphere",(flags&DE_CENTERHEIGHT)?Source.Vec3Offset(0,0,Source.height/2):Source.pos);
|
||||
s.Scale *= FullDamageRadius;
|
||||
s.SetShade("Red");
|
||||
}
|
||||
|
|
@ -1235,7 +1236,9 @@ Class SWWMUtility
|
|||
if ( !SWWMUtility.SphereIntersect(a,Source.pos,ExplosionRadius) )
|
||||
continue;
|
||||
// calculate factor
|
||||
Vector3 dir = level.Vec3Diff(Source.pos,a.Vec3Offset(0,0,a.Height/2));
|
||||
Vector3 dir;
|
||||
if ( flags&DE_CENTERHEIGHT ) dir = level.Vec3Diff(Source.Vec3Offset(0,0,Source.Height/2),a.Vec3Offset(0,0,a.Height/2));
|
||||
else dir = level.Vec3Diff(Source.pos,a.Vec3Offset(0,0,a.Height/2));
|
||||
double dist = dir.length();
|
||||
// intersecting, randomize direction
|
||||
if ( dir.length() <= double.epsilon )
|
||||
|
|
@ -1325,7 +1328,9 @@ Class SWWMUtility
|
|||
if ( !SWWMUtility.SphereIntersect(a,Source.pos,ExplosionRadius) )
|
||||
continue;
|
||||
// calculate factor
|
||||
Vector3 dir = level.Vec3Diff(Source.pos,a.Vec3Offset(0,0,a.Height/2));
|
||||
Vector3 dir;
|
||||
if ( flags&DE_CENTERHEIGHT ) dir = level.Vec3Diff(Source.Vec3Offset(0,0,Source.Height/2),a.Vec3Offset(0,0,a.Height/2));
|
||||
else dir = level.Vec3Diff(Source.pos,a.Vec3Offset(0,0,a.Height/2));
|
||||
double dist = dir.length();
|
||||
// intersecting, randomize direction
|
||||
if ( dir.length() <= double.epsilon )
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue