Eviscerator tweaks.

This commit is contained in:
Mari the Deer 2021-01-23 18:21:10 +01:00
commit 9da8d3582b
3 changed files with 13 additions and 13 deletions

View file

@ -1,2 +1,2 @@
[default]
SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r784 \cu(Sat 23 Jan 12:45:15 CET 2021)";
SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r785 \cu(Sat 23 Jan 18:21:10 CET 2021)";

View file

@ -55,7 +55,7 @@ Model "EvisceratorChunk"
Model 0 "Chunky_d.3d"
Skin 0 "Chunky.png"
Scale 0.02 0.02 0.02
Scale 0.01 0.01 0.01
USEACTORPITCH
USEACTORROLL
@ -67,7 +67,7 @@ Model "EvisceratorChunk"
FrameIndex XZW1 F 0 5
FrameIndex XZW1 G 0 6
FrameIndex XZW1 H 0 7
ZOffset 0.2
ZOffset 0.1
FrameIndex XZW2 A 0 0
FrameIndex XZW2 B 0 1
FrameIndex XZW2 C 0 2

View file

@ -149,7 +149,7 @@ Class EvisceratorChunk : Actor
Radius 2;
Height 2;
Speed 50;
DamageFunction int(clamp((vel.length()-5)*.2+max(0,1.-lifetime)*2.,0,15));
DamageFunction int(clamp((vel.length()-8)*.2+max(0,1.-lifetime)*2.,0,15));
DamageType 'shot';
BounceFactor 1.0;
WallBounceFactor 1.0;
@ -291,14 +291,14 @@ Class EvisceratorChunk : Actor
let l = Spawn("ChunkImpact",pos);
l.angle = atan2(HitNormal.y,HitNormal.x);
l.pitch = asin(-HitNormal.z);
A_StartSound("eviscerator/hith",CHAN_WEAPON,CHANF_OVERLAP);
A_StartSound("eviscerator/hith",CHAN_WEAPON,CHANF_OVERLAP,.5);
}
A_Gravity();
gravity = .35;
anglevel = FRandom[Eviscerator](50,100)*RandomPick[Eviscerator](-1,1)*(vel.length()/speed);
pitchvel = FRandom[Eviscerator](50,100)*RandomPick[Eviscerator](-1,1)*(vel.length()/speed);
rollvel = FRandom[Eviscerator](50,100)*RandomPick[Eviscerator](-1,1)*(vel.length()/speed);
A_StartSound("eviscerator/hit",CHAN_WEAPON,CHANF_OVERLAP,.4);
A_StartSound("eviscerator/hit",CHAN_WEAPON,CHANF_OVERLAP,.3);
if ( swwm_extraalert ) A_AlertMonsters(swwm_uncapalert?0:300);
if ( vel.length() < 3 )
{
@ -343,19 +343,19 @@ Class EvisceratorChunk : Actor
// + random chance relative to health
int posthealth = victim.health-amt;
double hratio = posthealth/double(victim.GetSpawnHealth());
if ( (posthealth <= 0) || (FRandom[Eviscerator](hratio,1.) < .5) )
if ( (posthealth <= 0) || (FRandom[Eviscerator](hratio,1.) < .7) )
{
if ( !victim.bNOBLOOD && !victim.bDORMANT && !victim.bINVULNERABLE )
{
victim.SpawnBlood(pos,AngleTo(victim),dmg);
A_StartSound("eviscerator/hitf",CHAN_WEAPON,CHANF_OVERLAP,.2);
A_StartSound("eviscerator/hitf",CHAN_WEAPON,CHANF_OVERLAP,.1);
}
else
{
let l = Spawn("ChunkImpact",pos);
l.angle = angle+180;
l.pitch = -pitch;
A_StartSound("eviscerator/hith",CHAN_WEAPON,CHANF_OVERLAP,.2);
A_StartSound("eviscerator/hith",CHAN_WEAPON,CHANF_OVERLAP,.1);
}
A_Gravity();
gravity = .35;
@ -366,7 +366,7 @@ Class EvisceratorChunk : Actor
if ( !victim.bNOBLOOD && !victim.bDORMANT && !victim.bINVULNERABLE )
{
victim.SpawnBlood(pos,AngleTo(victim),dmg);
A_StartSound("eviscerator/hitf",CHAN_WEAPON,CHANF_OVERLAP,.2);
A_StartSound("eviscerator/hitf",CHAN_WEAPON,CHANF_OVERLAP,.1);
ExplodeMissile(null,victim);
}
else
@ -486,7 +486,7 @@ Class EvisceratorProj : Actor
[x, y, z] = swwm_CoordUtil.GetAxes(pitch,angle,roll);
EvisceratorChunk p;
Vector3 spawnofs;
if ( BlockingMobj ) spawnofs = level.Vec3Diff(pos,BlockingMobj.Vec3Offset(0,0,BlockingMobj.height/2)).unit()*4;
if ( BlockingMobj ) spawnofs = (0,0,0);
else if ( BlockingFloor ) spawnofs = BlockingFloor.floorplane.Normal*4;
else if ( BlockingCeiling ) spawnofs = BlockingCeiling.ceilingplane.Normal*4;
else if ( BlockingLine )
@ -497,7 +497,7 @@ Class EvisceratorProj : Actor
}
int trail = 0;
if ( target && target.player ) trail = CVar.GetCVar('swwm_funtrails',target.player).GetInt();
for ( int i=0; i<30; i++ )
for ( int i=0; i<40; i++ )
{
p = EvisceratorChunk(Spawn("EvisceratorChunk",level.Vec3Offset(pos,spawnofs)));
p.bHITOWNER = true;
@ -797,7 +797,7 @@ Class Eviscerator : SWWMWeapon
[x2, y2, z2] = swwm_CoordUtil.GetAxes(BulletSlope(),angle,roll);
origin = level.Vec3Offset(Vec2OffsetZ(0,0,player.viewz),10*x+4*y-5*z);
int trail = CVar.GetCVar('swwm_funtrails',player).GetInt();
for ( int i=0; i<30; i++ )
for ( int i=0; i<40; i++ )
{
a = FRandom[Eviscerator](0,360);
s = FRandom[Eviscerator](0,invoker.extended?.06:.3);