Fixes, rebalances, tweaks... Idk, weather hot, brain hurt.
|
|
@ -4,3 +4,13 @@ HardwareShader Texture "models/SheenLED.png"
|
|||
Texture "scrtex" "SHEENLED"
|
||||
Texture "pixtex" "textures/subpixel.png"
|
||||
}
|
||||
PointLight SHEENTLIGHT
|
||||
{
|
||||
Color 1.0 0.7 0.2
|
||||
Size 200
|
||||
Attenuate 1
|
||||
}
|
||||
Object SheenTrail
|
||||
{
|
||||
Frame "XZW1" { light "SHEENTLIGHT" }
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
[default]
|
||||
SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r241 \cu(Sun 31 Jul 21:14:35 CEST 2022)\c-";
|
||||
SWWM_SHORTVER="\cw1.3pre r241 \cu(2022-07-31 21:14:35)\c-";
|
||||
SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r242 \cu(Mon 1 Aug 17:22:37 CEST 2022)\c-";
|
||||
SWWM_SHORTVER="\cw1.3pre r242 \cu(2022-08-01 17:22:37)\c-";
|
||||
|
|
|
|||
|
|
@ -11,25 +11,6 @@ Model "SheenTrail"
|
|||
|
||||
Skin 0 "dlc/SheenTracer.png"
|
||||
FrameIndex XZW1 A 0 0
|
||||
// recolors, whew
|
||||
Skin 0 "dlc/SheenTracer_White.png"
|
||||
FrameIndex XZW1 B 0 0
|
||||
Skin 0 "dlc/SheenTracer_Red.png"
|
||||
FrameIndex XZW1 C 0 0
|
||||
Skin 0 "dlc/SheenTracer_Yellow.png"
|
||||
FrameIndex XZW1 D 0 0
|
||||
Skin 0 "dlc/SheenTracer_Green.png"
|
||||
FrameIndex XZW1 E 0 0
|
||||
Skin 0 "dlc/SheenTracer_Cyan.png"
|
||||
FrameIndex XZW1 F 0 0
|
||||
Skin 0 "dlc/SheenTracer_Blue.png"
|
||||
FrameIndex XZW1 G 0 0
|
||||
Skin 0 "dlc/SheenTracer_Magenta.png"
|
||||
FrameIndex XZW1 H 0 0
|
||||
Skin 0 "dlc/SheenTracer_TransBlue.png"
|
||||
FrameIndex XZW1 I 0 0
|
||||
Skin 0 "dlc/SheenTracer_TransPink.png"
|
||||
FrameIndex XZW1 J 0 0
|
||||
}
|
||||
Model "SheenPhantom"
|
||||
{
|
||||
|
|
@ -107,28 +88,68 @@ Model "HeavyMahSheenGun"
|
|||
|
||||
Scale 0.12 0.12 0.12
|
||||
Skin 2 "dlc/SheenMuz0.png"
|
||||
PitchOffset 0
|
||||
FrameIndex XZW0 A 2 0
|
||||
PitchOffset 120
|
||||
FrameIndex XZW0 B 2 0
|
||||
PitchOffset 240
|
||||
FrameIndex XZW0 C 2 0
|
||||
Scale 0.11 0.11 0.11
|
||||
Skin 2 "dlc/SheenMuz1.png"
|
||||
FrameIndex XZW0 B 2 0
|
||||
PitchOffset 0
|
||||
FrameIndex XZW0 D 2 0
|
||||
PitchOffset 120
|
||||
FrameIndex XZW0 E 2 0
|
||||
PitchOffset 240
|
||||
FrameIndex XZW0 F 2 0
|
||||
Scale 0.10 0.10 0.10
|
||||
Skin 2 "dlc/SheenMuz2.png"
|
||||
FrameIndex XZW0 C 2 0
|
||||
PitchOffset 0
|
||||
FrameIndex XZW0 G 2 0
|
||||
PitchOffset 120
|
||||
FrameIndex XZW0 H 2 0
|
||||
PitchOffset 240
|
||||
FrameIndex XZW0 I 2 0
|
||||
Scale 0.09 0.09 0.09
|
||||
Skin 2 "dlc/SheenMuz3.png"
|
||||
FrameIndex XZW0 D 2 0
|
||||
PitchOffset 0
|
||||
FrameIndex XZW0 J 2 0
|
||||
PitchOffset 120
|
||||
FrameIndex XZW0 K 2 0
|
||||
PitchOffset 240
|
||||
FrameIndex XZW0 L 2 0
|
||||
Scale 0.08 0.08 0.08
|
||||
Skin 2 "dlc/SheenMuz4.png"
|
||||
FrameIndex XZW0 E 2 0
|
||||
PitchOffset 0
|
||||
FrameIndex XZW0 M 2 0
|
||||
PitchOffset 120
|
||||
FrameIndex XZW0 N 2 0
|
||||
PitchOffset 240
|
||||
FrameIndex XZW0 O 2 0
|
||||
Scale 0.07 0.07 0.07
|
||||
Skin 2 "dlc/SheenMuz5.png"
|
||||
FrameIndex XZW0 F 2 0
|
||||
PitchOffset 0
|
||||
FrameIndex XZW0 P 2 0
|
||||
PitchOffset 120
|
||||
FrameIndex XZW0 Q 2 0
|
||||
PitchOffset 240
|
||||
FrameIndex XZW0 R 2 0
|
||||
Scale 0.06 0.06 0.06
|
||||
Skin 2 "dlc/SheenMuz6.png"
|
||||
FrameIndex XZW0 G 2 0
|
||||
PitchOffset 0
|
||||
FrameIndex XZW0 S 2 0
|
||||
PitchOffset 120
|
||||
FrameIndex XZW0 T 2 0
|
||||
PitchOffset 240
|
||||
FrameIndex XZW0 U 2 0
|
||||
Scale 0.05 0.05 0.05
|
||||
Skin 2 "dlc/SheenMuz7.png"
|
||||
FrameIndex XZW0 H 2 0
|
||||
PitchOffset 0
|
||||
FrameIndex XZW0 V 2 0
|
||||
PitchOffset 120
|
||||
FrameIndex XZW0 W 2 0
|
||||
PitchOffset 240
|
||||
FrameIndex XZW0 X 2 0
|
||||
}
|
||||
|
||||
Model "HeavyMahSheenGun"
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 130 B After Width: | Height: | Size: 83 B |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 232 B |
|
Before Width: | Height: | Size: 8.2 KiB After Width: | Height: | Size: 4.2 KiB |
|
Before Width: | Height: | Size: 1 KiB After Width: | Height: | Size: 478 B |
|
Before Width: | Height: | Size: 3 KiB |
|
Before Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 3 KiB |
|
Before Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 3 KiB |
|
Before Width: | Height: | Size: 3.8 KiB |
|
Before Width: | Height: | Size: 4.2 KiB |
|
Before Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 3.1 KiB |
|
|
@ -8,6 +8,7 @@ Class HeavyMahSheenGun : SWWMWeapon
|
|||
double barrelheat, aimerror, vibrate;
|
||||
bool incooldown, stopfire, firstshot;
|
||||
int firetimer, shotcnt;
|
||||
int tcol; // for random
|
||||
|
||||
transient ui SmoothDynamicValueInterpolator HeatInter;
|
||||
transient SpreadSlugTracer st;
|
||||
|
|
@ -25,20 +26,23 @@ Class HeavyMahSheenGun : SWWMWeapon
|
|||
int d1 = Ammo1.Amount%10;
|
||||
int d2 = (Ammo1.Amount/10)%10;
|
||||
int d3 = (Ammo1.Amount/100)%10;
|
||||
AmmoLed.DrawTexture(AmmoLedBase,false,0,0);
|
||||
AmmoLed.DrawTexture(AmmoLedSpeed,false,16,16,DTA_SrcHeight,16,DTA_DestHeight,16,DTA_Color,(firespeed==0)?0xFFFFFFFF:0xFF808080,DTA_LegacyRenderStyle,STYLE_Add);
|
||||
AmmoLed.DrawTexture(AmmoLedSpeed,false,48,16,DTA_SrcY,16,DTA_SrcHeight,16,DTA_DestHeight,16,DTA_Color,(firespeed==1)?0xFFFFFFFF:0xFF808080,DTA_LegacyRenderStyle,STYLE_Add);
|
||||
AmmoLed.DrawTexture(AmmoLedSpeed,false,80,16,DTA_SrcY,32,DTA_SrcHeight,16,DTA_DestHeight,16,DTA_Color,(firespeed==2)?0xFFFFFFFF:0xFF808080,DTA_LegacyRenderStyle,STYLE_Add);
|
||||
AmmoLed.DrawTexture(AmmoLedBase,false,0,0,DTA_Color,0xFF00FF00);
|
||||
AmmoLed.DrawTexture(AmmoLedSpeed,false,16,16,DTA_SrcHeight,16,DTA_DestHeight,16,DTA_Color,(firespeed==0)?0xFF80FF00:0xFF408000,DTA_LegacyRenderStyle,STYLE_Add);
|
||||
AmmoLed.DrawTexture(AmmoLedSpeed,false,48,16,DTA_SrcY,16,DTA_SrcHeight,16,DTA_DestHeight,16,DTA_Color,(firespeed==1)?0xFFFFFF00:0xFF808000,DTA_LegacyRenderStyle,STYLE_Add);
|
||||
AmmoLed.DrawTexture(AmmoLedSpeed,false,80,16,DTA_SrcY,32,DTA_SrcHeight,16,DTA_DestHeight,16,DTA_Color,(firespeed==2)?0xFFFF8000:0xFF804000,DTA_LegacyRenderStyle,STYLE_Add);
|
||||
if ( incooldown )
|
||||
AmmoLed.DrawTexture(AmmoLedNums,false,16,32,DTA_SrcX,64,DTA_SrcY,64,DTA_SrcWidth,96,DTA_SrcHeight,64,DTA_DestWidth,96,DTA_DestHeight,64,DTA_Color,((gametic%8)>=4)?0xFFFF0000:0xFF800000,DTA_LegacyRenderStyle,STYLE_Add);
|
||||
else
|
||||
{
|
||||
AmmoLed.DrawTexture(AmmoLedNums,false,16,32,DTA_SrcX,(d3%8)*32,DTA_SrcY,(d3/8)*64,DTA_SrcWidth,32,DTA_SrcHeight,64,DTA_DestWidth,32,DTA_DestHeight,64,DTA_Color,(!d3)?0xFF808080:0xFFFFFFFF,DTA_LegacyRenderStyle,STYLE_Add);
|
||||
AmmoLed.DrawTexture(AmmoLedNums,false,48,32,DTA_SrcX,(d2%8)*32,DTA_SrcY,(d2/8)*64,DTA_SrcWidth,32,DTA_SrcHeight,64,DTA_DestWidth,32,DTA_DestHeight,64,DTA_Color,(!d3&&!d2)?0xFF808080:0xFFFFFFFF,DTA_LegacyRenderStyle,STYLE_Add);
|
||||
AmmoLed.DrawTexture(AmmoLedNums,false,80,32,DTA_SrcX,(d1%8)*32,DTA_SrcY,(d1/8)*64,DTA_SrcWidth,32,DTA_SrcHeight,64,DTA_DestWidth,32,DTA_DestHeight,64,DTA_Color,(!d3&&!d2&&!d1)?0xFF808080:0xFFFFFFFF,DTA_LegacyRenderStyle,STYLE_Add);
|
||||
Vector3 rgb = SWWMUtility.HSVtoRGB(((Ammo1.Amount/4.)/Ammo1.MaxAmount,1.,1.));
|
||||
Color numcol = Color(255,int(rgb.x*255),int(rgb.y*255),int(rgb.z*255));
|
||||
Color blkcol = Color(255,int(rgb.x*128),int(rgb.y*128),int(rgb.z*128));
|
||||
AmmoLed.DrawTexture(AmmoLedNums,false,16,32,DTA_SrcX,(d3%8)*32,DTA_SrcY,(d3/8)*64,DTA_SrcWidth,32,DTA_SrcHeight,64,DTA_DestWidth,32,DTA_DestHeight,64,DTA_Color,(!d3)?blkcol:numcol,DTA_LegacyRenderStyle,STYLE_Add);
|
||||
AmmoLed.DrawTexture(AmmoLedNums,false,48,32,DTA_SrcX,(d2%8)*32,DTA_SrcY,(d2/8)*64,DTA_SrcWidth,32,DTA_SrcHeight,64,DTA_DestWidth,32,DTA_DestHeight,64,DTA_Color,(!d3&&!d2)?blkcol:numcol,DTA_LegacyRenderStyle,STYLE_Add);
|
||||
AmmoLed.DrawTexture(AmmoLedNums,false,80,32,DTA_SrcX,(d1%8)*32,DTA_SrcY,(d1/8)*64,DTA_SrcWidth,32,DTA_SrcHeight,64,DTA_DestWidth,32,DTA_DestHeight,64,DTA_Color,(!d3&&!d2&&!d1)?blkcol:numcol,DTA_LegacyRenderStyle,STYLE_Add);
|
||||
}
|
||||
double ht = barrelheat*.96;
|
||||
AmmoLed.DrawTexture(AmmoLedBar,false,16,100,DTA_SrcWidth,ht,DTA_DestWidthF,ht,DTA_LegacyRenderStyle,STYLE_Add);
|
||||
AmmoLed.DrawTexture(AmmoLedBar,false,16,100,DTA_SrcWidth,ht,DTA_DestWidthF,ht,DTA_Color,0xFFFF0000,DTA_LegacyRenderStyle,STYLE_Add);
|
||||
}
|
||||
|
||||
override void HudTick()
|
||||
|
|
@ -111,7 +115,6 @@ Class HeavyMahSheenGun : SWWMWeapon
|
|||
A_StartSound("sheen/overheat",CHAN_WEAPONEXTRA2,CHANF_LOOPING,attenuation:3.);
|
||||
invoker.stopfire = invoker.incooldown = true;
|
||||
}
|
||||
invoker.firstshot = true;
|
||||
if ( !sv_infiniteammo && !FindInventory('PowerInfiniteAmmo',true) )
|
||||
invoker.Ammo1.Amount--;
|
||||
invoker.fired = gametic;
|
||||
|
|
@ -202,7 +205,11 @@ Class HeavyMahSheenGun : SWWMWeapon
|
|||
s.vel += vel*.5+x*FRandom[Sheen](1.,3.);
|
||||
}
|
||||
int trail = CVar.GetCVar('swwm_funtrails',player).GetInt();
|
||||
if ( trail == 8 ) trail = Random[Sheen](1,7);
|
||||
if ( trail == 8 )
|
||||
{
|
||||
if ( !invoker.firstshot ) invoker.tcol = Random[Sheen](1,7);
|
||||
trail = invoker.tcol;
|
||||
}
|
||||
else if ( trail == 9 ) trail = 2+(invoker.shotcnt%6);
|
||||
else if ( trail == 10 ) switch ( invoker.shotcnt%5 )
|
||||
{
|
||||
|
|
@ -224,7 +231,8 @@ Class HeavyMahSheenGun : SWWMWeapon
|
|||
t.pitch = asin(-dir.z);
|
||||
t.specialf1 = st.Results.Distance;
|
||||
t.specialf2 = invoker.barrelheat;
|
||||
t.frame = trail;
|
||||
t.special2 = trail;
|
||||
invoker.firstshot = true;
|
||||
invoker.shotcnt++;
|
||||
}
|
||||
action void A_CheckContinueFire()
|
||||
|
|
@ -609,13 +617,16 @@ Class HeavyMahSheenGun : SWWMWeapon
|
|||
}
|
||||
Stop;
|
||||
Flash:
|
||||
XZW0 A 2
|
||||
XZW0 A 2 Bright
|
||||
{
|
||||
let psp = player.GetPSprite(PSP_FLASH);
|
||||
psp.frame = Random[GunFlash](0,7);
|
||||
let l = Spawn("SWWMWeaponLight",pos);
|
||||
l.target = self;
|
||||
l.Args[3] -= psp.frame*5;
|
||||
let psp = player.FindPSprite(PSP_FLASH);
|
||||
psp.frame = Random[GunFlash](0,23);
|
||||
if ( (invoker.firespeed != 2) || !(invoker.shotcnt%3) )
|
||||
{
|
||||
let l = Spawn("SWWMWeaponLight",pos);
|
||||
l.target = self;
|
||||
l.Args[3] -= psp.frame*2;
|
||||
}
|
||||
}
|
||||
Stop;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@ Class SheenTrail : Actor
|
|||
let p = Spawn("SheenPhantom",level.Vec3Offset(oldpos,dir*(i+1)*50.));
|
||||
p.angle = angle;
|
||||
p.pitch = pitch;
|
||||
p.frame = frame;
|
||||
p.frame = special2;
|
||||
p.alpha *= clamp((special1+i*.25)/2.,.25,1.);
|
||||
}
|
||||
// burn the air throughout
|
||||
|
|
|
|||
|
|
@ -334,7 +334,7 @@ Class HellblazerMissile : Actor
|
|||
A_SetRenderStyle(1.0,STYLE_Add);
|
||||
A_SprayDecal("BigRocketBlast",50);
|
||||
A_SetScale(4.5);
|
||||
SWWMUtility.DoExplosion(self,250,320000,200,90);
|
||||
SWWMUtility.DoExplosion(self,320,320000,200,90);
|
||||
A_NoGravity();
|
||||
A_QuakeEx(5,5,5,15,0,1500,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,falloff:500,rollIntensity:.8);
|
||||
A_StopSound(CHAN_BODY);
|
||||
|
|
@ -374,6 +374,7 @@ Class HellblazerMissile : Actor
|
|||
|
||||
void A_SubExpl( double xscale = 1. )
|
||||
{
|
||||
if ( special1 < 8 ) SWWMUtility.DoExplosion(self,80-special1*10,30000-special1*3000,180+special1*15,damagetype:'Fire');
|
||||
special1++;
|
||||
if ( (special1 > 8) || !(special1%2) ) return;
|
||||
int numpt = Random[Hellblazer](0,8-special1);
|
||||
|
|
@ -431,7 +432,7 @@ Class HellblazerCrackshot : HellblazerMissile
|
|||
A_SetRenderStyle(1.0,STYLE_Add);
|
||||
A_SprayDecal("BigRocketBlast",50);
|
||||
A_SetScale(3.);
|
||||
SWWMUtility.DoExplosion(self,200,320000,160,60);
|
||||
SWWMUtility.DoExplosion(self,250,320000,160,60);
|
||||
A_NoGravity();
|
||||
A_QuakeEx(4,4,4,12,0,1200,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,falloff:400,rollIntensity:.6);
|
||||
A_StopSound(CHAN_BODY);
|
||||
|
|
@ -502,7 +503,7 @@ Class HellblazerRavager : HellblazerMissile
|
|||
A_SetRenderStyle(1.0,STYLE_Add);
|
||||
A_SprayDecal("HugeRocketBlast",50);
|
||||
A_SetScale(8.);
|
||||
SWWMUtility.DoExplosion(self,300,320000,300,120);
|
||||
SWWMUtility.DoExplosion(self,400,320000,300,120);
|
||||
A_NoGravity();
|
||||
A_QuakeEx(6,6,6,30,0,2000,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,falloff:800,rollIntensity:1.);
|
||||
A_StopSound(CHAN_BODY);
|
||||
|
|
@ -628,7 +629,7 @@ Class HellblazerWarhead : HellblazerMissile
|
|||
if ( special1 < 40 )
|
||||
{
|
||||
int nhit, nkil;
|
||||
[nhit, nkil] = SWWMUtility.DoExplosion(self,320-special1*8,600000-special1*12000,200+special1*30,flags:DE_COUNTENEMIES);
|
||||
[nhit, nkil] = SWWMUtility.DoExplosion(self,400-special1*10,600000-special1*12000,200+special1*30,flags:DE_COUNTENEMIES,damagetype:'Fire');
|
||||
nkill += nkil;
|
||||
}
|
||||
special1++;
|
||||
|
|
@ -895,7 +896,7 @@ Class HellblazerClusterMini : HellblazerMissile2
|
|||
A_SetRenderStyle(1.0,STYLE_Add);
|
||||
A_SprayDecal("BigRocketBlast",50);
|
||||
A_SetScale(2.5);
|
||||
SWWMUtility.DoExplosion(self,50,200000,150,60);
|
||||
SWWMUtility.DoExplosion(self,80,200000,150,60);
|
||||
A_NoGravity();
|
||||
A_QuakeEx(4,4,4,12,0,1000,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,falloff:400,rollIntensity:.6);
|
||||
A_StopSound(CHAN_BODY);
|
||||
|
|
@ -934,6 +935,7 @@ Class HellblazerClusterMini : HellblazerMissile2
|
|||
}
|
||||
void A_ClusterSubExpl()
|
||||
{
|
||||
if ( special1 < 5 ) SWWMUtility.DoExplosion(self,40-special1*8,20000-special1*4000,120+special1*16);
|
||||
special1++;
|
||||
if ( (special1 > 5) || !(special1%2) ) return;
|
||||
int numpt = Random[Hellblazer](0,5-special1);
|
||||
|
|
@ -1176,7 +1178,7 @@ Class HellblazerRavagerArm : Actor
|
|||
l.ReactionTime = int(2+8*(ReactionTime/25.));
|
||||
l.target = p;
|
||||
}
|
||||
SWWMUtility.DoExplosion(self,15+reactiontime/2,2000+400*reactiontime,300-4*reactiontime,100);
|
||||
SWWMUtility.DoExplosion(self,20+reactiontime/2,2000+400*reactiontime,300-4*reactiontime,100);
|
||||
double spd = min(vel.length()*1.1,50);
|
||||
vel = (vel*.1+(FRandom[ExploS](-1.,1.),FRandom[ExploS](-1.,1.),FRandom[ExploS](-1.,1.))).unit()*spd;
|
||||
Vector3 pvel = (FRandom[ExploS](-1,1),FRandom[ExploS](-1,1),FRandom[ExploS](-1,1)).unit()*FRandom[ExploS](1,5);
|
||||
|
|
@ -1242,7 +1244,7 @@ Class HellblazerWarheadArm : Actor
|
|||
Default
|
||||
{
|
||||
Obituary "$O_HELLBLAZER";
|
||||
DamageType 'Exploded';
|
||||
DamageType 'Fire';
|
||||
PROJECTILE;
|
||||
+THRUACTORS;
|
||||
+BOUNCEONWALLS;
|
||||
|
|
@ -1273,7 +1275,7 @@ Class HellblazerWarheadArm : Actor
|
|||
{
|
||||
Spawn("HellblazerWarheadTrail",pos);
|
||||
int nhit, nkill;
|
||||
[nhit, nkill] = SWWMUtility.DoExplosion(self,20+reactiontime*4,3000+500*reactiontime,120+4*reactiontime,flags:DE_COUNTENEMIES);
|
||||
[nhit, nkill] = SWWMUtility.DoExplosion(self,30+reactiontime*5,3000+500*reactiontime,120+4*reactiontime,flags:DE_COUNTENEMIES);
|
||||
if ( HellblazerWarhead(master) ) HellblazerWarhead(master).nkill += nkill;
|
||||
Vector3 pvel = (FRandom[ExploS](-1,1),FRandom[ExploS](-1,1),FRandom[ExploS](-1,1)).unit()*FRandom[ExploS](1,5);
|
||||
let s = Spawn("SWWMHalfSmoke",pos);
|
||||
|
|
|
|||
|
|
@ -118,13 +118,13 @@ Class Eviscerator : SWWMWeapon
|
|||
if ( invoker.extended )
|
||||
{
|
||||
p.vel *= 1.5;
|
||||
p.lifetime += .1; // slightly reduced point blank damage
|
||||
p.lifetime += .1; // reduced point blank damage (almost halved)
|
||||
}
|
||||
if ( trail < 8 ) p.trailcolor = max(0,trail);
|
||||
else if ( trail == 9 ) p.trailcolor = (i%6)+2;
|
||||
else if ( trail == 10 )
|
||||
{
|
||||
switch ( i%5 )
|
||||
switch ( i%6 )
|
||||
{
|
||||
case 0:
|
||||
case 3:
|
||||
|
|
|
|||
|
|
@ -148,7 +148,7 @@ Class EvisceratorChunk : Actor
|
|||
Radius 2;
|
||||
Height 4;
|
||||
Speed 50;
|
||||
DamageFunction int(clamp((vel.length()-10)*.08,0,15)+(max(0,1-lifetime)**5)*10);
|
||||
DamageFunction int(clamp((vel.length()-10)*.24,0,15)+(max(0,1-lifetime)**5)*15);
|
||||
DamageType 'shot';
|
||||
BounceFactor 1.0;
|
||||
WallBounceFactor 1.0;
|
||||
|
|
@ -333,7 +333,7 @@ Class EvisceratorChunk : Actor
|
|||
lasthit = victim;
|
||||
// don't knock back if already dead
|
||||
int oldamt = SWWMDamageAccumulator.GetAmount(victim);
|
||||
if ( victim.health-oldamt > 0 ) SWWMUtility.DoKnockback(victim,vel.unit(),12000);
|
||||
if ( victim.health-oldamt > 0 ) SWWMUtility.DoKnockback(victim,vel.unit(),15000);
|
||||
// gather damage
|
||||
int dmg = GetMissileDamage(0,0);
|
||||
SWWMDamageAccumulator.Accumulate(victim,dmg,self,target,damagetype);
|
||||
|
|
@ -356,7 +356,7 @@ Class EvisceratorChunk : Actor
|
|||
l.pitch = -pitch;
|
||||
A_StartSound("eviscerator/hith",CHAN_WEAPON,CHANF_OVERLAP,.1);
|
||||
}
|
||||
vel *= .75; // reduce velocity as it rips
|
||||
vel *= FRandom[Eviscerator](.8,.9); // reduce velocity as it rips
|
||||
A_Gravity();
|
||||
gravity = clamp(.35-vel.length()/200.,.15,.35);
|
||||
return 1;
|
||||
|
|
@ -374,7 +374,6 @@ Class EvisceratorChunk : Actor
|
|||
A_HandleBounce();
|
||||
lasthit = victim;
|
||||
}
|
||||
if ( !Random[Eviscerator](0,3) ) A_AlertMonsters(swwm_uncapalert?0:900);
|
||||
return 1;
|
||||
}
|
||||
States
|
||||
|
|
@ -480,7 +479,7 @@ Class EvisceratorProj : Actor
|
|||
A_SprayDecal("BigRocketBlast",50);
|
||||
A_NoGravity();
|
||||
A_SetScale(3.);
|
||||
SWWMUtility.DoExplosion(self,100,120000,150,80);
|
||||
SWWMUtility.DoExplosion(self,120,120000,150,80);
|
||||
A_QuakeEx(6,6,6,20,0,1200,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,falloff:300,rollIntensity:.7);
|
||||
A_StartSound("eviscerator/shell",CHAN_WEAPON,attenuation:.5);
|
||||
A_StartSound("eviscerator/shell",CHAN_VOICE,attenuation:.3);
|
||||
|
|
@ -519,7 +518,7 @@ Class EvisceratorProj : Actor
|
|||
else if ( trail == 9 ) p.trailcolor = (i%6)+2;
|
||||
else if ( trail == 10 )
|
||||
{
|
||||
switch ( i%5 )
|
||||
switch ( i%6 )
|
||||
{
|
||||
case 0:
|
||||
case 3:
|
||||
|
|
|
|||