Release Candidate 4 (may be final):
- Spent mags for Automag, Flak Cannon and Demolisher (needs updated DT). - Betamag defaults to both having the 0.83 skin, other options put on add-ons. - Adjustments to bullet casings. - Fixed flames producing water splashes. - Fixed female models having male gibs. - Corrected ASMD ball hit behavior to match Unreal. - Added bubble trail to Stinger when underwater.
This commit is contained in:
parent
32698cf0e4
commit
ff01ab2146
25 changed files with 182 additions and 21 deletions
|
|
@ -26,6 +26,21 @@ Model "UCasing"
|
||||||
FrameIndex PCAS A 0 0
|
FrameIndex PCAS A 0 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Model "AutomagMag"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 0 "AutoMagSpentClip_d.3d"
|
||||||
|
Skin 0 "Automa1.png"
|
||||||
|
Scale 0.06 0.06 0.072
|
||||||
|
ZOffset 1
|
||||||
|
USEACTORPITCH
|
||||||
|
USEACTORROLL
|
||||||
|
USEROTATIONCENTER
|
||||||
|
Rotation-Center 0 0 1
|
||||||
|
|
||||||
|
FrameIndex PCAS A 0 0
|
||||||
|
}
|
||||||
|
|
||||||
Model "Automag"
|
Model "Automag"
|
||||||
{
|
{
|
||||||
Path "models"
|
Path "models"
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,7 @@ Model "BCasing"
|
||||||
|
|
||||||
FrameIndex PCAS A 0 0
|
FrameIndex PCAS A 0 0
|
||||||
}
|
}
|
||||||
|
|
||||||
Model "BCasing2"
|
Model "BCasing2"
|
||||||
{
|
{
|
||||||
Path "models"
|
Path "models"
|
||||||
|
|
|
||||||
|
|
@ -83,6 +83,22 @@ Model "BigCasing"
|
||||||
FrameIndex PCAS A 0 0
|
FrameIndex PCAS A 0 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Model "BigMag"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 0 "BigGMag_d.3d"
|
||||||
|
Skin 0 "JBigGun1.png"
|
||||||
|
Scale 0.1 0.1 0.12
|
||||||
|
AngleOffset 90
|
||||||
|
ZOffset 2.5
|
||||||
|
USEACTORPITCH
|
||||||
|
USEACTORROLL
|
||||||
|
USEROTATIONCENTER
|
||||||
|
Rotation-Center 0 0 2.5
|
||||||
|
|
||||||
|
FrameIndex PCAS A 0 0
|
||||||
|
}
|
||||||
|
|
||||||
Model "BigGun"
|
Model "BigGun"
|
||||||
{
|
{
|
||||||
Path "models"
|
Path "models"
|
||||||
|
|
|
||||||
|
|
@ -53,6 +53,21 @@ Model "OLSMP"
|
||||||
FrameIndex AMUZ I 2 0
|
FrameIndex AMUZ I 2 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Model "OLSMPMag"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 0 "OLSMPSpentClip_d.3d"
|
||||||
|
Skin 0 "OLSMP.png"
|
||||||
|
Scale 0.06 0.06 0.072
|
||||||
|
ZOffset 1
|
||||||
|
USEACTORPITCH
|
||||||
|
USEACTORROLL
|
||||||
|
USEROTATIONCENTER
|
||||||
|
Rotation-Center 0 0 1
|
||||||
|
|
||||||
|
FrameIndex PCAS A 0 0
|
||||||
|
}
|
||||||
|
|
||||||
Model "OLSMP"
|
Model "OLSMP"
|
||||||
{
|
{
|
||||||
Path "models"
|
Path "models"
|
||||||
|
|
|
||||||
|
|
@ -52,6 +52,22 @@ Model "UFlakSlug"
|
||||||
FrameIndex FSLG A 0 0
|
FrameIndex FSLG A 0 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Model "UFlakMag"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 0 "FlakShSpent_d.3d"
|
||||||
|
Skin 0 "Jflakshel1.png"
|
||||||
|
Scale 0.2 0.2 0.24
|
||||||
|
AngleOffset 90
|
||||||
|
ZOffset 1
|
||||||
|
USEACTORPITCH
|
||||||
|
USEACTORROLL
|
||||||
|
USEROTATIONCENTER
|
||||||
|
Rotation-Center 0 0 1
|
||||||
|
|
||||||
|
FrameIndex PCAS A 0 0
|
||||||
|
}
|
||||||
|
|
||||||
Model "UFlakCannon"
|
Model "UFlakCannon"
|
||||||
{
|
{
|
||||||
Path "models"
|
Path "models"
|
||||||
|
|
|
||||||
Binary file not shown.
Binary file not shown.
|
Before Width: | Height: | Size: 54 KiB After Width: | Height: | Size: 17 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 54 KiB After Width: | Height: | Size: 17 KiB |
BIN
models/FlakShSpent_a.3d
Normal file
BIN
models/FlakShSpent_a.3d
Normal file
Binary file not shown.
BIN
models/FlakShSpent_d.3d
Normal file
BIN
models/FlakShSpent_d.3d
Normal file
Binary file not shown.
|
|
@ -257,6 +257,7 @@ quadshot/shell4 qshell4
|
||||||
quadshot/shell5 qshell5
|
quadshot/shell5 qshell5
|
||||||
quadshot/shell6 qshell6
|
quadshot/shell6 qshell6
|
||||||
$random quadshot/shell { quadshot/shell1 quadshot/shell2 quadshot/shell3 quadshot/shell4 quadshot/shell5 quadshot/shell6 }
|
$random quadshot/shell { quadshot/shell1 quadshot/shell2 quadshot/shell3 quadshot/shell4 quadshot/shell5 quadshot/shell6 }
|
||||||
|
$attenuation quadshot/shell 2
|
||||||
|
|
||||||
betamag/select oldasel
|
betamag/select oldasel
|
||||||
betamag/fire oldmag
|
betamag/fire oldmag
|
||||||
|
|
@ -301,8 +302,12 @@ big/dry bigmdryf
|
||||||
big/punch bigmejct
|
big/punch bigmejct
|
||||||
big/reload bigmrelo
|
big/reload bigmrelo
|
||||||
big/shell bigmshel
|
big/shell bigmshel
|
||||||
|
$attenuation big/shell 2
|
||||||
big/blast bigmhit
|
big/blast bigmhit
|
||||||
$limit big/blast 16
|
$limit big/blast 16
|
||||||
|
big/bounce bigmagb
|
||||||
|
$volume big/bounce 0.5
|
||||||
|
$attenuation big/bounce 3
|
||||||
|
|
||||||
smini/select sminisel
|
smini/select sminisel
|
||||||
smini/fire sminione
|
smini/fire sminione
|
||||||
|
|
|
||||||
BIN
sounds/BigMagB.ogg
Normal file
BIN
sounds/BigMagB.ogg
Normal file
Binary file not shown.
|
|
@ -290,30 +290,27 @@ Class ViewASMDSpark : ShockSpark
|
||||||
|
|
||||||
Class ASMDHitbox : ShockHitbox
|
Class ASMDHitbox : ShockHitbox
|
||||||
{
|
{
|
||||||
override void Tick()
|
override int DamageMobj( Actor inflictor, Actor source, int damage, Name mod, int flags, double angle )
|
||||||
{
|
{
|
||||||
Super.Tick();
|
if ( mod == 'jolted' )
|
||||||
if ( !target ) return;
|
return 0;
|
||||||
let t = ThinkerIterator.Create("ASMDHitbox");
|
if ( !bAMBUSH )
|
||||||
Actor a;
|
|
||||||
while ( a = Actor(t.Next()) )
|
|
||||||
{
|
{
|
||||||
if ( (a == self) || !(a is 'ASMDHitbox') || a.bAMBUSH || (Distance3D(a) > radius*2) ) continue;
|
bAMBUSH = true;
|
||||||
a.bAMBUSH = true;
|
if ( target && target.InStateSequence(target.CurState,target.FindState("Spawn")) )
|
||||||
if ( a.target && a.target.InStateSequence(a.target.CurState,a.target.FindState("Spawn")) )
|
target.ExplodeMissile();
|
||||||
a.target.ExplodeMissile();
|
|
||||||
if ( !bAMBUSH )
|
|
||||||
{
|
|
||||||
bAMBUSH = true;
|
|
||||||
if ( target && target.InStateSequence(target.CurState,target.FindState("Spawn")) )
|
|
||||||
target.ExplodeMissile();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
override bool CanCollideWith( Actor other, bool passive )
|
||||||
|
{
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
Default
|
Default
|
||||||
{
|
{
|
||||||
Radius 6;
|
Radius 6;
|
||||||
Height 12;
|
Height 12;
|
||||||
|
+SHOOTABLE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -325,7 +322,7 @@ Class ASMDBall : Actor
|
||||||
|
|
||||||
override int SpecialMissileHit( Actor victim )
|
override int SpecialMissileHit( Actor victim )
|
||||||
{
|
{
|
||||||
if ( victim == b ) return 1;
|
if ( victim is 'ASMDHitbox' ) return 1;
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
override void PostBeginPlay()
|
override void PostBeginPlay()
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,10 @@ Class UCasing : UTCasing
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Class AutomagMag : EnforcerMag
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
Class Automag : UnrealWeapon
|
Class Automag : UnrealWeapon
|
||||||
{
|
{
|
||||||
int ClipCount, SlaveClipCount;
|
int ClipCount, SlaveClipCount;
|
||||||
|
|
@ -248,6 +252,8 @@ Class Automag : UnrealWeapon
|
||||||
}
|
}
|
||||||
origin = level.Vec3Offset(origin,x*8+ydir*y*6-z*2);
|
origin = level.Vec3Offset(origin,x*8+ydir*y*6-z*2);
|
||||||
let c = Spawn("UCasing",origin);
|
let c = Spawn("UCasing",origin);
|
||||||
|
c.angle = angle;
|
||||||
|
c.pitch = pitch;
|
||||||
c.vel = x*FRandom[Junk](-1.5,1.5)+y*ydir*FRandom[Junk](2,4)+z*FRandom[Junk](2,3);
|
c.vel = x*FRandom[Junk](-1.5,1.5)+y*ydir*FRandom[Junk](2,4)+z*FRandom[Junk](2,3);
|
||||||
}
|
}
|
||||||
override String GetObituary( Actor victim, Actor inflictor, Name mod, bool playerattack )
|
override String GetObituary( Actor victim, Actor inflictor, Name mod, bool playerattack )
|
||||||
|
|
@ -529,6 +535,13 @@ Class Automag : UnrealWeapon
|
||||||
if ( self is 'UTPlayer' )
|
if ( self is 'UTPlayer' )
|
||||||
UTPlayer(self).PlayReloading();
|
UTPlayer(self).PlayReloading();
|
||||||
invoker.slavereload = (invoker.slaveactive&&(invoker.slaveclipcount<invoker.default.slaveclipcount)&&(invoker.Ammo1.Amount>0));
|
invoker.slavereload = (invoker.slaveactive&&(invoker.slaveclipcount<invoker.default.slaveclipcount)&&(invoker.Ammo1.Amount>0));
|
||||||
|
Vector3 x, y, z, origin;
|
||||||
|
[x,y,z] = dt_CoordUtil.GetAxes(pitch,angle,roll);
|
||||||
|
origin = level.Vec3Offset(Vec2OffsetZ(0,0,player.viewz),x*4.+y*4.-z*8.);
|
||||||
|
let c = Spawn("AutomagMag",origin);
|
||||||
|
c.angle = angle;
|
||||||
|
c.pitch = pitch;
|
||||||
|
c.vel = vel*.5+x*FRandom[Junk](-.5,.5)+y*FRandom[Junk](-.5,.5)-z*FRandom[Junk](1,2);
|
||||||
}
|
}
|
||||||
AUTS A 0 A_PlaySound("automag/select",CHAN_WEAPON,!Dampener.Active(self)?1.:.1);
|
AUTS A 0 A_PlaySound("automag/select",CHAN_WEAPON,!Dampener.Active(self)?1.:.1);
|
||||||
Goto Ready;
|
Goto Ready;
|
||||||
|
|
@ -557,6 +570,13 @@ Class Automag : UnrealWeapon
|
||||||
if ( self is 'UTPlayer' )
|
if ( self is 'UTPlayer' )
|
||||||
UTPlayer(self).PlayReloading();
|
UTPlayer(self).PlayReloading();
|
||||||
invoker.slavereload = false;
|
invoker.slavereload = false;
|
||||||
|
Vector3 x, y, z, origin;
|
||||||
|
[x,y,z] = dt_CoordUtil.GetAxes(pitch,angle,roll);
|
||||||
|
origin = level.Vec3Offset(Vec2OffsetZ(0,0,player.viewz),x*4.-y*4.-z*8.);
|
||||||
|
let c = Spawn("AutomagMag",origin);
|
||||||
|
c.angle = angle;
|
||||||
|
c.pitch = pitch;
|
||||||
|
c.vel = vel*.5+x*FRandom[Junk](-.5,.5)+y*FRandom[Junk](-.5,.5)-z*FRandom[Junk](1,2);
|
||||||
}
|
}
|
||||||
2UTS A 0 A_PlaySound("automag/select",CHAN_6,!Dampener.Active(self)?1.:.1);
|
2UTS A 0 A_PlaySound("automag/select",CHAN_6,!Dampener.Active(self)?1.:.1);
|
||||||
Goto LeftReady;
|
Goto LeftReady;
|
||||||
|
|
|
||||||
|
|
@ -291,6 +291,8 @@ Class Betamag : UnrealWeapon
|
||||||
}
|
}
|
||||||
origin = level.Vec3Offset(origin,x*5+ydir*y*8-z*2);
|
origin = level.Vec3Offset(origin,x*5+ydir*y*8-z*2);
|
||||||
let c = Spawn(slave?"BCasing2":"BCasing",origin);
|
let c = Spawn(slave?"BCasing2":"BCasing",origin);
|
||||||
|
c.angle = angle;
|
||||||
|
c.pitch = pitch;
|
||||||
c.vel = x*FRandom[Junk](-1.5,1.5)+y*ydir*FRandom[Junk](2,4)+z*FRandom[Junk](2,3);
|
c.vel = x*FRandom[Junk](-1.5,1.5)+y*ydir*FRandom[Junk](2,4)+z*FRandom[Junk](2,3);
|
||||||
}
|
}
|
||||||
override String GetObituary( Actor victim, Actor inflictor, Name mod, bool playerattack )
|
override String GetObituary( Actor victim, Actor inflictor, Name mod, bool playerattack )
|
||||||
|
|
|
||||||
|
|
@ -229,6 +229,30 @@ Class BigCasing : UTCasing
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// hambagah?
|
||||||
|
Class BigMag : UTCasing
|
||||||
|
{
|
||||||
|
Default
|
||||||
|
{
|
||||||
|
BounceSound "big/bounce"; // much heavier sound
|
||||||
|
}
|
||||||
|
override void PostBeginPlay()
|
||||||
|
{
|
||||||
|
Super.PostBeginPlay();
|
||||||
|
heat = 0.;
|
||||||
|
}
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Death:
|
||||||
|
PCAS A -1
|
||||||
|
{
|
||||||
|
pitch = clamp(Normalize180(pitch),-5,5);
|
||||||
|
angle = FRandom[Junk](0,360);
|
||||||
|
}
|
||||||
|
Stop;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Class BigGun : UnrealWeapon
|
Class BigGun : UnrealWeapon
|
||||||
{
|
{
|
||||||
int ClipCount;
|
int ClipCount;
|
||||||
|
|
@ -536,7 +560,18 @@ Class BigGun : UnrealWeapon
|
||||||
A_PlaySound("big/punch",CHAN_WEAPON,Dampener.Active(self)?.3:1.);
|
A_PlaySound("big/punch",CHAN_WEAPON,Dampener.Active(self)?.3:1.);
|
||||||
if ( self is 'UTPlayer' ) UTPlayer(self).PlayReloading();
|
if ( self is 'UTPlayer' ) UTPlayer(self).PlayReloading();
|
||||||
}
|
}
|
||||||
BIGR NOPQRSTUVWXYZ[\] 2;
|
BIGR NOPQRSTUVW 2;
|
||||||
|
BIGR X 2
|
||||||
|
{
|
||||||
|
Vector3 x, y, z, origin;
|
||||||
|
[x,y,z] = dt_CoordUtil.GetAxes(pitch,angle,roll);
|
||||||
|
origin = level.Vec3Offset(Vec2OffsetZ(0,0,player.viewz),x*5.-z*9.);
|
||||||
|
let c = Spawn("BigMag",origin);
|
||||||
|
c.angle = angle;
|
||||||
|
c.pitch = pitch;
|
||||||
|
c.vel = vel*.5+x*FRandom[Junk](-.5,.5)+y*FRandom[Junk](-.5,.5)-z*FRandom[Junk](1,2);
|
||||||
|
}
|
||||||
|
BIGR YZ[\] 2;
|
||||||
BIR2 ABCDEF 2;
|
BIR2 ABCDEF 2;
|
||||||
BIR2 G 2
|
BIR2 G 2
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -63,6 +63,7 @@ Class UFireball : Actor
|
||||||
+FORCERADIUSDMG;
|
+FORCERADIUSDMG;
|
||||||
+NODAMAGETHRUST;
|
+NODAMAGETHRUST;
|
||||||
+FORCEXYBILLBOARD;
|
+FORCEXYBILLBOARD;
|
||||||
|
+DONTSPLASH;
|
||||||
UFireball.SpreadFactor 0.2;
|
UFireball.SpreadFactor 0.2;
|
||||||
UFireball.NumSmokes 1;
|
UFireball.NumSmokes 1;
|
||||||
UFireball.NumSparks 2;
|
UFireball.NumSparks 2;
|
||||||
|
|
|
||||||
|
|
@ -295,6 +295,7 @@ Class UFlame : Actor
|
||||||
+FORCEXYBILLBOARD;
|
+FORCEXYBILLBOARD;
|
||||||
+DROPOFF;
|
+DROPOFF;
|
||||||
+NOBLOCKMONST;
|
+NOBLOCKMONST;
|
||||||
|
+DONTSPLASH;
|
||||||
//+THRUIMPASSABLE; // gonna have to implement this
|
//+THRUIMPASSABLE; // gonna have to implement this
|
||||||
}
|
}
|
||||||
States
|
States
|
||||||
|
|
|
||||||
|
|
@ -61,6 +61,10 @@ Class OLSMPAmmo : Ammo
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Class OLSMPMag : EnforcerMag
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
Class OLSMP : UnrealWeapon
|
Class OLSMP : UnrealWeapon
|
||||||
{
|
{
|
||||||
int ClipCount;
|
int ClipCount;
|
||||||
|
|
@ -217,6 +221,8 @@ Class OLSMP : UnrealWeapon
|
||||||
}
|
}
|
||||||
origin = level.Vec3Offset(origin,x*8+y*6-z*2);
|
origin = level.Vec3Offset(origin,x*8+y*6-z*2);
|
||||||
let c = Spawn("UCasing",origin);
|
let c = Spawn("UCasing",origin);
|
||||||
|
c.angle = angle;
|
||||||
|
c.pitch = pitch;
|
||||||
c.vel = x*FRandom[Junk](-1.5,1.5)+y*FRandom[Junk](2,4)+z*FRandom[Junk](2,3);
|
c.vel = x*FRandom[Junk](-1.5,1.5)+y*FRandom[Junk](2,4)+z*FRandom[Junk](2,3);
|
||||||
}
|
}
|
||||||
override bool CheckAmmo( int fireMode, bool autoSwitch, bool requireAmmo, int ammocount )
|
override bool CheckAmmo( int fireMode, bool autoSwitch, bool requireAmmo, int ammocount )
|
||||||
|
|
@ -346,6 +352,13 @@ Class OLSMP : UnrealWeapon
|
||||||
A_PlaySound("automag/reload",CHAN_WEAPON,!Dampener.Active(self)?1.:.1,pitch:0.8);
|
A_PlaySound("automag/reload",CHAN_WEAPON,!Dampener.Active(self)?1.:.1,pitch:0.8);
|
||||||
if ( self is 'UTPlayer' )
|
if ( self is 'UTPlayer' )
|
||||||
UTPlayer(self).PlayReloading();
|
UTPlayer(self).PlayReloading();
|
||||||
|
Vector3 x, y, z, origin;
|
||||||
|
[x,y,z] = dt_CoordUtil.GetAxes(pitch,angle,roll);
|
||||||
|
origin = level.Vec3Offset(Vec2OffsetZ(0,0,player.viewz),x*4.+y*4.-z*18.);
|
||||||
|
let c = Spawn("OLSMPMag",origin);
|
||||||
|
c.angle = angle;
|
||||||
|
c.pitch = pitch;
|
||||||
|
c.vel = vel*.5+x*FRandom[Junk](-.5,.5)+y*FRandom[Junk](-.5,.5)-z*FRandom[Junk](1,2);
|
||||||
}
|
}
|
||||||
AUTS A 0 A_PlaySound("automag/select",CHAN_WEAPON,!Dampener.Active(self)?1.:.1,pitch:0.8);
|
AUTS A 0 A_PlaySound("automag/select",CHAN_WEAPON,!Dampener.Active(self)?1.:.1,pitch:0.8);
|
||||||
Goto Ready;
|
Goto Ready;
|
||||||
|
|
|
||||||
|
|
@ -333,6 +333,8 @@ Class QuadShot : UnrealWeapon
|
||||||
{
|
{
|
||||||
let c = Spawn("QCasing",origin);
|
let c = Spawn("QCasing",origin);
|
||||||
c.vel = x*FRandom[Junk](-1.5,0.25)-y*FRandom[Junk](1,4)-z*FRandom[Junk](1,4);
|
c.vel = x*FRandom[Junk](-1.5,0.25)-y*FRandom[Junk](1,4)-z*FRandom[Junk](1,4);
|
||||||
|
c.angle = angle;
|
||||||
|
c.pitch = pitch;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
action bool A_QuadshotCheckForReload( bool bDryFire = false )
|
action bool A_QuadshotCheckForReload( bool bDryFire = false )
|
||||||
|
|
|
||||||
|
|
@ -211,6 +211,8 @@ Class URifle : UnrealWeapon
|
||||||
origin = level.Vec3Offset(origin,x*4+y*6-z*10);
|
origin = level.Vec3Offset(origin,x*4+y*6-z*10);
|
||||||
let c = Spawn("UCasing",origin);
|
let c = Spawn("UCasing",origin);
|
||||||
c.scale *= 1.25;
|
c.scale *= 1.25;
|
||||||
|
c.angle = angle;
|
||||||
|
c.pitch = pitch;
|
||||||
c.vel = x*FRandom[Junk](-1.5,1.5)+y*FRandom[Junk](2,4)+z*FRandom[Junk](2,3);
|
c.vel = x*FRandom[Junk](-1.5,1.5)+y*FRandom[Junk](2,4)+z*FRandom[Junk](2,3);
|
||||||
}
|
}
|
||||||
override String GetObituary( Actor victim, Actor inflictor, Name mod, bool playerattack )
|
override String GetObituary( Actor victim, Actor inflictor, Name mod, bool playerattack )
|
||||||
|
|
|
||||||
|
|
@ -493,8 +493,12 @@ Class StingerProjectile : Actor
|
||||||
States
|
States
|
||||||
{
|
{
|
||||||
Spawn:
|
Spawn:
|
||||||
TPRJ A -1 Bright;
|
TPRJ A 1 Bright
|
||||||
Stop;
|
{
|
||||||
|
if ( waterlevel > 0 )
|
||||||
|
Spawn("UTBubble",pos);
|
||||||
|
}
|
||||||
|
Wait;
|
||||||
Bounce:
|
Bounce:
|
||||||
TPRJ A 0 Bright A_HandleBounce();
|
TPRJ A 0 Bright A_HandleBounce();
|
||||||
Goto Spawn;
|
Goto Spawn;
|
||||||
|
|
|
||||||
|
|
@ -176,6 +176,10 @@ Class UFlakSlug : FlakSlug
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Class UFlakMag : FlakMag
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
Class UFlakCannon : UnrealWeapon
|
Class UFlakCannon : UnrealWeapon
|
||||||
{
|
{
|
||||||
action void A_Loading( bool first = false )
|
action void A_Loading( bool first = false )
|
||||||
|
|
@ -332,7 +336,16 @@ Class UFlakCannon : UnrealWeapon
|
||||||
FLKF J 5;
|
FLKF J 5;
|
||||||
FLKE A 1 A_PlaySound("flak/click",CHAN_6,Dampener.Active(self)?.05:.5);
|
FLKE A 1 A_PlaySound("flak/click",CHAN_6,Dampener.Active(self)?.05:.5);
|
||||||
FLKE BCDEFGHIJKLMN 1;
|
FLKE BCDEFGHIJKLMN 1;
|
||||||
FLKE S 4;
|
FLKE S 4
|
||||||
|
{
|
||||||
|
Vector3 x, y, z, origin;
|
||||||
|
[x,y,z] = dt_CoordUtil.GetAxes(pitch,angle,roll);
|
||||||
|
origin = level.Vec3Offset(Vec2OffsetZ(0,0,player.viewz),x*4.+y*3.-z*8.);
|
||||||
|
let c = Spawn("UFlakMag",origin);
|
||||||
|
c.angle = angle;
|
||||||
|
c.pitch = pitch;
|
||||||
|
c.vel = vel*.5+x*FRandom[Junk](-.8,.1)+y*FRandom[Junk](-.2,.2)-z*FRandom[Junk](1,2);
|
||||||
|
}
|
||||||
Goto Loading;
|
Goto Loading;
|
||||||
AltFire:
|
AltFire:
|
||||||
FLKA A 1 A_FireSlug();
|
FLKA A 1 A_FireSlug();
|
||||||
|
|
|
||||||
|
|
@ -128,6 +128,8 @@ Class UMinigun : UnrealWeapon
|
||||||
}
|
}
|
||||||
origin = level.Vec3Offset(origin,x*4+y*3-z*12);
|
origin = level.Vec3Offset(origin,x*4+y*3-z*12);
|
||||||
let c = Spawn("UCasing",origin);
|
let c = Spawn("UCasing",origin);
|
||||||
|
c.angle = angle;
|
||||||
|
c.pitch = pitch;
|
||||||
c.vel = x*FRandom[Junk](-1.5,1.5)-y*FRandom[Junk](2,4)+z*FRandom[Junk](-2,1);
|
c.vel = x*FRandom[Junk](-1.5,1.5)-y*FRandom[Junk](2,4)+z*FRandom[Junk](-2,1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -352,6 +352,7 @@ Class UPlayerFemale : UPlayer
|
||||||
{
|
{
|
||||||
Player.SoundClass "ufemale";
|
Player.SoundClass "ufemale";
|
||||||
UTPlayer.VoiceType VOICE_FemaleOne;
|
UTPlayer.VoiceType VOICE_FemaleOne;
|
||||||
|
UTPlayer.DollType DOLL_Female;
|
||||||
}
|
}
|
||||||
|
|
||||||
void A_ArmPop()
|
void A_ArmPop()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue