Oh boy, it begins.
Assigned all pickup models. Implemented all ammo types. Finished Flak Cannon. Additional cleanup. Slot reassignments and other adjustments to match known Unreal prototype info.
10
GunLore.md
|
|
@ -285,11 +285,15 @@ The weapon is completely useless if the user or target are underwater.
|
||||||
## Fireblaster
|
## Fireblaster
|
||||||
|
|
||||||
Another Mercenary invention, and a direct evolution of the previously listed
|
Another Mercenary invention, and a direct evolution of the previously listed
|
||||||
Flamethrower. Shoots balls of flaming napalm stabilized by microgravity.
|
Flamethrower. Shoots green-ish fireballs stabilized by microgravity.
|
||||||
|
|
||||||
Primary fire: Single, steady shots.
|
Primary fire: Single, steady shots, or a rapid three shot burst in a horizontal
|
||||||
|
arc, depending on selected mode. Costs 10 units of napalm per projectile.
|
||||||
|
|
||||||
Secondary fire: A rapid three shot burst in a horizontal arc.
|
Secondary fire: A slowly charged fireball costing 20 units of napalm. Deals
|
||||||
|
more splash damage.
|
||||||
|
|
||||||
|
Reload: Toggle between single shot and three-round burst fire for primary fire.
|
||||||
|
|
||||||
Like its predecessor, the Fireblaster is obviously completely useless when
|
Like its predecessor, the Fireblaster is obviously completely useless when
|
||||||
water is involved. A very clever human scientist would eventually solve this,
|
water is involved. A very clever human scientist would eventually solve this,
|
||||||
|
|
|
||||||
43
Readme.md
|
|
@ -13,6 +13,7 @@ Doom Tournament (currently the devel branch is required).
|
||||||
- Dual Automags
|
- Dual Automags
|
||||||
- Stinger (slot 3) (replaces shotguns)
|
- Stinger (slot 3) (replaces shotguns)
|
||||||
- ASMD (slot 4) (replaces shotguns)
|
- ASMD (slot 4) (replaces shotguns)
|
||||||
|
- Flak Cannon (slot 6) (replaces rocket launcher)
|
||||||
- Backpack (replaces backpack, identical to Doom Tournament version)
|
- Backpack (replaces backpack, identical to Doom Tournament version)
|
||||||
- Unreal 1 HUD
|
- Unreal 1 HUD
|
||||||
- Translator (has to be spawned in, since it would only be useful for mappers)
|
- Translator (has to be spawned in, since it would only be useful for mappers)
|
||||||
|
|
@ -37,7 +38,11 @@ Doom Tournament (currently the devel branch is required).
|
||||||
|
|
||||||
## In progress
|
## In progress
|
||||||
|
|
||||||
- Flak Cannon (slot 6) (replaces rocket launcher)
|
- Eightball (slot 5) (replaces rocket launcher)
|
||||||
|
- Razorjack (slot 7) (replaces chaingun)
|
||||||
|
- GES Bio Rifle (slot 8) (replaces plasma rifle)
|
||||||
|
- Rifle (slot 9) (replaces plasma rifle)
|
||||||
|
- Minigun (slot 0) (replaces chaingun)
|
||||||
|
|
||||||
- Flashlight (replaces light amplifier)
|
- Flashlight (replaces light amplifier)
|
||||||
- Searchlight (must be placed manually for balance reasons)
|
- Searchlight (must be placed manually for balance reasons)
|
||||||
|
|
@ -46,28 +51,28 @@ Doom Tournament (currently the devel branch is required).
|
||||||
|
|
||||||
## Planned
|
## Planned
|
||||||
|
|
||||||
- Implement Stinger behavior described in the Unreal Bible
|
- Unreal Bible & prototype build behaviour restoration
|
||||||
- Eightball (slot 5) (replaces rocket launcher)
|
- Stinger projectile remanence & explosion
|
||||||
- Razorjack (slot 7) (replaces chaingun)
|
- Razorjack hold fire to increase blade speed
|
||||||
- Make altfire actually seek where player is aiming
|
- Rifle restored rapid fire
|
||||||
- Unreal Bible spin speed behavior
|
- Rifle restored flashlight
|
||||||
- GES Bio Rifle (slot 8) (replaces plasma rifle)
|
|
||||||
- Rifle (slot 9) (replaces plasma rifle)
|
|
||||||
- Restored rapid fire
|
|
||||||
- Restored flashlight
|
|
||||||
- Minigun (slot 0) (replaces chaingun)
|
|
||||||
|
|
||||||
- Stunner (slot 1) (replaces chainsaw)
|
- QOL improvements
|
||||||
|
- Make Razorjack altfire actually seek where player is aiming
|
||||||
|
- Biorifle splashes like UT (toggleable)
|
||||||
|
- Single rocket mode for Eightball
|
||||||
|
|
||||||
|
- Stunner (slot 4) (replaces chainsaw)
|
||||||
- Razorclaw (slot 1) (replaces chainsaw)
|
- Razorclaw (slot 1) (replaces chainsaw)
|
||||||
- Teleport Capsule (slot 1)
|
- Teleport Capsules (slot 9)
|
||||||
- Proto Automag (slot 2) (replaces pistol)
|
- Protomag (slot 2) (replaces pistol)
|
||||||
- Dual Protomags
|
- Dual Protomags
|
||||||
- Quadshot (slot 3) (replaces shotguns)
|
- Quadshot (slot 3) (replaces shotguns)
|
||||||
- Peacemaker (slot 5) (rare spawn in backpacks)
|
- Peacemaker (slot 8) (rare spawn in backpacks)
|
||||||
- Impaler (slot 4) (replaces plasma rifle)
|
- Impaler (slot 7) (replaces plasma rifle)
|
||||||
- Flamethrower (slot 8) (replaces plasma rifle)
|
- Flamethrower (slot 6) (replaces plasma rifle)
|
||||||
- Fireblaster (slot 7) (replaces rocket launcher)
|
- Fireblaster (slot 5) (replaces rocket launcher)
|
||||||
- Demolisher (slot 9) (replaces bfg9000)
|
- Demolisher (slot 0) (replaces bfg9000)
|
||||||
- Autocannon (slot 0) (replaces bfg9000)
|
- Autocannon (slot 0) (replaces bfg9000)
|
||||||
|
|
||||||
- Motion Detector (replaces computer map)
|
- Motion Detector (replaces computer map)
|
||||||
|
|
|
||||||
BIN
brightmaps/JNaliFruit1.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
|
|
@ -1,3 +1,5 @@
|
||||||
Models, textures and audio (C)1995-1999 Epic Games.
|
Models, textures and audio (C)1995-1999 Epic Games.
|
||||||
|
|
||||||
|
Additional audio (C) id Software and/or Bethesda, depending on what.
|
||||||
|
|
||||||
Porting and adjustments by Marisa Kirisame.
|
Porting and adjustments by Marisa Kirisame.
|
||||||
|
|
|
||||||
61
gldefs.txt
|
|
@ -43,6 +43,28 @@ Object StingerAmmo2
|
||||||
{
|
{
|
||||||
Frame "SAMO" { light "STINGERAMMOLIGHT2" }
|
Frame "SAMO" { light "STINGERAMMOLIGHT2" }
|
||||||
}
|
}
|
||||||
|
PointLight IMPAMMOLIGHT
|
||||||
|
{
|
||||||
|
Color 0.9 0.2 1.0
|
||||||
|
Size 28
|
||||||
|
Offset 0 6 0
|
||||||
|
Attenuate 1
|
||||||
|
}
|
||||||
|
PointLight IMPAMMOLIGHT2
|
||||||
|
{
|
||||||
|
Color 0.9 0.2 1.0
|
||||||
|
Size 12
|
||||||
|
Offset 0 3 0
|
||||||
|
Attenuate 1
|
||||||
|
}
|
||||||
|
Object ImpalerAmmo
|
||||||
|
{
|
||||||
|
Frame "IAMO" { light "IMPAMMOLIGHT" }
|
||||||
|
}
|
||||||
|
Object ImpalerAmmo2
|
||||||
|
{
|
||||||
|
Frame "IAMO" { light "IMPAMMOLIGHT2" }
|
||||||
|
}
|
||||||
PointLight FLAKAMMOLIGHT
|
PointLight FLAKAMMOLIGHT
|
||||||
{
|
{
|
||||||
Color 0.1 0.4 0.0
|
Color 0.1 0.4 0.0
|
||||||
|
|
@ -64,6 +86,29 @@ Object StingerProjectile
|
||||||
{
|
{
|
||||||
Frame "TPRJA" { light "STINGERLIGHT" }
|
Frame "TPRJA" { light "STINGERLIGHT" }
|
||||||
}
|
}
|
||||||
|
PointLight UBIOAMMOLIGHT
|
||||||
|
{
|
||||||
|
Color 0.3 1.0 0.1
|
||||||
|
Size 12
|
||||||
|
Offset 0 12 8
|
||||||
|
Attenuate 1
|
||||||
|
}
|
||||||
|
PointLight UBIOAMMOLIGHT2
|
||||||
|
{
|
||||||
|
Color 0.3 1.0 0.1
|
||||||
|
Size 9
|
||||||
|
Offset 0 8 0
|
||||||
|
Attenuate 1
|
||||||
|
}
|
||||||
|
Object UBioAmmo
|
||||||
|
{
|
||||||
|
Frame "BIOA" { light "UBIOAMMOLIGHT" }
|
||||||
|
Frame "BIA2" { light "UBIOAMMOLIGHT" }
|
||||||
|
}
|
||||||
|
Object UBioAmmo2
|
||||||
|
{
|
||||||
|
Frame "BIOA" { light "UBIOAMMOLIGHT2" }
|
||||||
|
}
|
||||||
|
|
||||||
PointLight DAMPENERLIGHT0
|
PointLight DAMPENERLIGHT0
|
||||||
{
|
{
|
||||||
|
|
@ -242,6 +287,18 @@ Object DAmmo5
|
||||||
Frame "DISM" { light "DAMMOLIGHT5" }
|
Frame "DISM" { light "DAMMOLIGHT5" }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
FlickerLight2 ASMDBALLLIGHT
|
||||||
|
{
|
||||||
|
Color 0.3 0.7 1.0
|
||||||
|
Size 72
|
||||||
|
SecondarySize 80
|
||||||
|
Interval 0.1
|
||||||
|
}
|
||||||
|
Object AsmdBall
|
||||||
|
{
|
||||||
|
Frame "TAZB" { light "ASMDBALLLIGHT" }
|
||||||
|
}
|
||||||
|
|
||||||
// Shaders / Brightmaps
|
// Shaders / Brightmaps
|
||||||
HardwareShader Texture "graphics/MenuBarr.png"
|
HardwareShader Texture "graphics/MenuBarr.png"
|
||||||
{
|
{
|
||||||
|
|
@ -491,9 +548,9 @@ HardwareShader Texture "models/JInvisibility1.png"
|
||||||
{
|
{
|
||||||
Shader "shaders/glsl/AmbientGlow.fp"
|
Shader "shaders/glsl/AmbientGlow.fp"
|
||||||
}
|
}
|
||||||
HardwareShader Texture "models/JNaliFruit1.png"
|
Brightmap Texture "models/JNaliFruit1.png"
|
||||||
{
|
{
|
||||||
Shader "shaders/glsl/AmbientGlow.fp"
|
Map "brightmaps/JNaliFruit1.png"
|
||||||
}
|
}
|
||||||
HardwareShader Texture "models/JNapalm1_.png"
|
HardwareShader Texture "models/JNapalm1_.png"
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
|
|
@ -53,7 +53,7 @@ I_IMPAMMO2 = "You picked up an Enriched Tarydium Shard.";
|
||||||
I_FLAMEAMMO = "You picked up a can of Napalm.";
|
I_FLAMEAMMO = "You picked up a can of Napalm.";
|
||||||
I_BIGAMMOL = "You picked up ";
|
I_BIGAMMOL = "You picked up ";
|
||||||
I_BIGAMMOR = " Big Bullets.";
|
I_BIGAMMOR = " Big Bullets.";
|
||||||
I_BIGAMMO2 = "You picked up a Big Bullet.";
|
I_BIGAMMO3 = "You picked up a Big Bullet.";
|
||||||
I_DPISTOL = "You got the Dispersion Pistol.";
|
I_DPISTOL = "You got the Dispersion Pistol.";
|
||||||
I_AUTOMAG = "You picked up the Automag.";
|
I_AUTOMAG = "You picked up the Automag.";
|
||||||
I_AUTOMAG2 = "You picked up another Automag.";
|
I_AUTOMAG2 = "You picked up another Automag.";
|
||||||
|
|
@ -262,7 +262,7 @@ I_IMPAMMO2 = "Has recogido un Fragmento de Tarydium Enriquecido.";
|
||||||
I_FLAMEAMMO = "Has recogido una lata de Napalm.";
|
I_FLAMEAMMO = "Has recogido una lata de Napalm.";
|
||||||
I_BIGAMMOL = "Has recogido ";
|
I_BIGAMMOL = "Has recogido ";
|
||||||
I_BIGAMMOR = " Grandes Balas.";
|
I_BIGAMMOR = " Grandes Balas.";
|
||||||
I_BIGAMMO2 = "Has recogido una Gran Bala.";
|
I_BIGAMMO3 = "Has recogido una Gran Bala.";
|
||||||
I_DPISTOL = "Has obtenido una Pistola de Dispersión.";
|
I_DPISTOL = "Has obtenido una Pistola de Dispersión.";
|
||||||
I_AUTOMAG = "Has recogido la Autoarma.";
|
I_AUTOMAG = "Has recogido la Autoarma.";
|
||||||
I_AUTOMAG2 = "Has recogido otra Autoarma.";
|
I_AUTOMAG2 = "Has recogido otra Autoarma.";
|
||||||
|
|
|
||||||
15
modeldef.betamag
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
Model "Betamag"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 1 "OldAutoMagPick_d.3d"
|
||||||
|
Skin 1 "AutoHand1_.png"
|
||||||
|
Scale 0.05 -0.05 0.06
|
||||||
|
AngleOffset -90
|
||||||
|
ZOffset 9
|
||||||
|
|
||||||
|
FrameIndex AUTP B 1 0
|
||||||
|
|
||||||
|
ZOffset 13
|
||||||
|
ROTATING
|
||||||
|
FrameIndex AUTP A 1 0
|
||||||
|
}
|
||||||
44
modeldef.biggun
Normal file
|
|
@ -0,0 +1,44 @@
|
||||||
|
Model "BigAmmo"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 0 "BigGAmmoBox_d.3d"
|
||||||
|
SurfaceSkin 0 0 "Jclip1_.png"
|
||||||
|
SurfaceSkin 0 1 "RifleBul1.png"
|
||||||
|
Scale 0.15 0.15 0.18
|
||||||
|
|
||||||
|
FrameIndex BIGA A 0 0
|
||||||
|
}
|
||||||
|
Model "BigAmmo2"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 0 "BigGAmmo_d.3d"
|
||||||
|
Skin 0 "Jclip1_.png"
|
||||||
|
Scale 0.15 0.15 0.18
|
||||||
|
|
||||||
|
FrameIndex BIGA A 0 0
|
||||||
|
}
|
||||||
|
Model "BigAmmo3"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 0 "BigGAmmoSingle_d.3d"
|
||||||
|
Skin 0 "Jclip1_.png"
|
||||||
|
Scale 0.15 0.15 0.18
|
||||||
|
|
||||||
|
FrameIndex BIGA A 0 0
|
||||||
|
}
|
||||||
|
|
||||||
|
Model "BigGun"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 1 "BigGPick_d.3d"
|
||||||
|
Skin 1 "JBigGun1_.png"
|
||||||
|
ZOffset 18
|
||||||
|
AngleOffset 90
|
||||||
|
Scale 0.12 0.12 0.144
|
||||||
|
|
||||||
|
FrameIndex BIGP B 1 0
|
||||||
|
|
||||||
|
ZOffset 20
|
||||||
|
ROTATING
|
||||||
|
FrameIndex BIGP A 1 0
|
||||||
|
}
|
||||||
15
modeldef.bonesaw
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
Model "Bonesaw"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 1 "Bonesaw_d.3d"
|
||||||
|
Skin 1 "JBoneSw1_.png"
|
||||||
|
Scale 0.096 -0.08 0.096
|
||||||
|
AngleOffset 180
|
||||||
|
Offset 8 0 6
|
||||||
|
|
||||||
|
FrameIndex CSWP B 1 0
|
||||||
|
|
||||||
|
Offset 8 0 15
|
||||||
|
ROTATING
|
||||||
|
FrameIndex CSWP A 1 0
|
||||||
|
}
|
||||||
48
modeldef.eightball
Normal file
|
|
@ -0,0 +1,48 @@
|
||||||
|
Model "URocketAmmo"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 0 "RocketCanMesh_d.3d"
|
||||||
|
Skin 0 "JRocketCan1.png"
|
||||||
|
Scale 0.12 0.12 0.144
|
||||||
|
ZOffset 7
|
||||||
|
|
||||||
|
FrameIndex RPAK A 0 0
|
||||||
|
FrameIndex RPAK B 0 1
|
||||||
|
FrameIndex RPAK C 0 2
|
||||||
|
FrameIndex RPAK D 0 3
|
||||||
|
FrameIndex RPAK E 0 4
|
||||||
|
FrameIndex RPAK F 0 5
|
||||||
|
FrameIndex RPAK G 0 6
|
||||||
|
FrameIndex RPAK H 0 7
|
||||||
|
FrameIndex RPAK I 0 8
|
||||||
|
FrameIndex RPAK J 0 9
|
||||||
|
}
|
||||||
|
|
||||||
|
Model "URocketAmmo2"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 0 "SingleRocketMesh_d.3d"
|
||||||
|
SurfaceSkin 0 0 "JRocketCan1.png"
|
||||||
|
SurfaceSkin 0 1 "JRocket1_.png"
|
||||||
|
Scale 0.05 0.05 0.056
|
||||||
|
ZOffset 4
|
||||||
|
|
||||||
|
FrameIndex RCKT A 0 0
|
||||||
|
FrameIndex RCKT B 0 1
|
||||||
|
}
|
||||||
|
|
||||||
|
Model "Eightball"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 1 "EightPick_d.3d"
|
||||||
|
Skin 1 "JEightB1_.png"
|
||||||
|
ZOffset 4
|
||||||
|
AngleOffset 90
|
||||||
|
Scale 0.08 0.08 0.096
|
||||||
|
|
||||||
|
FrameIndex EBLP B 1 0
|
||||||
|
|
||||||
|
ZOffset 12
|
||||||
|
ROTATING
|
||||||
|
FrameIndex EBLP A 1 0
|
||||||
|
}
|
||||||
14
modeldef.flamegun
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
Model "FlameGun"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 1 "FlameGPick_d.3d"
|
||||||
|
Skin 1 "JFlameG1_.png"
|
||||||
|
ZOffset 6
|
||||||
|
Scale 0.04 0.04 0.048
|
||||||
|
|
||||||
|
FrameIndex FGNP B 1 0
|
||||||
|
|
||||||
|
ZOffset 9
|
||||||
|
ROTATING
|
||||||
|
FrameIndex FGNP A 1 0
|
||||||
|
}
|
||||||
14
modeldef.gatling
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
Model "SMiniGun"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 1 "SMiniPick_d.3d"
|
||||||
|
Skin 1 "Minigun_.png"
|
||||||
|
ZOffset 13
|
||||||
|
Scale 0.2 0.2 0.24
|
||||||
|
|
||||||
|
FrameIndex SMIP B 1 0
|
||||||
|
|
||||||
|
ZOffset 13
|
||||||
|
ROTATING
|
||||||
|
FrameIndex SMIP A 1 0
|
||||||
|
}
|
||||||
43
modeldef.impaler
Normal file
|
|
@ -0,0 +1,43 @@
|
||||||
|
Model "ImpalerAmmo"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 0 "ImpalerAmmo_d.3d"
|
||||||
|
Skin 0 "JImpale1_.png"
|
||||||
|
Scale 0.25 0.25 0.3
|
||||||
|
AngleOffset 90
|
||||||
|
ZOffset 4
|
||||||
|
|
||||||
|
FrameIndex IAMO A 0 0
|
||||||
|
}
|
||||||
|
Model "ImpalerAmmo2"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 0 "ImpalerProj_d.3d"
|
||||||
|
Skin 0 "JImpale1_.png"
|
||||||
|
Scale 0.25 0.25 0.3
|
||||||
|
AngleOffset 90
|
||||||
|
ZOffset 2
|
||||||
|
|
||||||
|
FrameIndex IAMO A 0 0
|
||||||
|
}
|
||||||
|
|
||||||
|
Model "Impaler"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 1 "ImpalerPickup_d.3d"
|
||||||
|
Skin 1 "JImpale1_.png"
|
||||||
|
Offset 8 0 6
|
||||||
|
PitchOffset -5
|
||||||
|
RollOffset 45
|
||||||
|
AngleOffset 180
|
||||||
|
Scale 0.2 -0.24 0.24
|
||||||
|
|
||||||
|
FrameIndex IMPP B 1 0
|
||||||
|
|
||||||
|
PitchOffset 0
|
||||||
|
RollOffset 0
|
||||||
|
Scale 0.2 -0.2 0.24
|
||||||
|
Offset 8 0 12
|
||||||
|
ROTATING
|
||||||
|
FrameIndex IMPP A 1 0
|
||||||
|
}
|
||||||
45
modeldef.napalm
Normal file
|
|
@ -0,0 +1,45 @@
|
||||||
|
Model "FlameAmmo"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 0 "steelbarrelM_d.3d"
|
||||||
|
Skin 0 "JNapalmAm1.png"
|
||||||
|
Scale -0.04 0.04 0.048
|
||||||
|
AngleOffset 90
|
||||||
|
RollOffset 180
|
||||||
|
ZOffset 6
|
||||||
|
|
||||||
|
FrameIndex FLMA A 0 0
|
||||||
|
}
|
||||||
|
|
||||||
|
Model "UFlamethrower"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 1 "FlameTPick_d.3d"
|
||||||
|
Skin 1 "JNapalm1_.png"
|
||||||
|
ZOffset 10
|
||||||
|
AngleOffset -90
|
||||||
|
Scale 0.1 0.1 0.12
|
||||||
|
|
||||||
|
FrameIndex FLMP B 1 0
|
||||||
|
|
||||||
|
ZOffset 12
|
||||||
|
ROTATING
|
||||||
|
FrameIndex FLMP A 1 0
|
||||||
|
}
|
||||||
|
|
||||||
|
Model "UFlamethrower"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 3 "FlameTOldPick_d.3d"
|
||||||
|
SurfaceSkin 3 0 "JNapalm1_.png"
|
||||||
|
SurfaceSkin 3 1 "Flamet_.png"
|
||||||
|
ZOffset 10
|
||||||
|
AngleOffset -90
|
||||||
|
Scale 0.1 0.1 0.12
|
||||||
|
|
||||||
|
FrameIndex OFLP B 3 0
|
||||||
|
|
||||||
|
ZOffset 12
|
||||||
|
ROTATING
|
||||||
|
FrameIndex OFLP A 3 0
|
||||||
|
}
|
||||||
15
modeldef.peacemaker
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
Model "Peacemaker"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 1 "peacepick_d.3d"
|
||||||
|
Skin 1 "Jpeacehand1_.png"
|
||||||
|
RollOffset 90 // normally upright, but it's easier to tell apart from a deployed one this way
|
||||||
|
ZOffset 5
|
||||||
|
Scale 0.16 0.192 0.16
|
||||||
|
|
||||||
|
FrameIndex PEAP B 1 0
|
||||||
|
|
||||||
|
ZOffset 9
|
||||||
|
ROTATING
|
||||||
|
FrameIndex PEAP A 1 0
|
||||||
|
}
|
||||||
39
modeldef.quadshot
Normal file
|
|
@ -0,0 +1,39 @@
|
||||||
|
Model "UShells"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 0 "ShellsM_d.3d"
|
||||||
|
Skin 0 "JQuadAm1_.png"
|
||||||
|
Scale 0.03 0.03 0.036
|
||||||
|
AngleOffset 90
|
||||||
|
ZOffset 3
|
||||||
|
|
||||||
|
FrameIndex QAMO A 0 0
|
||||||
|
}
|
||||||
|
|
||||||
|
Model "UShells2"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 0 "ShellsSmallM_d.3d"
|
||||||
|
Skin 0 "JQuadAm1_.png"
|
||||||
|
Scale 0.03 0.03 0.036
|
||||||
|
AngleOffset 90
|
||||||
|
ZOffset 1.5
|
||||||
|
|
||||||
|
FrameIndex QAMO A 0 0
|
||||||
|
}
|
||||||
|
|
||||||
|
Model "Quadshot"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 1 "QuadShotPickup_d.3d"
|
||||||
|
Skin 1 "GunPick1_.png"
|
||||||
|
ZOffset 6
|
||||||
|
AngleOffset -90
|
||||||
|
Scale 0.08 -0.08 0.096
|
||||||
|
|
||||||
|
FrameIndex QUAP B 1 0
|
||||||
|
|
||||||
|
ZOffset 12
|
||||||
|
ROTATING
|
||||||
|
FrameIndex QUAP A 1 0
|
||||||
|
}
|
||||||
28
modeldef.razorjack
Normal file
|
|
@ -0,0 +1,28 @@
|
||||||
|
Model "RazorAmmo"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 0 "RazorAmmoMesh_d.3d"
|
||||||
|
Skin 0 "JPickup21.png"
|
||||||
|
ZOffset 8
|
||||||
|
Scale 0.1 0.1 0.12
|
||||||
|
|
||||||
|
FrameIndex BHOP A 0 0
|
||||||
|
FrameIndex BHOP B 0 1
|
||||||
|
}
|
||||||
|
|
||||||
|
Model "Razorjack"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 1 "RazPick_d.3d"
|
||||||
|
Skin 1 "JRazor1_.png"
|
||||||
|
RollOffset -8
|
||||||
|
AngleOffset 90
|
||||||
|
ZOffset 2
|
||||||
|
Scale 0.05 -0.05 0.06
|
||||||
|
|
||||||
|
FrameIndex RZRP B 1 0
|
||||||
|
|
||||||
|
ZOffset 13
|
||||||
|
ROTATING
|
||||||
|
FrameIndex RZRP A 1 0
|
||||||
|
}
|
||||||
37
modeldef.rifle
Normal file
|
|
@ -0,0 +1,37 @@
|
||||||
|
Model "URifleAmmo"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 0 "RifleBullets_d.3d"
|
||||||
|
Skin 0 "RifleBul1.png"
|
||||||
|
Scale 0.05 0.05 0.06
|
||||||
|
ZOffset 9.5
|
||||||
|
|
||||||
|
FrameIndex SBOX A 0 0
|
||||||
|
}
|
||||||
|
|
||||||
|
Model "URifleAmmo2"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 0 "RifleRoundM_d.3d"
|
||||||
|
Skin 0 "RifleR1.png"
|
||||||
|
Scale 0.04 0.04 0.048
|
||||||
|
ZOffset 8
|
||||||
|
|
||||||
|
FrameIndex SRND A 0 0
|
||||||
|
}
|
||||||
|
|
||||||
|
Model "URifle"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 1 "RiPick_d.3d"
|
||||||
|
Skin 1 "JRifle1_.png"
|
||||||
|
Scale 0.12 0.12 0.144
|
||||||
|
AngleOffset 90
|
||||||
|
ZOffset 6
|
||||||
|
|
||||||
|
FrameIndex SRFP B 1 0
|
||||||
|
|
||||||
|
ZOffset 12
|
||||||
|
ROTATING
|
||||||
|
FrameIndex SRFP A 1 0
|
||||||
|
}
|
||||||
14
modeldef.stunner
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
Model "Stunner"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 1 "StunnerPickup_d.3d"
|
||||||
|
Skin 1 "Stunner_.png"
|
||||||
|
Scale -0.04 0.04 0.048
|
||||||
|
ZOffset 1.5
|
||||||
|
|
||||||
|
FrameIndex STNP B 1 0
|
||||||
|
|
||||||
|
ZOffset 4
|
||||||
|
ROTATING
|
||||||
|
FrameIndex STNP A 1 0
|
||||||
|
}
|
||||||
76
modeldef.ubiorifle
Normal file
|
|
@ -0,0 +1,76 @@
|
||||||
|
Model "UBioAmmo"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 0 "sludgemesh_d.3d"
|
||||||
|
Skin 0 "JPickup1.png"
|
||||||
|
Scale 0.08 -0.08 0.096
|
||||||
|
ZOffset 7
|
||||||
|
|
||||||
|
FrameIndex BIOA A 0 0
|
||||||
|
FrameIndex BIOA B 0 1
|
||||||
|
FrameIndex BIOA C 0 2
|
||||||
|
FrameIndex BIOA D 0 3
|
||||||
|
FrameIndex BIOA E 0 4
|
||||||
|
FrameIndex BIOA F 0 5
|
||||||
|
FrameIndex BIOA G 0 6
|
||||||
|
FrameIndex BIOA H 0 7
|
||||||
|
FrameIndex BIOA I 0 8
|
||||||
|
FrameIndex BIOA J 0 9
|
||||||
|
FrameIndex BIOA K 0 10
|
||||||
|
FrameIndex BIOA L 0 11
|
||||||
|
FrameIndex BIOA M 0 12
|
||||||
|
FrameIndex BIOA N 0 13
|
||||||
|
FrameIndex BIOA O 0 14
|
||||||
|
FrameIndex BIOA P 0 15
|
||||||
|
FrameIndex BIOA Q 0 16
|
||||||
|
FrameIndex BIOA R 0 17
|
||||||
|
FrameIndex BIOA S 0 18
|
||||||
|
FrameIndex BIOA T 0 19
|
||||||
|
FrameIndex BIOA U 0 20
|
||||||
|
FrameIndex BIOA V 0 21
|
||||||
|
FrameIndex BIOA W 0 22
|
||||||
|
FrameIndex BIOA X 0 23
|
||||||
|
FrameIndex BIOA Y 0 24
|
||||||
|
FrameIndex BIOA Z 0 25
|
||||||
|
FrameIndex BIA2 A 0 26
|
||||||
|
FrameIndex BIA2 B 0 27
|
||||||
|
FrameIndex BIA2 C 0 28
|
||||||
|
FrameIndex BIA2 D 0 29
|
||||||
|
}
|
||||||
|
Model "UBioAmmo2"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 0 "sludgemeshsmall_d.3d"
|
||||||
|
Skin 0 "JPickup1.png"
|
||||||
|
Scale 0.04 0.04 0.048
|
||||||
|
ZOffset 1
|
||||||
|
|
||||||
|
FrameIndex BIOA A 0 0
|
||||||
|
FrameIndex BIOA B 0 1
|
||||||
|
FrameIndex BIOA C 0 2
|
||||||
|
FrameIndex BIOA D 0 3
|
||||||
|
FrameIndex BIOA E 0 4
|
||||||
|
FrameIndex BIOA F 0 5
|
||||||
|
FrameIndex BIOA G 0 6
|
||||||
|
FrameIndex BIOA H 0 7
|
||||||
|
FrameIndex BIOA I 0 8
|
||||||
|
FrameIndex BIOA J 0 9
|
||||||
|
FrameIndex BIOA K 0 10
|
||||||
|
FrameIndex BIOA L 0 11
|
||||||
|
}
|
||||||
|
|
||||||
|
Model "UBioRifle"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 1 "BRiflePick_d.3d"
|
||||||
|
Skin 1 "JBRifle1_.png"
|
||||||
|
Scale 0.2 -0.2 0.24
|
||||||
|
AngleOffset 180
|
||||||
|
ZOffset 0
|
||||||
|
|
||||||
|
FrameIndex BIOP B 1 0
|
||||||
|
|
||||||
|
ZOffset 6
|
||||||
|
ROTATING
|
||||||
|
FrameIndex BIOP A 1 0
|
||||||
|
}
|
||||||
|
|
@ -22,6 +22,36 @@ Model "UFlakAmmo"
|
||||||
FrameIndex FAMO B 0 0
|
FrameIndex FAMO B 0 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Model "UFlakChunk"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 0 "ChnkX_d.3d"
|
||||||
|
Skin 0 "Jflakshel1.png"
|
||||||
|
Scale 0.05 0.05 0.06
|
||||||
|
ZOffset 2
|
||||||
|
USEACTORPITCH
|
||||||
|
USEACTORROLL
|
||||||
|
USEROTATIONCENTER
|
||||||
|
Rotation-Center 0 0 2
|
||||||
|
|
||||||
|
FrameIndex FCH1 A 0 0
|
||||||
|
FrameIndex FCH2 A 0 1
|
||||||
|
FrameIndex FCH3 A 0 2
|
||||||
|
FrameIndex FCH4 A 0 3
|
||||||
|
}
|
||||||
|
|
||||||
|
Model "UFlakSlug"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 0 "FlakSh_d.3d"
|
||||||
|
Skin 0 "Jflakshel1.png"
|
||||||
|
Scale 0.2 0.2 0.24
|
||||||
|
AngleOffset 90
|
||||||
|
USEACTORPITCH
|
||||||
|
|
||||||
|
FrameIndex FSLG A 0 0
|
||||||
|
}
|
||||||
|
|
||||||
Model "UFlakCannon"
|
Model "UFlakCannon"
|
||||||
{
|
{
|
||||||
Path "models"
|
Path "models"
|
||||||
|
|
@ -33,12 +63,11 @@ Model "UFlakCannon"
|
||||||
|
|
||||||
FrameIndex FPCK B 1 0
|
FrameIndex FPCK B 1 0
|
||||||
|
|
||||||
ZOffset 12
|
ZOffset 13
|
||||||
ROTATING
|
ROTATING
|
||||||
FrameIndex FPCK A 1 0
|
FrameIndex FPCK A 1 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Model "UFlakCannon"
|
Model "UFlakCannon"
|
||||||
{
|
{
|
||||||
Path "models"
|
Path "models"
|
||||||
|
|
|
||||||
27
modeldef.uminigun
Normal file
|
|
@ -0,0 +1,27 @@
|
||||||
|
Model "UMiniAmmo"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 0 "ShellBoxMesh_d.3d"
|
||||||
|
Skin 0 "JPickup21.png"
|
||||||
|
ZOffset 6
|
||||||
|
AngleOffset 180
|
||||||
|
Scale 0.2 0.2 0.24
|
||||||
|
|
||||||
|
FrameIndex MAMO A 0 0
|
||||||
|
}
|
||||||
|
|
||||||
|
Model "UMinigun"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 1 "minipick_d.3d"
|
||||||
|
Skin 1 "minigun1_.png"
|
||||||
|
ZOffset 6
|
||||||
|
AngleOffset -90
|
||||||
|
Scale 0.08 0.08 0.096
|
||||||
|
|
||||||
|
FrameIndex MGNP B 1 0
|
||||||
|
|
||||||
|
ZOffset 12
|
||||||
|
ROTATING
|
||||||
|
FrameIndex MGNP A 1 0
|
||||||
|
}
|
||||||
238
modeldef.umisc
|
|
@ -388,7 +388,245 @@ Model "UJumpBoots"
|
||||||
Model 0 "lboot_d.3d"
|
Model 0 "lboot_d.3d"
|
||||||
Skin 0 "Jlboot1.png"
|
Skin 0 "Jlboot1.png"
|
||||||
Scale 0.06 0.06 0.072
|
Scale 0.06 0.06 0.072
|
||||||
|
AngleOffset 180
|
||||||
ZOffset 6
|
ZOffset 6
|
||||||
|
|
||||||
FrameIndex JBUT A 0 0
|
FrameIndex JBUT A 0 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Model "UFlashlight"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 0 "Flashl_d.3d"
|
||||||
|
Skin 0 "JFlashl1.png"
|
||||||
|
Scale 0.04 0.04 0.048
|
||||||
|
AngleOffset 180
|
||||||
|
ZOffset 2
|
||||||
|
|
||||||
|
FrameIndex SLIT A 0 0
|
||||||
|
}
|
||||||
|
|
||||||
|
Model "USearchlight"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 0 "BigFlash_d.3d"
|
||||||
|
Skin 0 "JBigFlash1.png"
|
||||||
|
Scale 0.07 0.07 0.084
|
||||||
|
AngleOffset -90
|
||||||
|
ZOffset 9
|
||||||
|
|
||||||
|
FrameIndex SLIT A 0 0
|
||||||
|
}
|
||||||
|
|
||||||
|
Model "SentryItem"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 0 "SentryPick_d.3d"
|
||||||
|
SurfaceSkin 0 0 "Minigun_.png"
|
||||||
|
SurfaceSkin 0 1 "minigun1_.png"
|
||||||
|
SurfaceSkin 0 2 "JRifle1_.png"
|
||||||
|
Scale 0.15 0.15 0.18
|
||||||
|
ZOffset 38
|
||||||
|
|
||||||
|
FrameIndex SENT A 0 0
|
||||||
|
}
|
||||||
|
|
||||||
|
Model "MinigunSentry"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 0 "SentryGun_d.3d"
|
||||||
|
SurfaceSkin 0 1 "Minigun_.png"
|
||||||
|
SurfaceSkin 0 2 "minigun1_.png"
|
||||||
|
Scale 0.15 0.15 0.18
|
||||||
|
|
||||||
|
// down
|
||||||
|
FrameIndex SENT A 0 0
|
||||||
|
// raise
|
||||||
|
FrameIndex SENR A 0 0
|
||||||
|
FrameIndex SENR B 0 1
|
||||||
|
FrameIndex SENR C 0 2
|
||||||
|
FrameIndex SENR D 0 3
|
||||||
|
FrameIndex SENR E 0 4
|
||||||
|
FrameIndex SENR F 0 5
|
||||||
|
FrameIndex SENR G 0 6
|
||||||
|
FrameIndex SENR H 0 7
|
||||||
|
FrameIndex SENR I 0 8
|
||||||
|
FrameIndex SENR J 0 9
|
||||||
|
FrameIndex SENR K 0 10
|
||||||
|
FrameIndex SENR L 0 11
|
||||||
|
FrameIndex SENR M 0 12
|
||||||
|
FrameIndex SENR N 0 13
|
||||||
|
FrameIndex SENR O 0 14
|
||||||
|
// idle
|
||||||
|
FrameIndex SENI A 0 14
|
||||||
|
// windup
|
||||||
|
FrameIndex SENW A 0 14
|
||||||
|
FrameIndex SENW B 0 15
|
||||||
|
FrameIndex SENW C 0 16
|
||||||
|
FrameIndex SENW D 0 17
|
||||||
|
FrameIndex SENW E 0 18
|
||||||
|
FrameIndex SENW F 0 19
|
||||||
|
FrameIndex SENW G 0 20
|
||||||
|
FrameIndex SENW H 0 21
|
||||||
|
FrameIndex SENW I 0 22
|
||||||
|
FrameIndex SENW J 0 23
|
||||||
|
FrameIndex SENW K 0 24
|
||||||
|
FrameIndex SENW L 0 25
|
||||||
|
FrameIndex SENW M 0 26
|
||||||
|
FrameIndex SENW N 0 27
|
||||||
|
FrameIndex SENW O 0 28
|
||||||
|
FrameIndex SENW P 0 29
|
||||||
|
FrameIndex SENW Q 0 30
|
||||||
|
FrameIndex SENW R 0 31
|
||||||
|
// fire
|
||||||
|
FrameIndex SENF A 0 32 // shoot
|
||||||
|
FrameIndex SENF B 0 33
|
||||||
|
FrameIndex SENF C 0 34
|
||||||
|
FrameIndex SENF D 0 35 // shoot
|
||||||
|
FrameIndex SENF E 0 36
|
||||||
|
FrameIndex SENF F 0 37
|
||||||
|
FrameIndex SENF G 0 38 // shoot
|
||||||
|
FrameIndex SENF H 0 39
|
||||||
|
FrameIndex SENF I 0 40
|
||||||
|
FrameIndex SENF J 0 41 // shoot
|
||||||
|
FrameIndex SENF K 0 42
|
||||||
|
FrameIndex SENF L 0 43
|
||||||
|
FrameIndex SENF M 0 44 // shoot
|
||||||
|
FrameIndex SENF N 0 45
|
||||||
|
FrameIndex SENF O 0 46
|
||||||
|
FrameIndex SENF P 0 47 // shoot
|
||||||
|
FrameIndex SENF Q 0 48
|
||||||
|
FrameIndex SENF R 0 49
|
||||||
|
// unwind
|
||||||
|
FrameIndex SENU A 0 50
|
||||||
|
FrameIndex SENU B 0 51
|
||||||
|
FrameIndex SENU C 0 52
|
||||||
|
FrameIndex SENU D 0 53
|
||||||
|
FrameIndex SENU E 0 54
|
||||||
|
FrameIndex SENU F 0 55
|
||||||
|
FrameIndex SENU G 0 56
|
||||||
|
FrameIndex SENU H 0 57
|
||||||
|
FrameIndex SENU I 0 58
|
||||||
|
FrameIndex SENU J 0 59
|
||||||
|
FrameIndex SENU K 0 60
|
||||||
|
FrameIndex SENU L 0 61
|
||||||
|
FrameIndex SENU M 0 62
|
||||||
|
FrameIndex SENU N 0 63
|
||||||
|
FrameIndex SENU O 0 64
|
||||||
|
FrameIndex SENU P 0 65
|
||||||
|
FrameIndex SENU Q 0 66
|
||||||
|
FrameIndex SENU R 0 67
|
||||||
|
}
|
||||||
|
|
||||||
|
Model "MinigunSentryBase"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 0 "SentryBase_d.3d"
|
||||||
|
SurfaceSkin 0 0 "Minigun_.png"
|
||||||
|
SurfaceSkin 0 1 "minigun1_.png"
|
||||||
|
SurfaceSkin 0 2 "JRifle1_.png"
|
||||||
|
Scale 0.15 0.15 0.18
|
||||||
|
ZOffset 38
|
||||||
|
|
||||||
|
// down
|
||||||
|
FrameIndex SENT A 0 0
|
||||||
|
// raise
|
||||||
|
FrameIndex SENR A 0 0
|
||||||
|
FrameIndex SENR B 0 1
|
||||||
|
FrameIndex SENR C 0 2
|
||||||
|
FrameIndex SENR D 0 3
|
||||||
|
FrameIndex SENR E 0 4
|
||||||
|
FrameIndex SENR F 0 5
|
||||||
|
FrameIndex SENR G 0 6
|
||||||
|
FrameIndex SENR H 0 7
|
||||||
|
FrameIndex SENR I 0 8
|
||||||
|
FrameIndex SENR J 0 9
|
||||||
|
FrameIndex SENR K 0 10
|
||||||
|
FrameIndex SENR L 0 11
|
||||||
|
FrameIndex SENR M 0 12
|
||||||
|
FrameIndex SENR N 0 13
|
||||||
|
FrameIndex SENR O 0 14
|
||||||
|
// idle
|
||||||
|
FrameIndex SENI A 0 14
|
||||||
|
// windup
|
||||||
|
FrameIndex SENW A 0 14
|
||||||
|
FrameIndex SENW B 0 15
|
||||||
|
FrameIndex SENW C 0 16
|
||||||
|
FrameIndex SENW D 0 17
|
||||||
|
FrameIndex SENW E 0 18
|
||||||
|
FrameIndex SENW F 0 19
|
||||||
|
FrameIndex SENW G 0 20
|
||||||
|
FrameIndex SENW H 0 21
|
||||||
|
FrameIndex SENW I 0 22
|
||||||
|
FrameIndex SENW J 0 23
|
||||||
|
FrameIndex SENW K 0 24
|
||||||
|
FrameIndex SENW L 0 25
|
||||||
|
FrameIndex SENW M 0 26
|
||||||
|
FrameIndex SENW N 0 27
|
||||||
|
FrameIndex SENW O 0 28
|
||||||
|
FrameIndex SENW P 0 29
|
||||||
|
FrameIndex SENW Q 0 30
|
||||||
|
FrameIndex SENW R 0 31
|
||||||
|
// fire
|
||||||
|
FrameIndex SENF A 0 32
|
||||||
|
FrameIndex SENF B 0 33
|
||||||
|
FrameIndex SENF C 0 34
|
||||||
|
FrameIndex SENF D 0 35
|
||||||
|
FrameIndex SENF E 0 36
|
||||||
|
FrameIndex SENF F 0 37
|
||||||
|
FrameIndex SENF G 0 38
|
||||||
|
FrameIndex SENF H 0 39
|
||||||
|
FrameIndex SENF I 0 40
|
||||||
|
FrameIndex SENF J 0 41
|
||||||
|
FrameIndex SENF K 0 42
|
||||||
|
FrameIndex SENF L 0 43
|
||||||
|
FrameIndex SENF M 0 44
|
||||||
|
FrameIndex SENF N 0 45
|
||||||
|
FrameIndex SENF O 0 46
|
||||||
|
FrameIndex SENF P 0 47
|
||||||
|
FrameIndex SENF Q 0 48
|
||||||
|
FrameIndex SENF R 0 49
|
||||||
|
// unwind
|
||||||
|
FrameIndex SENU A 0 50
|
||||||
|
FrameIndex SENU B 0 51
|
||||||
|
FrameIndex SENU C 0 52
|
||||||
|
FrameIndex SENU D 0 53
|
||||||
|
FrameIndex SENU E 0 54
|
||||||
|
FrameIndex SENU F 0 55
|
||||||
|
FrameIndex SENU G 0 56
|
||||||
|
FrameIndex SENU H 0 57
|
||||||
|
FrameIndex SENU I 0 58
|
||||||
|
FrameIndex SENU J 0 59
|
||||||
|
FrameIndex SENU K 0 60
|
||||||
|
FrameIndex SENU L 0 61
|
||||||
|
FrameIndex SENU M 0 62
|
||||||
|
FrameIndex SENU N 0 63
|
||||||
|
FrameIndex SENU O 0 64
|
||||||
|
FrameIndex SENU P 0 65
|
||||||
|
FrameIndex SENU Q 0 66
|
||||||
|
FrameIndex SENU R 0 67
|
||||||
|
}
|
||||||
|
|
||||||
|
Model "MotionDetector"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 0 "DetectorMesh_d.3d"
|
||||||
|
Skin 0 "JDetector.png"
|
||||||
|
Scale 0.08 -0.08 0.096
|
||||||
|
PitchOffset 3
|
||||||
|
ZOffset 4
|
||||||
|
|
||||||
|
FrameIndex MDET A 0 0
|
||||||
|
}
|
||||||
|
|
||||||
|
Model "SCUBAGear"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 0 "Scuba_d.3d"
|
||||||
|
Skin 0 "ASC1.png"
|
||||||
|
Scale 0.08 0.08 0.096
|
||||||
|
AngleOffset -90
|
||||||
|
ZOffset 11
|
||||||
|
|
||||||
|
FrameIndex SCUB A 0 0
|
||||||
|
}
|
||||||
|
|
|
||||||
15
modeldef.utranslocator
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
Model "UTranslocator"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 1 "TelePickup_d.3d"
|
||||||
|
Skin 1 "Ahand1_.png"
|
||||||
|
Scale 0.04 -0.04 0.048
|
||||||
|
AngleOffset 90
|
||||||
|
ZOffset 6
|
||||||
|
|
||||||
|
FrameIndex TLCP B 1 0
|
||||||
|
|
||||||
|
ZOffset 12
|
||||||
|
ROTATING
|
||||||
|
FrameIndex TLCP A 1 0
|
||||||
|
}
|
||||||
BIN
models/ChnkX_a.3d
Normal file
BIN
models/ChnkX_d.3d
Normal file
BIN
models/JFlame2.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
models/JFlame3.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
models/JRocket1_.png
Normal file
|
After Width: | Height: | Size: 51 KiB |
3
textures.biggun
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
Sprite "BIGAA0",1,1{}
|
||||||
|
Sprite "BIGPA0",1,1{}
|
||||||
|
Sprite "BIGSA0",1,1{}
|
||||||
3
textures.flamegun
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
Sprite "FGNPA0",1,1{}
|
||||||
|
Sprite "FGNSA0",1,1{}
|
||||||
|
Sprite "FIRBA0",1,1{}
|
||||||
2
textures.gatling
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
Sprite "SMIPA0",1,1{}
|
||||||
|
Sprite "SMISA0",1,1{}
|
||||||
1
textures.impaler
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
Sprite "IAMOA0",1,1{}
|
||||||
6
textures.napalm
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
Sprite "FLMAA0",1,1{}
|
||||||
|
Sprite "FLMPA0",1,1{}
|
||||||
|
Sprite "OFLPA0",1,1{}
|
||||||
|
Sprite "FLMSA0",1,1{}
|
||||||
|
Sprite "OFLSA0",1,1{}
|
||||||
|
Sprite "NAPAA0",1,1{}
|
||||||
4
textures.peacemaker
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
Sprite "PEAPA0",1,1{}
|
||||||
|
Sprite "PEASA0",1,1{}
|
||||||
|
Sprite "PEAMA0",1,1{}
|
||||||
|
Sprite "PEARA0",1,1{}
|
||||||
3
textures.quadshot
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
Sprite "QAMOA0",1,1{}
|
||||||
|
Sprite "QUAPA0",1,1{}
|
||||||
|
Sprite "QUASA0",1,1{}
|
||||||
|
|
@ -21,3 +21,5 @@ Sprite "SEEDA0",1,1{}
|
||||||
Sprite "FRUTA0",1,1{}
|
Sprite "FRUTA0",1,1{}
|
||||||
Sprite "FLARA0",1,1{}
|
Sprite "FLARA0",1,1{}
|
||||||
Sprite "SCUBA0",1,1{}
|
Sprite "SCUBA0",1,1{}
|
||||||
|
Sprite "MDETA0",1,1{}
|
||||||
|
Sprite "SENTA0",1,1{}
|
||||||
|
|
|
||||||
|
|
@ -290,20 +290,25 @@ Class ViewASMDSpark : ShockSpark
|
||||||
|
|
||||||
Class ASMDHitbox : ShockHitbox
|
Class ASMDHitbox : ShockHitbox
|
||||||
{
|
{
|
||||||
Default
|
override void Tick()
|
||||||
{
|
{
|
||||||
Health 1;
|
Super.Tick();
|
||||||
+SHOOTABLE;
|
if ( !target ) return;
|
||||||
+NOBLOOD;
|
let t = ThinkerIterator.Create("ASMDHitbox");
|
||||||
}
|
Actor a;
|
||||||
override void Die( Actor source, Actor inflictor, int dmgflags, Name MeansOfDeath )
|
while ( a = Actor(t.Next()) )
|
||||||
{
|
|
||||||
if ( target && target.InStateSequence(target.CurState,target.FindState("Spawn")) )
|
|
||||||
{
|
{
|
||||||
target.bAMBUSH = true;
|
if ( (a == self) || !(a is 'ASMDHitbox') || a.bAMBUSH || (Distance3D(a) > radius*2) ) continue;
|
||||||
target.ExplodeMissile();
|
a.bAMBUSH = true;
|
||||||
|
if ( a.target && a.target.InStateSequence(a.target.CurState,a.target.FindState("Spawn")) )
|
||||||
|
a.target.ExplodeMissile();
|
||||||
|
if ( !bAMBUSH )
|
||||||
|
{
|
||||||
|
bAMBUSH = true;
|
||||||
|
if ( target && target.InStateSequence(target.CurState,target.FindState("Spawn")) )
|
||||||
|
target.ExplodeMissile();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Super.Die(source,inflictor,dmgflags,MeansOfDeath);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -534,6 +539,8 @@ Class ASMDBeam : Actor
|
||||||
UTMainHandler.DoSwing(target,(FRandom[ASMD](-0.1,-0.6),FRandom[ASMD](-0.1,0.5)),10,-2,3,SWING_Spring,3,6);
|
UTMainHandler.DoSwing(target,(FRandom[ASMD](-0.1,-0.6),FRandom[ASMD](-0.1,0.5)),10,-2,3,SWING_Spring,3,6);
|
||||||
}
|
}
|
||||||
let b = t.Results.HitActor.target;
|
let b = t.Results.HitActor.target;
|
||||||
|
b.bAMBUSH = true;
|
||||||
|
b.ExplodeMissile();
|
||||||
b.pitch = 90;
|
b.pitch = 90;
|
||||||
b.angle = 0;
|
b.angle = 0;
|
||||||
b.roll = 0;
|
b.roll = 0;
|
||||||
|
|
|
||||||
|
|
@ -38,6 +38,11 @@ Class Automag : UnrealWeapon
|
||||||
}
|
}
|
||||||
return Super.HandlePickup(item);
|
return Super.HandlePickup(item);
|
||||||
}
|
}
|
||||||
|
override String PickupMessage()
|
||||||
|
{
|
||||||
|
if ( Owner ) return Super.PickupMessage();
|
||||||
|
return StringTable.Localize("$I_AUTOMAG2");
|
||||||
|
}
|
||||||
override Inventory CreateTossable( int amt )
|
override Inventory CreateTossable( int amt )
|
||||||
{
|
{
|
||||||
Inventory inv = Super.CreateTossable(amt);
|
Inventory inv = Super.CreateTossable(amt);
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,29 @@
|
||||||
Class Betamag : UnrealWeapon
|
Class Betamag : UnrealWeapon
|
||||||
{
|
{
|
||||||
|
Default
|
||||||
|
{
|
||||||
|
Tag "$T_BETAMAG";
|
||||||
|
Inventory.Icon "I_ClipAm";
|
||||||
|
Inventory.PickupMessage "$I_BETAMAG";
|
||||||
|
Inventory.MaxAmount 1;
|
||||||
|
Inventory.InterHubAmount 2;
|
||||||
|
Weapon.UpSound "betamag/select";
|
||||||
|
Weapon.SlotNumber 2;
|
||||||
|
Weapon.SelectionOrder 1;
|
||||||
|
Weapon.AmmoType "UMiniAmmo";
|
||||||
|
Weapon.AmmoUse 1;
|
||||||
|
Weapon.AmmoType2 "UMiniAmmo";
|
||||||
|
Weapon.AmmoUse2 1;
|
||||||
|
Weapon.AmmoGive 20;
|
||||||
|
Weapon.Kickback 320;
|
||||||
|
UTWeapon.DropAmmo 10;
|
||||||
|
}
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
AUTP A -1;
|
||||||
|
Stop;
|
||||||
|
AUTP B -1;
|
||||||
|
Stop;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,79 @@
|
||||||
Class BigAmmo : Ammo
|
Class BigAmmo : Ammo
|
||||||
{
|
{
|
||||||
|
Default
|
||||||
|
{
|
||||||
|
Tag "$T_BIGAMMO";
|
||||||
|
Inventory.Icon "I_BigM";
|
||||||
|
Inventory.PickupMessage "";
|
||||||
|
Inventory.Amount 10;
|
||||||
|
Inventory.MaxAmount 30;
|
||||||
|
Ammo.BackpackAmount 0;
|
||||||
|
Ammo.BackpackMaxAmount 60;
|
||||||
|
Ammo.DropAmount 10;
|
||||||
|
Inventory.RespawnTics 2100;
|
||||||
|
+INVENTORY.IGNORESKILL;
|
||||||
|
}
|
||||||
|
override String PickupMessage()
|
||||||
|
{
|
||||||
|
if ( PickupMsg.Length() > 0 ) return Super.PickupMessage();
|
||||||
|
return String.Format("%s%d%s",StringTable.Localize("$I_BIGAMMOL"),Amount,StringTable.Localize("$I_BIGAMMOR"));
|
||||||
|
}
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
BIGA A -1;
|
||||||
|
Stop;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Class BigAmmo2 : BigAmmo
|
Class BigAmmo2 : BigAmmo
|
||||||
{
|
{
|
||||||
|
Default
|
||||||
|
{
|
||||||
|
Tag "$T_BIGAMMO2";
|
||||||
|
Inventory.Amount 3;
|
||||||
|
Ammo.DropAmount 3;
|
||||||
|
+INVENTORY.IGNORESKILL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Class BigAmmo3 : BigAmmo
|
||||||
|
{
|
||||||
|
Default
|
||||||
|
{
|
||||||
|
Tag "$T_BIGAMMO3";
|
||||||
|
Inventory.PickupMessage "$I_BIGAMMO3";
|
||||||
|
Inventory.Amount 1;
|
||||||
|
Ammo.DropAmount 1;
|
||||||
|
+INVENTORY.IGNORESKILL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Class BigGun : UnrealWeapon
|
Class BigGun : UnrealWeapon
|
||||||
{
|
{
|
||||||
|
Default
|
||||||
|
{
|
||||||
|
Tag "$T_BIGGUN";
|
||||||
|
Inventory.PickupMessage "$I_BIGGUN";
|
||||||
|
Weapon.UpSound "big/select";
|
||||||
|
Weapon.SlotNumber 0;
|
||||||
|
Weapon.SelectionOrder 0;
|
||||||
|
Weapon.AmmoType "BigAmmo";
|
||||||
|
Weapon.AmmoUse 1;
|
||||||
|
Weapon.AmmoType2 "BigAmmo";
|
||||||
|
Weapon.AmmoUse2 1;
|
||||||
|
Weapon.AmmoGive 10;
|
||||||
|
Inventory.RespawnTics 2100;
|
||||||
|
+INVENTORY.IGNORESKILL;
|
||||||
|
+WEAPON.NOAUTOFIRE;
|
||||||
|
UTWeapon.DropAmmo 5;
|
||||||
|
}
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
BIGP A -1;
|
||||||
|
Stop;
|
||||||
|
BIGP B -1;
|
||||||
|
Stop;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,22 @@
|
||||||
Class Bonesaw : UnrealWeapon
|
Class Bonesaw : UnrealWeapon
|
||||||
{
|
{
|
||||||
|
Default
|
||||||
|
{
|
||||||
|
Tag "$T_BONESAW";
|
||||||
|
Inventory.PickupMessage "$I_BONESAW";
|
||||||
|
Weapon.UpSound "bonesaw/select";
|
||||||
|
Weapon.SlotNumber 1;
|
||||||
|
Weapon.SelectionOrder 9;
|
||||||
|
+WEAPON.MELEEWEAPON;
|
||||||
|
+FORCEPAIN;
|
||||||
|
+NOEXTREMEDEATH;
|
||||||
|
}
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
CSWP A -1;
|
||||||
|
Stop;
|
||||||
|
CSWP B -1;
|
||||||
|
Stop;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -18,19 +18,16 @@ Class WeaponPowerUp : Inventory
|
||||||
damo.Amount = min(damo.MaxAmount,damo.Amount+10);
|
damo.Amount = min(damo.MaxAmount,damo.Amount+10);
|
||||||
}
|
}
|
||||||
let dpis = DispersionPistol(toucher.FindInventory("DispersionPistol"));
|
let dpis = DispersionPistol(toucher.FindInventory("DispersionPistol"));
|
||||||
if ( dpis && (dpis.upgradelevel < 4) )
|
if ( dpis && (dpis.pendingupgrade < 4) )
|
||||||
{
|
{
|
||||||
|
dpis.pendingupgrade++;
|
||||||
if ( toucher.player && (toucher.player.ReadyWeapon == dpis) && (toucher.player.PendingWeapon == WP_NOCHANGE) )
|
if ( toucher.player && (toucher.player.ReadyWeapon == dpis) && (toucher.player.PendingWeapon == WP_NOCHANGE) )
|
||||||
{
|
{
|
||||||
dpis.upgradelevel++;
|
|
||||||
let psp = toucher.player.FindPSprite(PSP_Weapon);
|
let psp = toucher.player.FindPSprite(PSP_Weapon);
|
||||||
psp.SetState(dpis.FindState("Upgrade"));
|
if ( toucher.player.WeaponState&WF_WEAPONREADY )
|
||||||
}
|
psp.SetState(dpis.FindState("Upgrade"));
|
||||||
else
|
|
||||||
{
|
|
||||||
dpis.pendingupgrade = true;
|
|
||||||
ScriptUtil.SetWeapon(toucher,"DispersionPistol");
|
|
||||||
}
|
}
|
||||||
|
else ScriptUtil.SetWeapon(toucher,"DispersionPistol");
|
||||||
}
|
}
|
||||||
GoAwayAndDie();
|
GoAwayAndDie();
|
||||||
return true;
|
return true;
|
||||||
|
|
@ -478,8 +475,7 @@ Class DispLight5 : EnforcerLight
|
||||||
|
|
||||||
Class DispersionPistol : UnrealWeapon
|
Class DispersionPistol : UnrealWeapon
|
||||||
{
|
{
|
||||||
int upgradelevel;
|
int upgradelevel, pendingupgrade;
|
||||||
bool pendingupgrade;
|
|
||||||
double chargesize, count;
|
double chargesize, count;
|
||||||
bool bCharging;
|
bool bCharging;
|
||||||
int MainUse, ChargeUse;
|
int MainUse, ChargeUse;
|
||||||
|
|
@ -725,12 +721,8 @@ Class DispersionPistol : UnrealWeapon
|
||||||
Idle:
|
Idle:
|
||||||
#### # 0
|
#### # 0
|
||||||
{
|
{
|
||||||
if ( invoker.pendingupgrade )
|
if ( invoker.pendingupgrade > invoker.upgradelevel )
|
||||||
{
|
|
||||||
invoker.pendingupgrade = false;
|
|
||||||
invoker.upgradelevel++;
|
|
||||||
return ResolveState("Upgrade");
|
return ResolveState("Upgrade");
|
||||||
}
|
|
||||||
A_Overlay(-9999,"Dummy");
|
A_Overlay(-9999,"Dummy");
|
||||||
if ( invoker.upgradelevel == 0 ) return ResolveState("Idle1");
|
if ( invoker.upgradelevel == 0 ) return ResolveState("Idle1");
|
||||||
else if ( invoker.upgradelevel == 1 ) return ResolveState("Idle2");
|
else if ( invoker.upgradelevel == 1 ) return ResolveState("Idle2");
|
||||||
|
|
@ -845,10 +837,11 @@ Class DispersionPistol : UnrealWeapon
|
||||||
DPI5 A 6;
|
DPI5 A 6;
|
||||||
Goto Idle;
|
Goto Idle;
|
||||||
Upgrade:
|
Upgrade:
|
||||||
#### # 0
|
#### # 1
|
||||||
{
|
{
|
||||||
A_Overlay(-9999,"Null");
|
A_Overlay(-9999,"Null");
|
||||||
invoker.MainUse = min(6,invoker.upgradelevel+1);
|
invoker.MainUse = min(6,invoker.upgradelevel+1);
|
||||||
|
invoker.upgradelevel++;
|
||||||
if ( invoker.upgradelevel == 0 ) return ResolveState("Idle");
|
if ( invoker.upgradelevel == 0 ) return ResolveState("Idle");
|
||||||
else if ( invoker.upgradelevel == 1 ) return ResolveState("Upgrade1");
|
else if ( invoker.upgradelevel == 1 ) return ResolveState("Upgrade1");
|
||||||
else if ( invoker.upgradelevel == 2 ) return ResolveState("Upgrade2");
|
else if ( invoker.upgradelevel == 2 ) return ResolveState("Upgrade2");
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,25 @@
|
||||||
Class FlameGun : UnrealWeapon
|
Class FlameGun : UnrealWeapon
|
||||||
{
|
{
|
||||||
|
Default
|
||||||
|
{
|
||||||
|
Tag "$T_FLAMEGUN";
|
||||||
|
Inventory.PickupMessage "$I_FLAMEGUN";
|
||||||
|
Weapon.UpSound "flamegun/select";
|
||||||
|
Weapon.SlotNumber 5;
|
||||||
|
Weapon.SelectionOrder 2;
|
||||||
|
Weapon.AmmoType "FlameAmmo";
|
||||||
|
Weapon.AmmoUse 10;
|
||||||
|
Weapon.AmmoType2 "FlameAmmo";
|
||||||
|
Weapon.AmmoUse2 20;
|
||||||
|
Weapon.AmmoGive 100;
|
||||||
|
UTWeapon.DropAmmo 25;
|
||||||
|
}
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
FGNP A -1;
|
||||||
|
Stop;
|
||||||
|
FGNP B -1;
|
||||||
|
Stop;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,40 @@
|
||||||
Class SMiniAmmo : Ammo
|
Class SMiniAmmo : Ammo
|
||||||
{
|
{
|
||||||
|
Default
|
||||||
|
{
|
||||||
|
Inventory.Icon "I_SMini";
|
||||||
|
Inventory.Amount 4;
|
||||||
|
Inventory.MaxAmount 16;
|
||||||
|
Ammo.BackpackAmount 0;
|
||||||
|
Ammo.BackpackMaxAmount 32;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Class SMiniGun : UnrealWeapon
|
Class SMiniGun : UnrealWeapon
|
||||||
{
|
{
|
||||||
|
Default
|
||||||
|
{
|
||||||
|
Tag "$T_SMINI";
|
||||||
|
Inventory.PickupMessage "$I_SMINI";
|
||||||
|
Weapon.UpSound "smini/select";
|
||||||
|
Weapon.SlotNumber 0;
|
||||||
|
Weapon.SelectionOrder 1;
|
||||||
|
Weapon.AmmoType "SMiniAmmo";
|
||||||
|
Weapon.AmmoUse 1;
|
||||||
|
Weapon.AmmoType2 "SMiniAmmo";
|
||||||
|
Weapon.AmmoUse2 4;
|
||||||
|
Weapon.AmmoGive 8;
|
||||||
|
Inventory.RespawnTics 2100;
|
||||||
|
+INVENTORY.IGNORESKILL;
|
||||||
|
+WEAPON.NOAUTOFIRE;
|
||||||
|
UTWeapon.DropAmmo 4;
|
||||||
|
}
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
SMIP A -1;
|
||||||
|
Stop;
|
||||||
|
SMIP B -1;
|
||||||
|
Stop;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,73 @@
|
||||||
Class ImpalerAmmo : Ammo
|
Class ImpalerAmmo : Ammo
|
||||||
{
|
{
|
||||||
|
Default
|
||||||
|
{
|
||||||
|
Tag "$T_IMPAMMO";
|
||||||
|
Inventory.Icon "I_Impale";
|
||||||
|
Inventory.PickupMessage "$T_IMPAMMO";
|
||||||
|
Inventory.Amount 3;
|
||||||
|
Inventory.MaxAmount 15;
|
||||||
|
Ammo.BackpackAmount 3;
|
||||||
|
Ammo.BackpackMaxAmount 30;
|
||||||
|
Ammo.DropAmount 3;
|
||||||
|
+INVENTORY.IGNORESKILL;
|
||||||
|
}
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
IAMO A -1;
|
||||||
|
Stop;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Class ImpalerAmmo2 : ImpalerAmmo
|
Class ImpalerAmmo2 : ImpalerAmmo
|
||||||
{
|
{
|
||||||
|
Default
|
||||||
|
{
|
||||||
|
Tag "$T_IMPAMMO2";
|
||||||
|
Inventory.PickupMessage "$T_IMPAMMO2";
|
||||||
|
Inventory.Amount 1;
|
||||||
|
Ammo.DropAmount 1;
|
||||||
|
+INVENTORY.IGNORESKILL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Class ImpalerCharge : Ammo
|
||||||
|
{
|
||||||
|
Default
|
||||||
|
{
|
||||||
|
Inventory.Amount 100;
|
||||||
|
Inventory.MaxAmount 100;
|
||||||
|
Ammo.BackpackAmount 0;
|
||||||
|
Ammo.BackpackMaxAmount 100;
|
||||||
|
+INVENTORY.IGNORESKILL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Class Impaler : UnrealWeapon
|
Class Impaler : UnrealWeapon
|
||||||
{
|
{
|
||||||
|
Default
|
||||||
|
{
|
||||||
|
Tag "$T_IMPALER";
|
||||||
|
Inventory.PickupMessage "$I_IMPALER";
|
||||||
|
Weapon.UpSound "impaler/select";
|
||||||
|
Weapon.SlotNumber 7;
|
||||||
|
Weapon.SelectionOrder 0;
|
||||||
|
Weapon.AmmoType "ImpalerAmmo";
|
||||||
|
Weapon.AmmoUse 1;
|
||||||
|
Weapon.AmmoType2 "ImpalerCharge";
|
||||||
|
Weapon.AmmoUse2 1;
|
||||||
|
Weapon.AmmoGive1 60;
|
||||||
|
Weapon.AmmoGive2 0;
|
||||||
|
UTWeapon.DropAmmo 30;
|
||||||
|
+WEAPON.AMMO_OPTIONAL;
|
||||||
|
+WEAPON.ALT_AMMO_OPTIONAL;
|
||||||
|
}
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
IMPP A -1;
|
||||||
|
Stop;
|
||||||
|
IMPP B -1;
|
||||||
|
Stop;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -708,14 +708,31 @@ Class BetaFlare : UnrealInventory
|
||||||
if ( !sting_flares ) return false; // not allowed
|
if ( !sting_flares ) return false; // not allowed
|
||||||
return Super.TryPickup(toucher);
|
return Super.TryPickup(toucher);
|
||||||
}
|
}
|
||||||
|
Default
|
||||||
|
{
|
||||||
|
Inventory.MaxAmount 1;
|
||||||
|
UnrealInventory.Charge 100;
|
||||||
|
+INVENTORY.UNDROPPABLE;
|
||||||
|
+INVENTORY.UNTOSSABLE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Class LightFlare : BetaFlare
|
Class LightFlare : BetaFlare
|
||||||
{
|
{
|
||||||
|
Default
|
||||||
|
{
|
||||||
|
Tag "$T_LFLARES";
|
||||||
|
Inventory.Icon "I_FlarBL";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Class DarkFlare : BetaFlare
|
Class DarkFlare : BetaFlare
|
||||||
{
|
{
|
||||||
|
Default
|
||||||
|
{
|
||||||
|
Tag "$T_DFLARES";
|
||||||
|
Inventory.Icon "I_FlarBD";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Class Dampener : UnrealInventory
|
Class Dampener : UnrealInventory
|
||||||
|
|
@ -907,16 +924,101 @@ Class ForcefieldEffect : Actor
|
||||||
|
|
||||||
Class UFlashlight : UnrealInventory
|
Class UFlashlight : UnrealInventory
|
||||||
{
|
{
|
||||||
|
Actor lt[3];
|
||||||
|
|
||||||
|
Default
|
||||||
|
{
|
||||||
|
Tag "$T_FLASHLIGHT";
|
||||||
|
Inventory.Icon "I_Flashl";
|
||||||
|
Inventory.MaxAmount 3;
|
||||||
|
Inventory.PickupMessage "$I_FLASHLIGHT";
|
||||||
|
UnrealInventory.Charge 2800;
|
||||||
|
}
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
SLIT A -1;
|
||||||
|
Stop;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Class USearchlight : UnrealInventory
|
Class USearchlight : UFlashlight
|
||||||
{
|
{
|
||||||
|
Default
|
||||||
|
{
|
||||||
|
Tag "$T_SEARCHLIGHT";
|
||||||
|
Inventory.Icon "I_BigFl";
|
||||||
|
Inventory.MaxAmount 1;
|
||||||
|
Inventory.PickupMessage "$I_SEARCHLIGHT";
|
||||||
|
Inventory.RespawnTics 1050;
|
||||||
|
UnrealInventory.Charge 70000;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Class SentryItem : UnrealInventory
|
Class SentryItem : UnrealInventory
|
||||||
{
|
{
|
||||||
|
Default
|
||||||
|
{
|
||||||
|
Tag "$T_SENTRY";
|
||||||
|
Inventory.Icon "I_Sentry";
|
||||||
|
Inventory.MaxAmount 1;
|
||||||
|
Inventory.PickupMessage "$I_SENTRY";
|
||||||
|
Inventory.RespawnTics 1050;
|
||||||
|
UnrealInventory.Charge 300;
|
||||||
|
}
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
SENT A -1;
|
||||||
|
Stop;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// The "head" of the sentry, attaches to the body
|
||||||
Class MinigunSentry : Actor
|
Class MinigunSentry : Actor
|
||||||
{
|
{
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
SENT A 15;
|
||||||
|
SENT A 0 A_PlaySound("sentry/raise");
|
||||||
|
SENR ABCDEFGHIJKLMNO 3;
|
||||||
|
Goto Idle;
|
||||||
|
Idle:
|
||||||
|
SENI A 1;
|
||||||
|
Wait;
|
||||||
|
Fire:
|
||||||
|
SENW ABCDEFGHIJKLMNOPQR 1;
|
||||||
|
Goto FireLoop;
|
||||||
|
FireLoop:
|
||||||
|
SENF ABCDEFGHIJKLMNOPQR 1;
|
||||||
|
Loop;
|
||||||
|
FireEnd:
|
||||||
|
SENU ABCDEFGHIJKLMNOPQR 1;
|
||||||
|
Goto Idle;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// The body of the sentry
|
||||||
|
Class MinigunSentryBase : Actor
|
||||||
|
{
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
SENT A 15;
|
||||||
|
SENR ABCDEFGHIJKLMNO 3;
|
||||||
|
Goto Idle;
|
||||||
|
Idle:
|
||||||
|
SENI A 1;
|
||||||
|
Wait;
|
||||||
|
Fire:
|
||||||
|
SENW ABCDEFGHIJKLMNOPQR 1;
|
||||||
|
Goto FireLoop;
|
||||||
|
FireLoop:
|
||||||
|
SENF ABCDEFGHIJKLMNOPQR 1;
|
||||||
|
Loop;
|
||||||
|
FireEnd:
|
||||||
|
SENU ABCDEFGHIJKLMNOPQR 1;
|
||||||
|
Goto Idle;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,50 @@
|
||||||
Class FlameAmmo : Ammo
|
Class FlameAmmo : Ammo
|
||||||
{
|
{
|
||||||
|
Default
|
||||||
|
{
|
||||||
|
Tag "$T_FLAMEAMMO";
|
||||||
|
Inventory.Icon "I_Napalm";
|
||||||
|
Inventory.PickupMessage "$I_FLAMEAMMO";
|
||||||
|
Inventory.Amount 75;
|
||||||
|
Inventory.MaxAmount 450;
|
||||||
|
Ammo.BackpackAmount 0;
|
||||||
|
Ammo.BackpackMaxAmount 900;
|
||||||
|
Ammo.DropAmount 30;
|
||||||
|
}
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
FLMA A -1;
|
||||||
|
Stop;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Class UFlamethrower : UnrealWeapon
|
Class UFlamethrower : UnrealWeapon
|
||||||
{
|
{
|
||||||
|
Default
|
||||||
|
{
|
||||||
|
Tag "$T_FLAMETHROWER";
|
||||||
|
Inventory.PickupMessage "$I_FLAMETHROWER";
|
||||||
|
Weapon.UpSound "flamet/select";
|
||||||
|
Weapon.SlotNumber 6;
|
||||||
|
Weapon.SelectionOrder 4;
|
||||||
|
Weapon.AmmoType "FlameAmmo";
|
||||||
|
Weapon.AmmoUse 1;
|
||||||
|
Weapon.AmmoType2 "FlameAmmo";
|
||||||
|
Weapon.AmmoUse2 30;
|
||||||
|
Weapon.AmmoGive 100;
|
||||||
|
UTWeapon.DropAmmo 50;
|
||||||
|
}
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
FLMP A 1 A_JumpIf(sting_flamet,2);
|
||||||
|
Wait;
|
||||||
|
FLMP B 1 A_JumpIf(sting_flamet,2);
|
||||||
|
Wait;
|
||||||
|
OFLP A 1 A_JumpIf(!sting_flamet,"Spawn");
|
||||||
|
Wait;
|
||||||
|
OFLP B 1 A_JumpIf(!sting_flamet,"Spawn+1");
|
||||||
|
Wait;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,35 @@
|
||||||
Class PeaceAmmo : Ammo
|
Class PeaceAmmo : Ammo
|
||||||
{
|
{
|
||||||
|
Default
|
||||||
|
{
|
||||||
|
Inventory.Icon "I_Peace";
|
||||||
|
Inventory.Amount 1;
|
||||||
|
Inventory.MaxAmount 8;
|
||||||
|
Ammo.BackpackAmount 0;
|
||||||
|
Ammo.BackpackMaxAmount 16;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Class Peacemaker : UnrealWeapon
|
Class Peacemaker : UnrealWeapon
|
||||||
{
|
{
|
||||||
|
Default
|
||||||
|
{
|
||||||
|
Tag "$T_PEACE";
|
||||||
|
Inventory.PickupMessage "$I_PEACE";
|
||||||
|
Weapon.UpSound "peace/select";
|
||||||
|
Weapon.SlotNumber 8;
|
||||||
|
Weapon.SelectionOrder 1;
|
||||||
|
Weapon.AmmoType "PeaceAmmo";
|
||||||
|
Weapon.AmmoUse 1;
|
||||||
|
Weapon.AmmoGive 1;
|
||||||
|
UTWeapon.DropAmmo 1;
|
||||||
|
}
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
PEAP A -1;
|
||||||
|
Stop;
|
||||||
|
PEAP B -1;
|
||||||
|
Stop;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,63 @@
|
||||||
Class UShells : Ammo
|
Class UShells : Ammo
|
||||||
{
|
{
|
||||||
|
Default
|
||||||
|
{
|
||||||
|
Tag "$T_SHELLS";
|
||||||
|
Inventory.Icon "I_ShotSh";
|
||||||
|
Inventory.PickupMessage "";
|
||||||
|
Inventory.Amount 12;
|
||||||
|
Inventory.MaxAmount 60;
|
||||||
|
Ammo.BackpackAmount 12;
|
||||||
|
Ammo.BackpackMaxAmount 120;
|
||||||
|
Ammo.DropAmount 6;
|
||||||
|
}
|
||||||
|
override String PickupMessage()
|
||||||
|
{
|
||||||
|
if ( PickupMsg.Length() > 0 ) return Super.PickupMessage();
|
||||||
|
return String.Format("%s%d%s",StringTable.Localize("$I_SHELLSL"),Amount,StringTable.Localize("$I_SHELLSR"));
|
||||||
|
}
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
QAMO A -1;
|
||||||
|
Stop;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Class UShells2 : UShells
|
Class UShells2 : UShells
|
||||||
{
|
{
|
||||||
|
Default
|
||||||
|
{
|
||||||
|
Tag "$T_SHELLS2";
|
||||||
|
Inventory.Amount 4;
|
||||||
|
Ammo.DropAmount 4;
|
||||||
|
+INVENTORY.IGNORESKILL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Class QuadShot : UnrealWeapon
|
Class QuadShot : UnrealWeapon
|
||||||
{
|
{
|
||||||
|
Default
|
||||||
|
{
|
||||||
|
Tag "$T_QUADSHOT";
|
||||||
|
Inventory.PickupMessage "$I_QUADSHOT";
|
||||||
|
Weapon.UpSound "quadshot/select";
|
||||||
|
Weapon.SlotNumber 3;
|
||||||
|
Weapon.SelectionOrder 2;
|
||||||
|
Weapon.AmmoType "UShells";
|
||||||
|
Weapon.AmmoUse 1;
|
||||||
|
Weapon.AmmoType2 "UShells";
|
||||||
|
Weapon.AmmoUse2 1;
|
||||||
|
Weapon.AmmoGive 20;
|
||||||
|
Weapon.Kickback 320;
|
||||||
|
UTWeapon.DropAmmo 10;
|
||||||
|
}
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
QUAP A -1;
|
||||||
|
Stop;
|
||||||
|
QUAP B -1;
|
||||||
|
Stop;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,51 @@
|
||||||
Class RazorAmmo : Ammo
|
Class RazorAmmo : Ammo
|
||||||
{
|
{
|
||||||
|
Default
|
||||||
|
{
|
||||||
|
Tag "$T_RIPPERAMMO";
|
||||||
|
Inventory.Icon "I_RazorA";
|
||||||
|
Inventory.PickupMessage "$I_RIPPERAMMO";
|
||||||
|
Inventory.Amount 25;
|
||||||
|
Inventory.MaxAmount 75;
|
||||||
|
Ammo.BackpackAmount 20;
|
||||||
|
Ammo.BackpackMaxAmount 150;
|
||||||
|
Ammo.DropAmount 15;
|
||||||
|
}
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
BHOP A 8 A_CheckProximity(1,"PlayerPawn",80,1,CPXF_ANCESTOR|CPXF_CHECKSIGHT);
|
||||||
|
Wait;
|
||||||
|
BHOP AA 16;
|
||||||
|
BHOP B 8 A_CheckProximity(1,"PlayerPawn",80,0,CPXF_ANCESTOR|CPXF_CHECKSIGHT|CPXF_EXACT);
|
||||||
|
Goto Spawn+3;
|
||||||
|
BHOP BB 16;
|
||||||
|
Goto Spawn;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Class Razorjack : UnrealWeapon
|
Class Razorjack : UnrealWeapon
|
||||||
{
|
{
|
||||||
|
Default
|
||||||
|
{
|
||||||
|
Tag "$T_RAZORJACK";
|
||||||
|
Inventory.PickupMessage "$I_RAZORJACK";
|
||||||
|
Weapon.UpSound "razorjack/select";
|
||||||
|
Weapon.SlotNumber 7;
|
||||||
|
Weapon.SelectionOrder 7;
|
||||||
|
Weapon.AmmoType "RazorAmmo";
|
||||||
|
Weapon.AmmoUse 1;
|
||||||
|
Weapon.AmmoType2 "RazorAmmo";
|
||||||
|
Weapon.AmmoUse2 1;
|
||||||
|
Weapon.AmmoGive 15;
|
||||||
|
UTWeapon.DropAmmo 10;
|
||||||
|
}
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
RZRP A -1;
|
||||||
|
Stop;
|
||||||
|
RZRP B -1;
|
||||||
|
Stop;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,69 @@
|
||||||
Class URifleAmmo : Ammo
|
Class URifleAmmo : Ammo
|
||||||
{
|
{
|
||||||
|
Default
|
||||||
|
{
|
||||||
|
Tag "$T_RIFLEAMMO";
|
||||||
|
Inventory.PickupMessage "";
|
||||||
|
Inventory.Amount 8;
|
||||||
|
Inventory.MaxAmount 50;
|
||||||
|
Ammo.BackpackAmount 12;
|
||||||
|
Ammo.BackpackMaxAmount 100;
|
||||||
|
Ammo.DropAmount 8;
|
||||||
|
+INVENTORY.IGNORESKILL;
|
||||||
|
}
|
||||||
|
override String PickupMessage()
|
||||||
|
{
|
||||||
|
if ( PickupMsg.Length() > 0 ) return Super.PickupMessage();
|
||||||
|
return String.Format("%s%d%s",StringTable.Localize("$I_RIFLEAMMOL"),Amount,StringTable.Localize("$I_RIFLEAMMOR"));
|
||||||
|
}
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
SBOX A -1;
|
||||||
|
Stop;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Class URifleAmmo2 : URifleAmmo
|
Class URifleAmmo2 : URifleAmmo
|
||||||
{
|
{
|
||||||
|
Default
|
||||||
|
{
|
||||||
|
Tag "$T_RIFLEAMMO2";
|
||||||
|
Inventory.PickupMessage "$I_RIFLEAMMO2";
|
||||||
|
Inventory.Amount 1;
|
||||||
|
Ammo.DropAmount 1;
|
||||||
|
+INVENTORY.IGNORESKILL;
|
||||||
|
}
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
SRND A -1;
|
||||||
|
Stop;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Class URifle : UnrealWeapon
|
Class URifle : UnrealWeapon
|
||||||
{
|
{
|
||||||
|
Default
|
||||||
|
{
|
||||||
|
Tag "$T_RIFLE";
|
||||||
|
Inventory.PickupMessage "$I_RIFLE";
|
||||||
|
Weapon.UpSound "rifle/select";
|
||||||
|
Weapon.SlotNumber 9;
|
||||||
|
Weapon.SelectionOrder 9;
|
||||||
|
Weapon.AmmoType "URifleAmmo";
|
||||||
|
Weapon.AmmoUse 1;
|
||||||
|
Weapon.AmmoType2 "URifleAmmo";
|
||||||
|
Weapon.AmmoUse2 1;
|
||||||
|
Weapon.AmmoGive 8;
|
||||||
|
UTWeapon.DropAmmo 4;
|
||||||
|
}
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
SRFP A -1;
|
||||||
|
Stop;
|
||||||
|
SRFP B -1;
|
||||||
|
Stop;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,50 @@
|
||||||
Class StunnerAmmo : Ammo
|
Class StunnerAmmo : Ammo
|
||||||
{
|
{
|
||||||
|
double rechargephase, rechargespeed;
|
||||||
|
|
||||||
|
Default
|
||||||
|
{
|
||||||
|
Inventory.Icon "I_Stun";
|
||||||
|
Inventory.Amount 10;
|
||||||
|
Inventory.MaxAmount 50;
|
||||||
|
Ammo.BackpackAmount 0;
|
||||||
|
Ammo.BackpackMaxAmount 50;
|
||||||
|
}
|
||||||
|
override void Tick()
|
||||||
|
{
|
||||||
|
Super.Tick();
|
||||||
|
if ( !Owner ) return;
|
||||||
|
if ( Amount < 10 ) rechargespeed = 1.1;
|
||||||
|
else rechargespeed = 0.11*Amount;
|
||||||
|
rechargephase += 1./rechargespeed;
|
||||||
|
if ( rechargephase < 7 ) return;
|
||||||
|
rechargephase = 0;
|
||||||
|
Amount = min(Amount+1,MaxAmount);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Class Stunner : UnrealWeapon
|
Class Stunner : UnrealWeapon
|
||||||
{
|
{
|
||||||
|
Default
|
||||||
|
{
|
||||||
|
Tag "$T_STUNNER";
|
||||||
|
Inventory.PickupMessage "$I_STUNNER";
|
||||||
|
Weapon.UpSound "stun/select";
|
||||||
|
Weapon.SlotNumber 4;
|
||||||
|
Weapon.SelectionOrder 9;
|
||||||
|
Weapon.AmmoType "StunnerAmmo";
|
||||||
|
Weapon.AmmoUse 1;
|
||||||
|
Weapon.AmmoType2 "StunnerAmmo";
|
||||||
|
Weapon.AmmoUse2 1;
|
||||||
|
Weapon.AmmoGive 50;
|
||||||
|
UTWeapon.DropAmmo 50;
|
||||||
|
}
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
STNP A -1;
|
||||||
|
Stop;
|
||||||
|
STNP B -1;
|
||||||
|
Stop;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,67 @@
|
||||||
Class UBioAmmo : Ammo
|
Class UBioAmmo : Ammo
|
||||||
{
|
{
|
||||||
|
Default
|
||||||
|
{
|
||||||
|
Tag "$T_SLUDGE";
|
||||||
|
Inventory.Icon "I_Sludge";
|
||||||
|
Inventory.PickupMessage "";
|
||||||
|
Inventory.Amount 25;
|
||||||
|
Inventory.MaxAmount 100;
|
||||||
|
Ammo.BackpackAmount 50;
|
||||||
|
Ammo.BackpackMaxAmount 200;
|
||||||
|
Ammo.DropAmount 10;
|
||||||
|
}
|
||||||
|
override String PickupMessage()
|
||||||
|
{
|
||||||
|
if ( PickupMsg.Length() > 0 ) return Super.PickupMessage();
|
||||||
|
return String.Format("%s%d%s",StringTable.Localize("$I_SLUDGEL"),Amount,StringTable.Localize("$I_SLUDGER"));
|
||||||
|
}
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
BIOA ABCDEFGHIJKLMNOPQRSTUVWYZ 1;
|
||||||
|
BIA2 ABCD 1;
|
||||||
|
Loop;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Class UBioAmmo2 : UBioAmmo
|
Class UBioAmmo2 : UBioAmmo
|
||||||
{
|
{
|
||||||
|
Default
|
||||||
|
{
|
||||||
|
Tag "$T_SLUDGE2";
|
||||||
|
Inventory.Amount 10;
|
||||||
|
Ammo.DropAmount 5;
|
||||||
|
}
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
BIOA ABCDEFGHIJKL 2;
|
||||||
|
Loop;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Class UBioRifle : UnrealWeapon
|
Class UBioRifle : UnrealWeapon
|
||||||
{
|
{
|
||||||
|
Default
|
||||||
|
{
|
||||||
|
Tag "$T_BIORIFLE";
|
||||||
|
Inventory.PickupMessage "$I_BIORIFLE";
|
||||||
|
Weapon.UpSound "ges/select";
|
||||||
|
Weapon.SlotNumber 8;
|
||||||
|
Weapon.SelectionOrder 8;
|
||||||
|
Weapon.AmmoType "UBioAmmo";
|
||||||
|
Weapon.AmmoUse 1;
|
||||||
|
Weapon.AmmoType2 "UBioAmmo";
|
||||||
|
Weapon.AmmoUse2 1;
|
||||||
|
Weapon.AmmoGive 25;
|
||||||
|
UTWeapon.DropAmmo 5;
|
||||||
|
}
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
BIOP A -1;
|
||||||
|
Stop;
|
||||||
|
BIOP B -1;
|
||||||
|
Stop;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,78 @@
|
||||||
Class URocketAmmo : Ammo
|
Class URocketAmmo : Ammo
|
||||||
{
|
{
|
||||||
|
Default
|
||||||
|
{
|
||||||
|
Tag "$T_ROCKETCAN";
|
||||||
|
Inventory.Icon "I_Rocket";
|
||||||
|
Inventory.PickupMessage "";
|
||||||
|
Inventory.Amount 12;
|
||||||
|
Inventory.MaxAmount 48;
|
||||||
|
Ammo.BackpackAmount 9;
|
||||||
|
Ammo.BackpackMaxAmount 96;
|
||||||
|
Ammo.DropAmount 6;
|
||||||
|
+INVENTORY.IGNORESKILL;
|
||||||
|
}
|
||||||
|
override String PickupMessage()
|
||||||
|
{
|
||||||
|
if ( PickupMsg.Length() > 0 ) return Super.PickupMessage();
|
||||||
|
return String.Format("%s%d%s",StringTable.Localize("$I_ROCKETCANL"),Amount,StringTable.Localize("$I_ROCKETCANR"));
|
||||||
|
}
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
RPAK A 8 A_CheckProximity(1,"PlayerPawn",80,1,CPXF_ANCESTOR|CPXF_CHECKSIGHT);
|
||||||
|
Wait;
|
||||||
|
RPAK AABCDEFGHIJ 8;
|
||||||
|
RPAK J 8 A_CheckProximity(1,"PlayerPawn",80,0,CPXF_ANCESTOR|CPXF_CHECKSIGHT|CPXF_EXACT);
|
||||||
|
Goto Spawn+12;
|
||||||
|
RPAK JJIHGFEDCBA 8;
|
||||||
|
Goto Spawn;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Class URocketAmmo2 : URocketAmmo
|
Class URocketAmmo2 : URocketAmmo
|
||||||
{
|
{
|
||||||
|
Default
|
||||||
|
{
|
||||||
|
Tag "$T_ROCKETCAN2";
|
||||||
|
Inventory.Amount 2;
|
||||||
|
Ammo.DropAmount 2;
|
||||||
|
+INVENTORY.IGNORESKILL;
|
||||||
|
}
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
RCKT A 8 A_CheckProximity(1,"PlayerPawn",80,1,CPXF_ANCESTOR|CPXF_CHECKSIGHT);
|
||||||
|
Wait;
|
||||||
|
RCKT AA 8;
|
||||||
|
RCKT B 8 A_CheckProximity(1,"PlayerPawn",80,0,CPXF_ANCESTOR|CPXF_CHECKSIGHT|CPXF_EXACT);
|
||||||
|
Goto Spawn+3;
|
||||||
|
RCKT BB 8;
|
||||||
|
Goto Spawn;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Class Eightball : UnrealWeapon
|
Class Eightball : UnrealWeapon
|
||||||
{
|
{
|
||||||
|
Default
|
||||||
|
{
|
||||||
|
Tag "$T_EIGHTBALL";
|
||||||
|
Inventory.PickupMessage "$I_EIGHTBALL";
|
||||||
|
Weapon.UpSound "eightball/select";
|
||||||
|
Weapon.SlotNumber 5;
|
||||||
|
Weapon.SelectionOrder 5;
|
||||||
|
Weapon.AmmoType "URocketAmmo";
|
||||||
|
Weapon.AmmoUse 1;
|
||||||
|
Weapon.AmmoType2 "URocketAmmo";
|
||||||
|
Weapon.AmmoUse2 1;
|
||||||
|
Weapon.AmmoGive 6;
|
||||||
|
UTWeapon.DropAmmo 3;
|
||||||
|
}
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
EBLP A -1;
|
||||||
|
Stop;
|
||||||
|
EBLP B -1;
|
||||||
|
Stop;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -43,6 +43,139 @@ Class UFlakAmmo : UFlakBox
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// subclass to save time, much of the behavior is the same anyway
|
||||||
|
Class UFlakChunk : FlakChunk
|
||||||
|
{
|
||||||
|
override void PostBeginPlay()
|
||||||
|
{
|
||||||
|
Actor.PostBeginPlay();
|
||||||
|
// no trail, spin much slower
|
||||||
|
lifetime = 0;
|
||||||
|
rollvel = FRandom[Flak](5,10)*RandomPick[Flak](-1,1);
|
||||||
|
pitchvel = FRandom[Flak](5,10)*RandomPick[Flak](-1,1);
|
||||||
|
yawvel = FRandom[Flak](5,10)*RandomPick[Flak](-1,1);
|
||||||
|
scale *= Frandom[Flak](0.8,1.2);
|
||||||
|
SetState(ResolveState("Spawn")+Random[Flak](0,3));
|
||||||
|
}
|
||||||
|
override void Tick()
|
||||||
|
{
|
||||||
|
oldvel = vel;
|
||||||
|
Actor.Tick();
|
||||||
|
if ( isFrozen() ) return;
|
||||||
|
// no slowing down in water, only set to falling
|
||||||
|
if ( waterlevel > 0 )
|
||||||
|
{
|
||||||
|
bNOGRAVITY = false;
|
||||||
|
bAMBUSH = true;
|
||||||
|
}
|
||||||
|
lifetime += lifespeed;
|
||||||
|
// no frame changes, smoke based on speed + age
|
||||||
|
if ( (waterlevel <= 0) && !bAMBUSH && !(GetAge()%2) )
|
||||||
|
{
|
||||||
|
let s = Spawn("UTSmoke",pos);
|
||||||
|
s.vel = (FRandom[Flak](-0.1,0.1),FRandom[Flak](-0.1,0.1),FRandom[Flak](-0.1,0.1));
|
||||||
|
s.alpha = (scale.x*clamp((120-GetAge())/120.+(vel.length()/20.),0.5,2.0))/0.5;
|
||||||
|
s.SetShade("AAAAAA");
|
||||||
|
}
|
||||||
|
else if ( waterlevel > 0 )
|
||||||
|
{
|
||||||
|
let s = Spawn("UTBubble",pos);
|
||||||
|
s.vel = (FRandom[Flak](-0.1,0.1),FRandom[Flak](-0.1,0.1),FRandom[Flak](-0.1,0.1));
|
||||||
|
s.scale *= scale.x*0.5;
|
||||||
|
}
|
||||||
|
if ( InStateSequence(CurState,FindState("Death")) ) return;
|
||||||
|
roll += rollvel;
|
||||||
|
pitch += pitchvel;
|
||||||
|
angle += pitchvel;
|
||||||
|
}
|
||||||
|
Default
|
||||||
|
{
|
||||||
|
DamageFunction 17; // exactly 1 point higher than UT
|
||||||
|
Scale 0.5;
|
||||||
|
}
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Bounce:
|
||||||
|
#### # 0
|
||||||
|
{
|
||||||
|
A_HandleBounce();
|
||||||
|
// override spin velocity changes from parent class
|
||||||
|
rollvel = FRandom[Flak](5,10)*RandomPick[Flak](-1,1);
|
||||||
|
pitchvel = FRandom[Flak](5,10)*RandomPick[Flak](-1,1);
|
||||||
|
yawvel = FRandom[Flak](5,10)*RandomPick[Flak](-1,1);
|
||||||
|
}
|
||||||
|
Goto Idle;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Also subclassed to save time, only the explosion needs to change
|
||||||
|
Class UFlakSlug : FlakSlug
|
||||||
|
{
|
||||||
|
action void A_UFlakExplode()
|
||||||
|
{
|
||||||
|
bForceXYBillboard = true;
|
||||||
|
A_SetRenderStyle(1.0,STYLE_Add);
|
||||||
|
A_SprayDecal("RocketBlast",50);
|
||||||
|
A_NoGravity();
|
||||||
|
A_SetScale(1.2);
|
||||||
|
UTMainHandler.DoBlast(self,120,75000);
|
||||||
|
A_Explode(70,120);
|
||||||
|
A_QuakeEx(4,4,4,8,0,170,"",QF_RELATIVE|QF_SCALEDOWN,falloff:120,rollIntensity:0.2);
|
||||||
|
A_PlaySound("flak/explode",CHAN_VOICE);
|
||||||
|
A_AlertMonsters();
|
||||||
|
if ( !Tracer ) Spawn("SlugSmoke",pos);
|
||||||
|
Spawn("SlugLight",pos);
|
||||||
|
Vector3 x, y, z;
|
||||||
|
double a, s;
|
||||||
|
[x, y, z] = dt_CoordUtil.GetAxes(pitch,angle,roll);
|
||||||
|
Actor p;
|
||||||
|
Vector3 spawnofs;
|
||||||
|
if ( BlockingMobj ) spawnofs = level.Vec3Diff(pos,BlockingMobj.Vec3Offset(0,0,BlockingMobj.height/2)).unit()*8;
|
||||||
|
else if ( BlockingFloor ) spawnofs = BlockingFloor.floorplane.Normal*8;
|
||||||
|
else if ( BlockingCeiling ) spawnofs = BlockingCeiling.ceilingplane.Normal*8;
|
||||||
|
else if ( BlockingLine )
|
||||||
|
{
|
||||||
|
spawnofs = (-BlockingLine.delta.y,BlockingLine.delta.x,0).unit()*8;
|
||||||
|
if ( !BlockingLine.sidedef[1] || (CurSector == BlockingLine.frontsector) )
|
||||||
|
spawnofs *= -1;
|
||||||
|
}
|
||||||
|
for ( int i=0; i<5; i++ )
|
||||||
|
{
|
||||||
|
p = Spawn("UFlakChunk",Vec3Offset(spawnofs.x,spawnofs.y,spawnofs.z));
|
||||||
|
p.bHITOWNER = true;
|
||||||
|
a = FRandom[Flak](0,360);
|
||||||
|
s = FRandom[Flak](0,0.1);
|
||||||
|
Vector3 dir = (x+y*cos(a)*s+z*sin(a)*s).unit();
|
||||||
|
p.angle = atan2(dir.y,dir.x);
|
||||||
|
p.pitch = -asin(dir.z);
|
||||||
|
p.vel = (cos(p.angle)*cos(p.pitch),sin(p.angle)*cos(p.pitch),-sin(p.pitch))*(p.speed+FRandom[Flak](-3,3));
|
||||||
|
p.target = target;
|
||||||
|
}
|
||||||
|
int numpt = Random[Flak](8,12);
|
||||||
|
for ( int i=0; i<numpt; i++ )
|
||||||
|
{
|
||||||
|
Vector3 pvel = (FRandom[Flak](-1,1),FRandom[Flak](-1,1),FRandom[Flak](-1,1)).unit()*FRandom[Flak](2,8);
|
||||||
|
let s = Spawn("UTSpark",pos);
|
||||||
|
s.vel = pvel;
|
||||||
|
}
|
||||||
|
numpt = Random[Flak](15,30);
|
||||||
|
for ( int i=0; i<numpt; i++ )
|
||||||
|
{
|
||||||
|
Vector3 pvel = (FRandom[Flak](-1,1),FRandom[Flak](-1,1),FRandom[Flak](-1,1)).unit()*FRandom[Flak](6,16);
|
||||||
|
let s = Spawn("UTChip",pos);
|
||||||
|
s.vel = pvel;
|
||||||
|
s.scale *= FRandom[Flak](0.9,1.8);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Death:
|
||||||
|
FEXP A 0 A_UFlakExplode();
|
||||||
|
FEXP ABCDEFGHIJ 2 BRIGHT;
|
||||||
|
Stop;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Class UFlakCannon : UnrealWeapon
|
Class UFlakCannon : UnrealWeapon
|
||||||
{
|
{
|
||||||
action void A_Loading( bool first = false )
|
action void A_Loading( bool first = false )
|
||||||
|
|
@ -65,6 +198,49 @@ Class UFlakCannon : UnrealWeapon
|
||||||
UTMainHandler.DoSwing(self,(FRandom[Flak](-0.3,-0.8),FRandom[Flak](-0.5,0.5)),4,-1.5,2,SWING_Spring,2,2);
|
UTMainHandler.DoSwing(self,(FRandom[Flak](-0.3,-0.8),FRandom[Flak](-0.5,0.5)),4,-1.5,2,SWING_Spring,2,2);
|
||||||
if ( !Dampener.Active(self) ) A_AlertMonsters();
|
if ( !Dampener.Active(self) ) A_AlertMonsters();
|
||||||
A_QuakeEx(1,1,1,3,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.05);
|
A_QuakeEx(1,1,1,3,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.05);
|
||||||
|
Vector3 x, y, z;
|
||||||
|
double a, s;
|
||||||
|
[x, y, z] = dt_CoordUtil.GetAxes(pitch,angle,roll);
|
||||||
|
Vector3 origin = (pos.x,pos.y,player.viewz)+10.0*x+5.0*y-4.0*z;
|
||||||
|
[x, y, z] = dt_CoordUtil.GetAxes(BulletSlope(),angle,roll);
|
||||||
|
Vector3 offsets[8]; // vanilla adds these to each chunk
|
||||||
|
offsets[0] = (0,0,0);
|
||||||
|
offsets[1] = -z;
|
||||||
|
offsets[2] = 2*y+z;
|
||||||
|
offsets[3] = -y;
|
||||||
|
offsets[4] = 2*y-z;
|
||||||
|
offsets[5] = (0,0,0);
|
||||||
|
offsets[6] = y-z;
|
||||||
|
offsets[7] = 2*y+z;
|
||||||
|
Actor p;
|
||||||
|
for ( int i=0; i<8; i++ )
|
||||||
|
{
|
||||||
|
p = Spawn("UFlakChunk",level.Vec3Offset(origin,offsets[i]));
|
||||||
|
a = FRandom[Flak](0,360);
|
||||||
|
s = FRandom[Flak](0,0.1);
|
||||||
|
Vector3 dir = (x+y*cos(a)*s+z*sin(a)*s).unit();
|
||||||
|
p.angle = atan2(dir.y,dir.x);
|
||||||
|
p.pitch = -asin(dir.z);
|
||||||
|
p.vel = (cos(p.angle)*cos(p.pitch),sin(p.angle)*cos(p.pitch),-sin(p.pitch))*(p.speed+FRandom[Flak](-3,3));
|
||||||
|
p.target = self;
|
||||||
|
}
|
||||||
|
int numpt = Random[Flak](20,30);
|
||||||
|
for ( int i=0; i<numpt; i++ )
|
||||||
|
{
|
||||||
|
let s = Spawn("UTViewSpark",origin);
|
||||||
|
UTViewSpark(s).ofs = (10,5,-4);
|
||||||
|
UTViewSpark(s).vvel = (FRandom[Flak](3,12),FRandom[Flak](-4,4),FRandom[Flak](-4,4));
|
||||||
|
s.target = self;
|
||||||
|
}
|
||||||
|
for ( int i=0; i<10; i++ )
|
||||||
|
{
|
||||||
|
let s = Spawn("UTViewSmoke",origin);
|
||||||
|
UTViewSmoke(s).ofs = (10,5,-4);
|
||||||
|
UTViewSmoke(s).vvel = (FRandom[Flak](0,1.2),FRandom[Flak](-.4,.4),FRandom[Flak](-.4,.4));
|
||||||
|
s.target = self;
|
||||||
|
s.scale *= 1.6;
|
||||||
|
s.alpha *= 0.5;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
action void A_FireSlug()
|
action void A_FireSlug()
|
||||||
{
|
{
|
||||||
|
|
@ -81,6 +257,32 @@ Class UFlakCannon : UnrealWeapon
|
||||||
UTMainHandler.DoSwing(self,(FRandom[Flak](-0.4,-0.8),FRandom[Flak](0.4,0.8)),4,-1,3,SWING_Spring,3,5);
|
UTMainHandler.DoSwing(self,(FRandom[Flak](-0.4,-0.8),FRandom[Flak](0.4,0.8)),4,-1,3,SWING_Spring,3,5);
|
||||||
if ( !Dampener.Active(self) ) A_AlertMonsters();
|
if ( !Dampener.Active(self) ) A_AlertMonsters();
|
||||||
A_QuakeEx(2,2,2,6,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.1);
|
A_QuakeEx(2,2,2,6,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.1);
|
||||||
|
Vector3 x, y, z;
|
||||||
|
double a, s;
|
||||||
|
[x, y, z] = dt_CoordUtil.GetAxes(pitch,angle,roll);
|
||||||
|
Vector3 origin = (pos.x,pos.y,player.viewz)+10.0*x+5.0*y-4.0*z;
|
||||||
|
Actor p = Spawn("UFlakSlug",origin);
|
||||||
|
p.angle = angle;
|
||||||
|
p.pitch = BulletSlope();
|
||||||
|
p.vel = (cos(p.angle)*cos(p.pitch),sin(p.angle)*cos(p.pitch),-sin(p.pitch))*p.speed;
|
||||||
|
p.target = self;
|
||||||
|
int numpt = Random[Flak](10,15);
|
||||||
|
for ( int i=0; i<numpt; i++ )
|
||||||
|
{
|
||||||
|
let s = Spawn("UTViewSpark",origin);
|
||||||
|
UTViewSpark(s).ofs = (10,5,-4);
|
||||||
|
UTViewSpark(s).vvel = (FRandom[Flak](3,12),FRandom[Flak](-4,4),FRandom[Flak](-4,4));
|
||||||
|
s.target = self;
|
||||||
|
}
|
||||||
|
for ( int i=0; i<8; i++ )
|
||||||
|
{
|
||||||
|
let s = Spawn("UTViewSmoke",origin);
|
||||||
|
UTViewSmoke(s).ofs = (10,5,-4);
|
||||||
|
UTViewSmoke(s).vvel = (FRandom[Flak](0,1.2),FRandom[Flak](-.8,.8),FRandom[Flak](-.8,.8));
|
||||||
|
s.target = self;
|
||||||
|
s.scale *= 1.6;
|
||||||
|
s.alpha *= 0.5;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Default
|
Default
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ Class UMiniAmmo : Ammo
|
||||||
Default
|
Default
|
||||||
{
|
{
|
||||||
Tag "$T_MINIAMMO";
|
Tag "$T_MINIAMMO";
|
||||||
|
Inventory.Icon "I_ShellA";
|
||||||
Inventory.PickupMessage "";
|
Inventory.PickupMessage "";
|
||||||
Inventory.Amount 50;
|
Inventory.Amount 50;
|
||||||
Inventory.MaxAmount 200;
|
Inventory.MaxAmount 200;
|
||||||
|
|
@ -15,8 +16,36 @@ Class UMiniAmmo : Ammo
|
||||||
if ( PickupMsg.Length() > 0 ) return Super.PickupMessage();
|
if ( PickupMsg.Length() > 0 ) return Super.PickupMessage();
|
||||||
return String.Format("%s%d%s",StringTable.Localize("$I_MINIAMMOL"),Amount,StringTable.Localize("$I_MINIAMMOR"));
|
return String.Format("%s%d%s",StringTable.Localize("$I_MINIAMMOL"),Amount,StringTable.Localize("$I_MINIAMMOR"));
|
||||||
}
|
}
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
MAMO A -1;
|
||||||
|
Stop;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Class UMinigun : UnrealWeapon
|
Class UMinigun : UnrealWeapon
|
||||||
{
|
{
|
||||||
|
Default
|
||||||
|
{
|
||||||
|
Tag "$T_MINIGUN";
|
||||||
|
Inventory.PickupMessage "$I_MINIGUN";
|
||||||
|
Weapon.UpSound "minigun/select";
|
||||||
|
Weapon.SlotNumber 0;
|
||||||
|
Weapon.SelectionOrder 10;
|
||||||
|
Weapon.AmmoType "UMiniAmmo";
|
||||||
|
Weapon.AmmoUse 1;
|
||||||
|
Weapon.AmmoType2 "UMiniAmmo";
|
||||||
|
Weapon.AmmoUse2 1;
|
||||||
|
Weapon.AmmoGive 50;
|
||||||
|
UTWeapon.DropAmmo 25;
|
||||||
|
}
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
MGNP A -1;
|
||||||
|
Stop;
|
||||||
|
MGNP B -1;
|
||||||
|
Stop;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -78,6 +78,7 @@ Class UPlayer : UTPlayer
|
||||||
{
|
{
|
||||||
if ( !(AllActorClasses[i].GetParentClass() is "UnrealArmor") ) continue;
|
if ( !(AllActorClasses[i].GetParentClass() is "UnrealArmor") ) continue;
|
||||||
let item = Inventory(Spawn(AllActorClasses[i]));
|
let item = Inventory(Spawn(AllActorClasses[i]));
|
||||||
|
item.ClearCounters(); // don't increase item counts
|
||||||
if ( !item.CallTryPickup(self) ) item.Destroy();
|
if ( !item.CallTryPickup(self) ) item.Destroy();
|
||||||
}
|
}
|
||||||
if ( !giveall ) return;
|
if ( !giveall ) return;
|
||||||
|
|
@ -735,21 +736,13 @@ Class UnrealMainHandler : EventHandler
|
||||||
if ( (e.Replacee == 'Chainsaw') || (e.Replacee == 'Gauntlets') )
|
if ( (e.Replacee == 'Chainsaw') || (e.Replacee == 'Gauntlets') )
|
||||||
{
|
{
|
||||||
if ( !Random[Replacements](0,3) ) e.Replacement = 'WeaponPowerUp';
|
if ( !Random[Replacements](0,3) ) e.Replacement = 'WeaponPowerUp';
|
||||||
else switch ( Random[Replacements](0,3) )
|
else if ( Random[Replacements](0,2) )
|
||||||
{
|
{
|
||||||
case 0:
|
if ( Random[Replacements](0,1) ) e.Replacement = 'Bonesaw';
|
||||||
e.Replacement = 'Bonesaw';
|
else e.Replacement = 'Stunner';
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
e.Replacement = 'Stunner';
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
e.Replacement = 'Betamag';
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
e.Replacement = 'Automag';
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
else if ( !Random[Replacements](0,2) ) e.Replacement = 'Betamag';
|
||||||
|
else e.Replacement = 'Automag';
|
||||||
}
|
}
|
||||||
else if ( (e.Replacee == 'Fist') || (e.Replacee == 'Staff') ) e.Replacement = 'DispersionPistol';
|
else if ( (e.Replacee == 'Fist') || (e.Replacee == 'Staff') ) e.Replacement = 'DispersionPistol';
|
||||||
else if ( (e.Replacee == 'Pistol') || (e.Replacee == 'GoldWand') )
|
else if ( (e.Replacee == 'Pistol') || (e.Replacee == 'GoldWand') )
|
||||||
|
|
@ -794,7 +787,7 @@ Class UnrealMainHandler : EventHandler
|
||||||
}
|
}
|
||||||
else if ( (e.Replacee == 'PlasmaRifle') || (e.Replacee == 'SkullRod') )
|
else if ( (e.Replacee == 'PlasmaRifle') || (e.Replacee == 'SkullRod') )
|
||||||
{
|
{
|
||||||
if ( !Random[Replacements](0,3) ) e.Replacement = 'Impaler';
|
if ( !Random[Replacements](0,2) ) e.Replacement = 'Impaler';
|
||||||
else if ( Random[Replacements](0,1) ) e.Replacement = 'URifle';
|
else if ( Random[Replacements](0,1) ) e.Replacement = 'URifle';
|
||||||
else e.Replacement = 'UBioRifle';
|
else e.Replacement = 'UBioRifle';
|
||||||
}
|
}
|
||||||
|
|
@ -868,7 +861,11 @@ Class UnrealMainHandler : EventHandler
|
||||||
}
|
}
|
||||||
else if ( (e.Replacee == 'Cell') || (e.Replacee == 'SkullRodAmmo') )
|
else if ( (e.Replacee == 'Cell') || (e.Replacee == 'SkullRodAmmo') )
|
||||||
{
|
{
|
||||||
if ( !Random[Replacements](0,4) ) e.Replacement = 'BigAmmo2';
|
if ( !Random[Replacements](0,4) )
|
||||||
|
{
|
||||||
|
if ( !Random[Replacements](0,2) ) e.Replacement = 'BigAmmo2';
|
||||||
|
else e.Replacement = 'BigAmmo3';
|
||||||
|
}
|
||||||
else if ( !Random[Replacements](0,3) )
|
else if ( !Random[Replacements](0,3) )
|
||||||
{
|
{
|
||||||
if ( !Random[Replacements](0,3) ) e.Replacement = 'ImpalerAmmo';
|
if ( !Random[Replacements](0,3) ) e.Replacement = 'ImpalerAmmo';
|
||||||
|
|
@ -887,7 +884,11 @@ Class UnrealMainHandler : EventHandler
|
||||||
}
|
}
|
||||||
else if ( (e.Replacee == 'CellPack') || (e.Replacee == 'SkullRodHefty') )
|
else if ( (e.Replacee == 'CellPack') || (e.Replacee == 'SkullRodHefty') )
|
||||||
{
|
{
|
||||||
if ( !Random[Replacements](0,4) ) e.Replacement = 'BigAmmo';
|
if ( !Random[Replacements](0,4) )
|
||||||
|
{
|
||||||
|
if ( !Random[Replacements](0,2) ) e.Replacement = 'BigAmmo';
|
||||||
|
else e.Replacement = 'BigAmmo2';
|
||||||
|
}
|
||||||
else if ( !Random[Replacements](0,3) ) e.Replacement = 'ImpalerAmmo';
|
else if ( !Random[Replacements](0,3) ) e.Replacement = 'ImpalerAmmo';
|
||||||
else if ( Random[Replacements](0,1) ) e.Replacement = 'UBioAmmo';
|
else if ( Random[Replacements](0,1) ) e.Replacement = 'UBioAmmo';
|
||||||
else e.Replacement = 'URifleAmmo';
|
else e.Replacement = 'URifleAmmo';
|
||||||
|
|
|
||||||
|
|
@ -233,7 +233,7 @@ Class UnrealHUD : BaseStatusBar
|
||||||
Screen.DrawTexture(IconBase,false,CurX,CurY,DTA_VirtualWidthF,ClipX,DTA_VirtualHeightF,ClipY,DTA_KeepRatio,true);
|
Screen.DrawTexture(IconBase,false,CurX,CurY,DTA_VirtualWidthF,ClipX,DTA_VirtualHeightF,ClipY,DTA_KeepRatio,true);
|
||||||
Screen.DrawTexture(i.Icon,false,dx,dy,DTA_VirtualWidthF,dw,DTA_VirtualHeightF,dh,DTA_KeepRatio,true,DTA_TopOffset,0,DTA_LeftOffset,0);
|
Screen.DrawTexture(i.Icon,false,dx,dy,DTA_VirtualWidthF,dw,DTA_VirtualHeightF,dh,DTA_KeepRatio,true,DTA_TopOffset,0,DTA_LeftOffset,0);
|
||||||
}
|
}
|
||||||
if ( (i is 'UnrealInventory') && (UnrealInventory(i).DefaultCharge > 0) )
|
if ( (i is 'UnrealInventory') && (UnrealInventory(i).DefaultCharge > 0) && (UnrealInventory(i).bActive || (UnrealInventory(i).Charge < UnrealInventory(i).DefaultCharge)) )
|
||||||
Screen.DrawTexture(HudLine,false,CurX+2,CurY+29,DTA_VirtualWidthF,ClipX,DTA_VirtualHeightF,ClipY,DTA_KeepRatio,true,DTA_WindowRightF,Min(28.*(UnrealInventory(i).Charge/double(UnrealInventory(i).DefaultCharge)),28.));
|
Screen.DrawTexture(HudLine,false,CurX+2,CurY+29,DTA_VirtualWidthF,ClipX,DTA_VirtualHeightF,ClipY,DTA_KeepRatio,true,DTA_WindowRightF,Min(28.*(UnrealInventory(i).Charge/double(UnrealInventory(i).DefaultCharge)),28.));
|
||||||
else if ( (i is 'UTArmor') && !HudMode )
|
else if ( (i is 'UTArmor') && !HudMode )
|
||||||
Screen.DrawTexture(HudLine,false,CurX+2,CurY+29,DTA_VirtualWidthF,ClipX,DTA_VirtualHeightF,ClipY,DTA_KeepRatio,true,DTA_WindowRightF,Min(28.*(i.Amount/double(i.MaxAmount)),28.));
|
Screen.DrawTexture(HudLine,false,CurX+2,CurY+29,DTA_VirtualWidthF,ClipX,DTA_VirtualHeightF,ClipY,DTA_KeepRatio,true,DTA_WindowRightF,Min(28.*(i.Amount/double(i.MaxAmount)),28.));
|
||||||
|
|
|
||||||
|
|
@ -270,8 +270,41 @@ Class UJumpBoots : UnrealInventory
|
||||||
|
|
||||||
Class MotionDetector : UnrealInventory
|
Class MotionDetector : UnrealInventory
|
||||||
{
|
{
|
||||||
|
Default
|
||||||
|
{
|
||||||
|
Tag "$T_DETECTOR";
|
||||||
|
+COUNTITEM;
|
||||||
|
+INVENTORY.BIGPOWERUP;
|
||||||
|
+INVENTORY.ALWAYSPICKUP;
|
||||||
|
Inventory.MaxAmount 1;
|
||||||
|
Inventory.Icon "I_Detect";
|
||||||
|
Inventory.PickupMessage "$I_DETECTOR";
|
||||||
|
Inventory.RespawnTics 1050;
|
||||||
|
UnrealInventory.Charge 3500;
|
||||||
|
}
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
MDET A -1;
|
||||||
|
Stop;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Class SCUBAGear : UnrealInventory
|
Class SCUBAGear : UnrealInventory
|
||||||
{
|
{
|
||||||
|
Default
|
||||||
|
{
|
||||||
|
Tag "$T_SCUBA";
|
||||||
|
Inventory.MaxAmount 1;
|
||||||
|
Inventory.Icon "I_Scuba";
|
||||||
|
Inventory.PickupMessage "$I_SCUBA";
|
||||||
|
Inventory.RespawnTics 700;
|
||||||
|
UnrealInventory.Charge 4200;
|
||||||
|
}
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
SCUB A -1;
|
||||||
|
Stop;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,14 @@
|
||||||
Class UTranslocatorAmmo : Ammo
|
Class UTranslocatorAmmo : Ammo
|
||||||
{
|
{
|
||||||
|
Default
|
||||||
|
{
|
||||||
|
Inventory.Icon "I_Tele";
|
||||||
|
Inventory.Amount 1;
|
||||||
|
Inventory.MaxAmount 2;
|
||||||
|
Ammo.BackpackAmount 0;
|
||||||
|
Ammo.BackpackMaxAmount 2;
|
||||||
|
+INVENTORY.IGNORESKILL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Class UTranslocator : UnrealWeapon
|
Class UTranslocator : UnrealWeapon
|
||||||
|
|
@ -9,4 +18,27 @@ Class UTranslocator : UnrealWeapon
|
||||||
if ( !sting_telegun ) return false; // not allowed
|
if ( !sting_telegun ) return false; // not allowed
|
||||||
return Super.TryPickup(toucher);
|
return Super.TryPickup(toucher);
|
||||||
}
|
}
|
||||||
|
Default
|
||||||
|
{
|
||||||
|
Tag "$T_TELEGUN";
|
||||||
|
Inventory.PickupMessage "$I_TELEGUN";
|
||||||
|
Weapon.SlotNumber 9;
|
||||||
|
Weapon.SelectionOrder 10;
|
||||||
|
Weapon.AmmoType1 "UTranslocatorAmmo";
|
||||||
|
Weapon.AmmoUse1 1;
|
||||||
|
Weapon.AmmoType2 "UTranslocatorAmmo";
|
||||||
|
Weapon.AmmoUse2 1;
|
||||||
|
Weapon.AmmoGive 2;
|
||||||
|
UTWeapon.DropAmmo 2;
|
||||||
|
+WEAPON.NO_AUTO_SWITCH;
|
||||||
|
+WEAPON.CHEATNOTWEAPON;
|
||||||
|
}
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
TLCP A -1;
|
||||||
|
Stop;
|
||||||
|
TLCP B -1;
|
||||||
|
Stop;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||