Ynykron finetuning.

This commit is contained in:
Mari the Deer 2020-06-23 01:52:44 +02:00
commit 2200bc061f
7 changed files with 78 additions and 52 deletions

View file

@ -150,9 +150,10 @@ decal RipBlast
decal YnykronBlast
{
pic mcblast
translucent 0.9
shade "00 00 00"
x-scale 0.6
y-scale 0.6
x-scale 0.8
y-scale 0.8
randomflipx
randomflipy
}
@ -303,4 +304,4 @@ decalgroup BigBulletChip
BigBulletChip3 1
BigBulletChip4 1
BigBulletChip5 1
}
}

View file

@ -97,7 +97,7 @@ SWWM_LORETXT_NANA2 = "\cxFull Name:\c-\n\cf Nana Miyamoto\c-\n\cxNationality:\c-
SWWM_LORETAG_YNYKRON = "Ynykron Artifact";
SWWM_LORETAB_YNYKRON = "Item";
SWWM_LOREREL_YNYKRON = "Unissix;Nedoshiaan;Saya";
SWWM_LORETXT_YNYKRON = "\cxDesignation:\c-\n\cf Ynykron Artifact\c-\n\cxManufacturer:\c-\n\cf Nukurines Mei Mess\c-\n\cf Unissix Crafts (current)\c-\n\cxClassification:\c-\n\cf Concentrated Energy Cannon\c-\n\nThe \cfYnykron (Divine Fury)\c- is a high power energy weapon capable of efficiently erasing any living entities struck by its beam shot, both organic or artificial, stopping only once it hits a sufficiently solid surface.\n\nIn its original incarnation, built by \cfNukurines Mei Mess\c- during his time serving as lead engineer of \cfNedoshiaan\c-'s empire, it could stand to even destroy the physical bodies of deities. As ammunition, it employed the concentrated energy extracted from slaves who had undergone years of constant torture, their suffering acting as fuel to bring forth this \"Divine Fury\".\n\nWhen it was retrieved from the depths of the dead planet along with the other artifacts, it fell into the hands of the \cfUnissix Clan\c-, and by extension, \cfMisa Unissix\c-.\n\nMisa had a lot of interest in weapons of legend, specifically, in making her own versions of them, so she saw this as a new challenge for her skills. Although at first she hit a wall due to the inability to dismantle and properly reverse engineer it, she eventually managed to get her hands on the original blueprints of the artifact, thanks to her grandfather from her father's side, \cfNekorosen Nerukousei\c-, who was an old friend of Mei Mess.\n\nThe replica Ynykron uses a highly volatile mixture of exotic elements, in stable crystalized form, with considerable destructive power once a simple beam of light is directed through it. Misa sees this as a more \"ethically reasonable\" alternative to the intended ammunition of the original, additionally having the benefit of being easy to manufacture with the right materials and time.\n\nIt should be noted that this weapon's usage is highly restricted. Special permission from a member of the Unissix clan is required.\n\n\cfPrimary Fire:\c- Charges the shot. Once complete, pulling the trigger releases it.\n\n\cfSecondary Fire:\c- Reorients the ammo box, allowing for an alternate fire mode. A \"vortex shot\", a concentrated negative energy void that will pull in everything around itself for a short time, tearing it apart with strong tidal forces. It is generally not recommended to ever use this.\n\n\cfReloading:\c- If the weapon is charging, or ready for shooting, this will be cancelled and no ammunition will be used, but the weapon will have to vent for a while. Otherwise, a new crystal is loaded.\n\n\cxSaya's Notes:\c-\n\cfSometimes I wonder if Misa actually realizes the dangers of the stuff she makes. This thing... it's maybe a bit too much, you know... Even compared to all the other stuff in the arsenal. I still ended up accepting it, anyway, because you know how I am, and how cute Misa is. I can't say no to that face.\c-\n\n\cfSo yeah, here it is, \"God's Cumshot\" in all its glory. A motherfucking blast of blinding whiteness that just... absolutely fucking obliterates everything it's aimed at. Sure is a weapon, huh?\c-\n\n\cfAlso, that alternate mode... I know you'll probably do it anyway out of curiosity. Just... be careful, okay?\c-\n\n\cfOh, and just so you know, this thing is the reason why I make backups of your core before every mission. With any other weapon, I wouldn't be worried 'cause your body's pretty damn resilient, but this fucking thing is on a different level entirely. I gotta say it again, BE VERY CAREFUL. If you get caught in the blast you're gone forever, got it?\c-";
SWWM_LORETXT_YNYKRON = "\cxDesignation:\c-\n\cf Ynykron Artifact\c-\n\cxManufacturer:\c-\n\cf Nukurines Mei Mess\c-\n\cf Unissix Crafts (current)\c-\n\cxClassification:\c-\n\cf Concentrated Energy Cannon\c-\n\nThe \cfYnykron (Divine Fury)\c- is a high power energy weapon capable of efficiently erasing any living entities struck by its beam shot, both organic or artificial.\n\nIn its original incarnation, built by \cfNukurines Mei Mess\c- during his time serving as lead engineer of \cfNedoshiaan\c-'s empire, it could stand to even destroy the physical bodies of deities. As ammunition, it employed the concentrated energy extracted from slaves who had undergone years of constant torture, their suffering acting as fuel to bring forth this \"Divine Fury\".\n\nWhen it was retrieved from the depths of the dead planet along with the other artifacts, it fell into the hands of the \cfUnissix Clan\c-, and by extension, \cfMisa Unissix\c-.\n\nMisa had a lot of interest in weapons of legend, specifically, in making her own versions of them, so she saw this as a new challenge for her skills. Although at first she hit a wall due to the inability to dismantle and properly reverse engineer it, she eventually managed to get her hands on the original blueprints of the artifact, thanks to her grandfather from her father's side, \cfNekorosen Nerukousei\c-, who was an old friend of Mei Mess.\n\nThe replica Ynykron uses a highly volatile mixture of exotic elements, in stable crystalized form, with considerable destructive power once a simple beam of light is directed through it. Misa sees this as a more \"ethically reasonable\" alternative to the intended ammunition of the original, additionally having the benefit of being easy to manufacture with the right materials and time.\n\nIt should be noted that this weapon's usage is highly restricted. Special permission from a member of the Unissix clan is required.\n\n\cfPrimary Fire:\c- Charges the shot. Once complete, pulling the trigger releases it. The beam's effective range is of approximately 400 meters, after which it will rapidly dissipate. Nothing can stop its advance, walls merely slow it down.\n\n\cfSecondary Fire:\c- Reorients the ammo box, allowing for an alternate fire mode. A \"vortex shot\", a concentrated negative energy void that will pull in everything around itself for a short time, tearing it apart with strong tidal forces. It is generally not recommended to ever use this.\n\n\cfReloading:\c- If the weapon is charging, or ready for shooting, this will be cancelled and no ammunition will be used, but the weapon will have to vent for a while. Otherwise, a new crystal is loaded.\n\n\cxSaya's Notes:\c-\n\cfSometimes I wonder if Misa actually realizes the dangers of the stuff she makes. This thing... it's maybe a bit too much, you know... Even compared to all the other stuff in the arsenal. I still ended up accepting it, anyway, because you know how I am, and how cute Misa is. I can't say no to that face.\c-\n\n\cfSo yeah, here it is, \"God's Cumshot\" in all its glory. A motherfucking blast of blinding whiteness that just... absolutely fucking obliterates everything it's aimed at. Sure is a weapon, huh?\c-\n\n\cfAlso, that alternate mode... I know you'll probably do it anyway out of curiosity. Just... be careful, okay?\c-\n\n\cfOh, and just so you know, this thing is the reason why I make backups of your core before every mission. With any other weapon, I wouldn't be worried 'cause your body's pretty damn resilient, but this fucking thing is on a different level entirely. I gotta say it again, BE VERY CAREFUL. If you get caught in the blast you're gone forever, got it?\c-";
SWWM_LORETAG_SILVERBULLET = "Silver Bullet JET";
SWWM_LORETAB_SILVERBULLET = "Item";
SWWM_LOREREL_SILVERBULLET = "Blackmann;Forx;Explodium";

File diff suppressed because one or more lines are too long

View file

@ -1,2 +1,2 @@
[default]
SWWM_MODVER="\chSWWM \cwGZ\c- r378 (Mon 22 Jun 23:45:53 CEST 2020)";
SWWM_MODVER="\chSWWM \cwGZ\c- r379 (Tue 23 Jun 01:52:44 CEST 2020)";

View file

@ -13,7 +13,7 @@ TXT
\cxClassification:\c-
\cf Concentrated Energy Cannon\c-
The **Ynykron (Divine Fury)** is a high power energy weapon capable of efficiently erasing any living entities struck by its beam shot, both organic or artificial, stopping only once it hits a sufficiently solid surface.
The **Ynykron (Divine Fury)** is a high power energy weapon capable of efficiently erasing any living entities struck by its beam shot, both organic or artificial.
In its original incarnation, built by **Nukurines Mei Mess** during his time serving as lead engineer of **Nedoshiaan**'s empire, it could stand to even destroy the physical bodies of deities. As ammunition, it employed the concentrated energy extracted from slaves who had undergone years of constant torture, their suffering acting as fuel to bring forth this "Divine Fury".
@ -25,7 +25,7 @@ The replica Ynykron uses a highly volatile mixture of exotic elements, in stable
It should be noted that this weapon's usage is highly restricted. Special permission from a member of the Unissix clan is required.
\cfPrimary Fire:\c- Charges the shot. Once complete, pulling the trigger releases it.
\cfPrimary Fire:\c- Charges the shot. Once complete, pulling the trigger releases it. The beam's effective range is of approximately 400 meters, after which it will rapidly dissipate. Nothing can stop its advance, walls merely slow it down.
\cfSecondary Fire:\c- Reorients the ammo box, allowing for an alternate fire mode. A "vortex shot", a concentrated negative energy void that will pull in everything around itself for a short time, tearing it apart with strong tidal forces. It is generally not recommended to ever use this.

View file

@ -9,7 +9,7 @@ TXT
\cxClasificación:\c-
\cf Cañón de Energía Concentrada\c-
El **Ynykron (Furia Divina)** es un arma de energía de alta potencia capaz de borrar eficientemente cualquier criatura viviente que alcance su disparo de rayos, sea orgánica o artificial, deteniéndose solo en cuanto alcanza una superficie suficientemente sólida.
El **Ynykron (Furia Divina)** es un arma de energía de alta potencia capaz de borrar eficientemente cualquier criatura viviente que alcance su disparo de rayos, sea orgánica o artificial.
En su forma original, construido por **Nukurines Mei Mess** durante su tiempo de servitud como ingeniero jefe del imperio de **Nedoshiaan**, tenía incluso la capacidad de destruír las formas físicas de deidades. Como munición, empleaba la energía concentrada extraída de esclavos que sufrieron años de tortura constante, con su sufrimiento actuando como el combustible que traería consigo esta "Furia Divina".
@ -21,7 +21,7 @@ La réplica de Ynykron usa una mezcla altamente volátil de elementos exóticos,
Es importante notar que el uso de este arma es altamente restringido. Se requiere un permiso especial de un miembro del clan Unissix.
\cfFuego Primario:\c- Carga un disparo. Al finalizar, se libera apretando el gatillo de nuevo.
\cfFuego Primario:\c- Carga un disparo. Al finalizar, se libera apretando el gatillo de nuevo. El rango efectivo del rayo es de 400 metros, aproximadamente, tras los cuales se disipará rápidamente. Nada puede detener su avance, las paredes solo lo ralentizan.
\cfFuego Secundario:\c- Reorienta la caja de munición, permitiendo un modo de fuego alternativo. Un "disparo de vórtice", un vacío concentrado de energía negativa que atraerá todo a su alrededor durante un espacio corto de tiempo, destrozándolo con potentes fuerzas gravitacionales. Generalmente no se recomienda usar esto nunca.

View file

@ -85,7 +85,7 @@ Class YnykronImpactLight : PaletteLight
Default
{
Tag "WhiteExpl2";
ReactionTime 50;
ReactionTime 40;
Args 0,0,0,300;
}
}
@ -105,7 +105,7 @@ Class YnykronBeamLight : PaletteLight
Default
{
Tag "WhiteExpl2";
ReactionTime 200;
ReactionTime 80;
Args 0,0,0,600;
}
}
@ -164,6 +164,7 @@ Class YnykronImpactTrail : Actor
+FORCEXYBILLBOARD;
+NOTELEPORT;
Scale 2.;
Alpha .4;
}
States
{
@ -189,6 +190,7 @@ Class YnykronImpact : Actor
+NODAMAGETHRUST;
+FORCERADIUSDMG;
+FORCEXYBILLBOARD;
+OLDRADIUSDMG;
}
override void PostBeginPlay()
{
@ -198,27 +200,36 @@ Class YnykronImpact : Actor
{
// no need to call A_AlertMonsters on this, all monsters on the entire map were already alerted by the initial shot
A_QuakeEx(4,4,4,50,0,1200,"",QF_RELATIVE|QF_SCALEDOWN,falloff:600,rollintensity:.6);
A_StartSound("ynykron/hit",CHAN_VOICE,CHANF_DEFAULT,.15,0.);
if ( YnykronShot(master) )
{
if ( YnykronShot(master).lastimpact < gametic )
master.A_StartSound("ynykron/hit",CHAN_VOICE,CHANF_OVERLAP,1.,0.);
YnykronShot(master).lastimpact = gametic+5;
}
else A_StartSound("ynykron/hit",CHAN_VOICE,CHANF_DEFAULT,1.,0.);
}
Scale *= FRandom[ExploS](0.8,1.1);
Scale.x *= RandomPick[ExploS](-1,1);
Scale.y *= RandomPick[ExploS](-1,1);
int numpt = Random[ExploS](5,10);
int numpt = Random[ExploS](3,5);
for ( int i=0; i<numpt; i++ )
{
Vector3 pvel = (FRandom[ExploS](-1,1),FRandom[ExploS](-1,1),FRandom[ExploS](-1,1)).unit()*FRandom[ExploS](1,8);
let s = Spawn("SWWMSmoke",pos);
s.vel = pvel;
s.special1 = Random[ExploS](2,6);
s.special1 = Random[ExploS](2,10);
s.scale *= 3.;
s.alpha *= .4;
}
numpt = Random[ExploS](4,8);
for ( int i=0; i<numpt; i++ )
if ( bAMBUSH )
{
Vector3 pvel = (FRandom[ExploS](-1,1),FRandom[ExploS](-1,1),FRandom[ExploS](-1,1)).unit()*FRandom[ExploS](2,24);
let s = Spawn("SWWMChip",pos);
s.vel = pvel;
numpt = Random[ExploS](2,4);
for ( int i=0; i<numpt; i++ )
{
Vector3 pvel = (FRandom[ExploS](-1,1),FRandom[ExploS](-1,1),FRandom[ExploS](-1,1)).unit()*FRandom[ExploS](2,24);
let s = Spawn("SWWMChip",pos);
s.vel = pvel;
}
}
Spawn("YnykronImpactLight",pos);
Spawn("YnykronImpactRing",pos);
@ -235,11 +246,12 @@ Class YnykronImpact : Actor
if ( isFrozen() ) return;
special1++;
if ( special1 != 3 ) return;
let bt = BlockThingsIterator.Create(self,250);
SWWMHandler.DoBlast(self,400,15000);
let bt = BlockThingsIterator.Create(self,500);
while ( bt.Next() )
{
let t = bt.Thing;
if ( !t || !t.bSHOOTABLE || !SWWMUtility.SphereIntersect(t,pos,250) || !CheckSight(t,SF_IGNOREVISIBILITY|SF_IGNOREWATERBOUNDARY) ) continue;
if ( !t || !t.bSHOOTABLE || !SWWMUtility.SphereIntersect(t,pos,300) ) continue;
if ( YnykronShot(master) && (YnykronShot(master).hitlist.Find(t) < YnykronShot(master).hitlist.Size()) )
continue;
Vector3 dirto = level.Vec3Diff(pos,t.Vec3Offset(0,0,t.Height/2));
@ -261,12 +273,13 @@ Class YnykronImpact : Actor
YnykronShot(master).hitlist.Push(t);
if ( special2 > 4 ) continue;
// spawn blast that will propagate
let b = Spawn("YnykronImpact",level.Vec3Offset(pos,dirto*min(250,dist)));
let b = Spawn("YnykronImpact",level.Vec3Offset(pos,dirto*min(300,dist)));
b.target = target;
b.master = master;
b.angle = atan2(dirto.y,dirto.x);
b.pitch = asin(-dirto.z);
b.special2 = special2+1;
b.special2 = special2+(Random[Ynykron](0,4)?1:0);
b.special1 = Random[Ynykron](-2,0);
if ( YnykronShot(master) )
YnykronShot(master).blastcount++;
}
@ -345,14 +358,14 @@ Class YnykronBeamTrail : Actor
{
Super.Tick();
if ( isFrozen() ) return;
A_FadeOut(FRandom[Ynykron](.001,.002));
A_FadeOut(FRandom[Ynykron](.0005,.001));
}
Default
{
RenderStyle "Add";
Radius 0.1;
Height 0;
Alpha .2;
Alpha .1;
+NOGRAVITY;
+NOBLOCKMAP;
+NOTELEPORT;
@ -392,12 +405,12 @@ Class YnykronBeam : Actor
let b = Spawn("InvisibleSplasher",t.WaterHitList[i].hitpos);
b.A_CheckTerrain();
}
for ( int i=0; i<t.Results.Distance; i+=16 )
for ( int i=0; i<t.Results.Distance; i+=32 )
{
if ( Random[Ynykron](0,8) ) continue;
let b = Spawn("SWWMSmoke",level.Vec3Offset(pos,x*i));
b.Scale *= FRandom[Ynykron](1.6,1.8);
b.special1 = Random[Ynykron](3,6);
b.special1 = Random[Ynykron](3,10);
b.A_SetRenderStyle(.3,STYLE_AddShaded);
b.vel += x*FRandom[Ynykron](.1,.5);
}
@ -405,6 +418,7 @@ Class YnykronBeam : Actor
{
if ( YnykronShot(master) && (YnykronShot(master).hitlist.Find(t.HitList[i].hitactor) < YnykronShot(master).hitlist.Size()) )
continue;
SWWMHandler.DoKnockback(t.hitlist[i].hitactor,x,15000);
// voodoo dolls just get erased (how convenient)
// otherwise instantly vaporize the fucker
if ( t.hitlist[i].hitactor.player && (t.hitlist[i].hitactor.player.mo != t.hitlist[i].hitactor) ) t.hitlist[i].hitactor.Destroy();
@ -455,6 +469,7 @@ Class YnykronBeam : Actor
b.angle = atan2(norm.y,norm.x);
b.pitch = asin(-norm.z);
b.A_SprayDecal("YnykronBlast",-172);
b.bAMBUSH = true;
if ( YnykronShot(master) ) YnykronShot(master).blastcount++;
// find exit point
int maxdist = (25600-special1);
@ -471,12 +486,11 @@ Class YnykronBeam : Actor
next.master = master;
next.special1 = special1+i;
next.special2 = i/40;
next.bAMBUSH = bAMBUSH;
break;
}
return;
}
if ( bAMBUSH && ((special1%256) < 128) ) // only central beam emits light
if ( ((special1%256) < 128) && !Random[Ynykron](0,3) )
Spawn("YnykronBeamLight",level.Vec3Offset(pos,x*64));
if ( special1 >= 25600 )
{
@ -501,34 +515,35 @@ Class YnykronBeam : Actor
next.target = target;
next.master = master;
next.special1 = special1+128;
next.bAMBUSH = bAMBUSH;
next.SetStateLabel("TrailSpawn");
}
override void PostBeginPlay()
{
Super.PostBeginPlay();
// central beam sprite trail
if ( !bAMBUSH ) return;
if ( YnykronShot(master) )
YnykronShot(master).beamcount++;
// sprite trail
Vector3 x, y, z;
[x, y, z] = swwm_CoordUtil.GetAxes(pitch,angle,roll);
for ( int i=0; i<128; i+=16 )
for ( int i=0; i<128; i+=8 )
{
if ( Random[Ynykron](0,3) ) return;
let t = Spawn("YnykronBeamTrail",level.Vec3Offset(pos,x*i));
t.Scale *= .3+.001*(special1+i);
t.Scale *= .15+.0005*(special1+i);
}
}
override void Tick()
{
Super.Tick();
if ( isFrozen() ) return;
A_FadeOut(FRandom[Ynykron](.001,.003));
A_FadeOut(FRandom[Ynykron](.001,.002));
special2++;
if ( special2 == 2 )
SpreadOut();
}
override void OnDestroy()
{
if ( YnykronShot(master) && !special1 )
if ( YnykronShot(master) )
YnykronShot(master).beamcount--;
Super.OnDestroy();
}
@ -607,12 +622,20 @@ Class DelayedWallBeam : Actor
+NOTELEPORT;
+DONTSPLASH;
}
override void PostBeginPlay()
{
Super.PostBeginPlay();
if ( YnykronShot(master) )
YnykronShot(master).beamcount++;
}
override void Tick()
{
Super.Tick();
if ( isFrozen() ) return;
special2--;
if ( special2 > 0 ) return;
if ( YnykronShot(master) )
YnykronShot(master).beamcount--;
let next = Spawn("YnykronBeam",pos);
next.angle = angle;
next.pitch = pitch;
@ -620,7 +643,6 @@ Class DelayedWallBeam : Actor
next.target = target;
next.master = master;
next.special1 = special1;
next.bAMBUSH = bAMBUSH;
next.SetStateLabel("TrailSpawn");
// exit blast
Vector3 x = (cos(angle)*cos(pitch),sin(angle)*cos(pitch),-sin(pitch));
@ -630,6 +652,7 @@ Class DelayedWallBeam : Actor
b.angle = atan2(x.y,x.x);
b.pitch = asin(-x.z);
b.A_SprayDecal("YnykronBlast",-172);
b.bAMBUSH = true;
if ( YnykronShot(master) )
YnykronShot(master).blastcount++;
// trace back to get the proper "exit surface" so we can trigger lines if needed
@ -657,7 +680,7 @@ Class YnykronRing : Actor
Radius 0.1;
Height 0;
Scale .6;
Alpha .1;
Alpha .3;
+NOGRAVITY;
+NOBLOCKMAP;
+FORCEXYBILLBOARD;
@ -669,7 +692,7 @@ Class YnykronRing : Actor
States
{
Spawn:
XRG4 AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXX 1 Bright A_SetScale(scale.x*0.988);
XRG4 ABCDEFGHIJKLMNOPQRSTUVWX 3 Bright;
Stop;
}
}
@ -679,6 +702,7 @@ Class YnykronImpactRing : YnykronRing
{
Default
{
Scale 1.;
Alpha .8;
}
States
@ -694,6 +718,7 @@ Class YnykronShot : Actor
Array<Actor> hitlist;
int beamcount;
int blastcount;
int lastimpact;
Default
{
@ -722,8 +747,8 @@ Class YnykronShot : Actor
if ( i==0 ) dir = x; // central beam always precise
else
{
a = j+FRandom[Ynykron](-15.,15.);
s = i+FRandom[Ynykron](-.01,.01);
a = j+FRandom[Ynykron](-5.,5.);
s = i+FRandom[Ynykron](-.02,.02);
dir = (x+y*cos(a)*s+z*sin(a)*s).unit();
}
let b = Spawn("YnykronBeam",pos);
@ -732,8 +757,6 @@ Class YnykronShot : Actor
b.angle = atan2(dir.y,dir.x);
b.pitch = asin(-dir.z);
b.roll = FRandom[Ynykron](0,360);
b.bAMBUSH = (i==0); // central beam spawns trail sprites, makes cone more "dense"
beamcount++;
}
rings += 4;
}
@ -747,17 +770,21 @@ Class YnykronShot : Actor
if ( !(special1%10) && (special1 <= 30) )
{
Vector3 dir = (cos(angle)*cos(pitch),sin(angle)*cos(pitch),-sin(pitch));
for ( int i=0; i<8; i++ )
for ( int i=0; i<16; i++ )
{
let r = Spawn("YnykronRing",level.Vec3Offset(pos,dir*(special1*16+i*2)));
r.scale *= special1/10.;
r.scale *= special1/8.;
r.angle = angle;
r.pitch = pitch;
r.roll = FRandom[Ynykron](0,360);
}
}
// wait until we're no longer needed and all effects are over
if ( IsActorPlayingSound(CHAN_VOICE) || (beamcount > 0) || (blastcount > 0) ) return;
if ( IsActorPlayingSound(CHAN_VOICE) || (beamcount > 0) || (blastcount > 0) )
{
special1 = min(special1,50);
return;
}
// we're done here, but wait for a while just in case
if ( special1 > 350 ) Destroy();
}
@ -846,7 +873,7 @@ Class Ynykron : SWWMWeapon
for ( Actor a=s.thinglist; a; a=a.snext )
a.LastHeard = self;
}
A_QuakeEx(9,9,9,25,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:2.5);
A_QuakeEx(9,9,9,4,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:2.5);
A_ZoomFactor(.7,ZOOM_INSTANT);
A_ZoomFactor(1.);
A_PlayerFire();
@ -886,9 +913,9 @@ Class Ynykron : SWWMWeapon
{
let s = Spawn("SWWMSmoke",origin);
s.scale *= 2.4;
s.alpha *= .5*invoker.specialf1;
s.alpha *= .4*invoker.specialf1;
s.special1 = Random[Ynykron](2,8);
s.vel += x*FRandom[Ynykron](-20.,-4.)+y*FRandom[Ynykron](-1.,1.)+z*FRandom[Ynykron](-1.,1.);
s.vel += x*FRandom[Ynykron](-40.,-4.)*invoker.specialf1+y*FRandom[Ynykron](-1.,1.)+z*FRandom[Ynykron](-1.,1.);
}
invoker.specialf1 -= .2;
}
@ -954,8 +981,6 @@ Class Ynykron : SWWMWeapon
Select:
XZW2 L 2
{
if ( player == players[consoleplayer] )
Console.Printf("\cgYNYKRON NOT YET FULLY IMPLEMENTED\c-");
invoker.ventcooldown = Random[Ynykron](6,15);
A_StartSound("ynykron/idle",CHAN_WEAPONEXTRA,CHANF_LOOPING,.3,4.);
if ( invoker.chargelevel > 0. )