Minigun implemented. Some minor adjustments to weapon model offsets.
Allow armor/pads to replace shield belt when it's not at max capacity (emulating UT behavior).
|
|
@ -32,7 +32,7 @@ Model "UTChainsaw"
|
||||||
SurfaceSkin 0 2 "Jchainsaw3.png"
|
SurfaceSkin 0 2 "Jchainsaw3.png"
|
||||||
SurfaceSkin 0 3 "Jchainsaw4.png"
|
SurfaceSkin 0 3 "Jchainsaw4.png"
|
||||||
Scale -0.24 0.12 0.24
|
Scale -0.24 0.12 0.24
|
||||||
Offset 5.6 -14.8 -7.2
|
Offset 6.4 -14.8 -7.2
|
||||||
// these adjustments are my own so it looks right, otherwise it just clips through the screen
|
// these adjustments are my own so it looks right, otherwise it just clips through the screen
|
||||||
// this kinda happens in UT too, since it was made without widescreen in mind
|
// this kinda happens in UT too, since it was made without widescreen in mind
|
||||||
AngleOffset 5
|
AngleOffset 5
|
||||||
|
|
|
||||||
|
|
@ -758,8 +758,8 @@ Model "FlakCannon"
|
||||||
SurfaceSkin 0 4 "flakammoledbase.png"
|
SurfaceSkin 0 4 "flakammoledbase.png"
|
||||||
AngleOffset 90
|
AngleOffset 90
|
||||||
PitchOffset 180
|
PitchOffset 180
|
||||||
RollOffset 174.35
|
RollOffset 174.375
|
||||||
Scale 0.28 -0.12 0.28
|
Scale 0.28 -0.14 0.28
|
||||||
Offset 8.6 -10.4 -12.8
|
Offset 8.6 -10.4 -12.8
|
||||||
|
|
||||||
// select
|
// select
|
||||||
|
|
|
||||||
|
|
@ -262,7 +262,7 @@ Model "BioRifle"
|
||||||
AngleOffset 94.21875
|
AngleOffset 94.21875
|
||||||
RollOffset 8.4375
|
RollOffset 8.4375
|
||||||
Scale 0.125 -0.06 0.125
|
Scale 0.125 -0.06 0.125
|
||||||
Offset 9.8 -17.6 -10.4
|
Offset 9.8 -17.6 -9.4
|
||||||
|
|
||||||
// select
|
// select
|
||||||
FrameIndex BIOS A 0 0
|
FrameIndex BIOS A 0 0
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@ Model "ImpactHammer"
|
||||||
AngleOffset 90
|
AngleOffset 90
|
||||||
RollOffset -85
|
RollOffset -85
|
||||||
Scale 0.1 -0.05 0.1
|
Scale 0.1 -0.05 0.1
|
||||||
Offset 5.8 -12.8 -7.7
|
Offset 4.8 -11.8 -6.7
|
||||||
|
|
||||||
// select
|
// select
|
||||||
FrameIndex IMPS A 0 0
|
FrameIndex IMPS A 0 0
|
||||||
|
|
|
||||||
249
modeldef.minigun
|
|
@ -10,6 +10,19 @@ Model "MiniAmmo"
|
||||||
FrameIndex MAMO A 0 0
|
FrameIndex MAMO A 0 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Model "MinigunTracer"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 0 "MiniTrace_d.3d"
|
||||||
|
Skin 0 "JUT_Tracer_01.png"
|
||||||
|
Scale 0.6 0.2 0.24
|
||||||
|
USEACTORPITCH
|
||||||
|
USEACTORROLL
|
||||||
|
DONTCULLBACKFACES
|
||||||
|
|
||||||
|
FrameIndex TRAC A 0 0
|
||||||
|
}
|
||||||
|
|
||||||
Model "Minigun"
|
Model "Minigun"
|
||||||
{
|
{
|
||||||
Path "models"
|
Path "models"
|
||||||
|
|
@ -33,3 +46,239 @@ Model "Minigun"
|
||||||
|
|
||||||
FrameIndex MGNP B 1 0
|
FrameIndex MGNP B 1 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Model "Minigun"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 2 "Flat_d.3d"
|
||||||
|
Skin 2 "Muz1.png"
|
||||||
|
Scale 0.08 0.08 0.08
|
||||||
|
Offset 5.0 -32.0 -8.0
|
||||||
|
AngleOffset 90
|
||||||
|
PitchOffset 90
|
||||||
|
|
||||||
|
FrameIndex MMUZ A 2 0
|
||||||
|
}
|
||||||
|
Model "Minigun"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 2 "Flat_d.3d"
|
||||||
|
Skin 2 "Muz2.png"
|
||||||
|
Scale 0.08 0.08 0.08
|
||||||
|
Offset 5.0 -32.0 -8.0
|
||||||
|
AngleOffset 90
|
||||||
|
PitchOffset 90
|
||||||
|
|
||||||
|
FrameIndex MMUZ B 2 0
|
||||||
|
}
|
||||||
|
Model "Minigun"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 2 "Flat_d.3d"
|
||||||
|
Skin 2 "Muz3.png"
|
||||||
|
Scale 0.08 0.08 0.08
|
||||||
|
Offset 5.0 -32.0 -8.0
|
||||||
|
AngleOffset 90
|
||||||
|
PitchOffset 90
|
||||||
|
|
||||||
|
FrameIndex MMUZ C 2 0
|
||||||
|
}
|
||||||
|
Model "Minigun"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 2 "Flat_d.3d"
|
||||||
|
Skin 2 "Muz4.png"
|
||||||
|
Scale 0.08 0.08 0.08
|
||||||
|
Offset 5.0 -32.0 -8.0
|
||||||
|
AngleOffset 90
|
||||||
|
PitchOffset 90
|
||||||
|
|
||||||
|
FrameIndex MMUZ D 2 0
|
||||||
|
}
|
||||||
|
Model "Minigun"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 2 "Flat_d.3d"
|
||||||
|
Skin 2 "Muz5.png"
|
||||||
|
Scale 0.08 0.08 0.08
|
||||||
|
Offset 5.0 -32.0 -8.0
|
||||||
|
AngleOffset 90
|
||||||
|
PitchOffset 90
|
||||||
|
|
||||||
|
FrameIndex MMUZ E 2 0
|
||||||
|
}
|
||||||
|
Model "Minigun"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 2 "Flat_d.3d"
|
||||||
|
Skin 2 "Muz6.png"
|
||||||
|
Scale 0.08 0.08 0.08
|
||||||
|
Offset 5.0 -32.0 -8.0
|
||||||
|
AngleOffset 90
|
||||||
|
PitchOffset 90
|
||||||
|
|
||||||
|
FrameIndex MMUZ F 2 0
|
||||||
|
}
|
||||||
|
Model "Minigun"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 2 "Flat_d.3d"
|
||||||
|
Skin 2 "Muz7.png"
|
||||||
|
Scale 0.08 0.08 0.08
|
||||||
|
Offset 5.0 -32.0 -8.0
|
||||||
|
AngleOffset 90
|
||||||
|
PitchOffset 90
|
||||||
|
|
||||||
|
FrameIndex MMUZ G 2 0
|
||||||
|
}
|
||||||
|
Model "Minigun"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 2 "Flat_d.3d"
|
||||||
|
Skin 2 "Muz8.png"
|
||||||
|
Scale 0.08 0.08 0.08
|
||||||
|
Offset 5.0 -32.0 -8.0
|
||||||
|
AngleOffset 90
|
||||||
|
PitchOffset 90
|
||||||
|
|
||||||
|
FrameIndex MMUZ H 2 0
|
||||||
|
}
|
||||||
|
Model "Minigun"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 2 "Flat_d.3d"
|
||||||
|
Skin 2 "Muz9.png"
|
||||||
|
Scale 0.08 0.08 0.08
|
||||||
|
Offset 5.0 -32.0 -8.0
|
||||||
|
AngleOffset 90
|
||||||
|
PitchOffset 90
|
||||||
|
|
||||||
|
FrameIndex MMUZ I 2 0
|
||||||
|
}
|
||||||
|
|
||||||
|
Model "Minigun"
|
||||||
|
{
|
||||||
|
Path "models"
|
||||||
|
Model 0 "Minigun2m_d.3d"
|
||||||
|
SurfaceSkin 0 0 "Mini_t1.png"
|
||||||
|
SurfaceSkin 0 1 "Mini_t2.png"
|
||||||
|
SurfaceSkin 0 2 "Mini_t3.png"
|
||||||
|
SurfaceSkin 0 3 "Mini_t4.png"
|
||||||
|
SurfaceSkin 0 4 "miniammoledbase.png"
|
||||||
|
Scale 0.12 -0.06 0.12
|
||||||
|
Offset 0.0 -15.5 -12.8
|
||||||
|
AngleOffset 90
|
||||||
|
|
||||||
|
// Select
|
||||||
|
FrameIndex MGNS A 0 0
|
||||||
|
FrameIndex MGNS B 0 1
|
||||||
|
FrameIndex MGNS C 0 2
|
||||||
|
FrameIndex MGNS D 0 3
|
||||||
|
FrameIndex MGNS E 0 4
|
||||||
|
FrameIndex MGNS F 0 5
|
||||||
|
FrameIndex MGNS G 0 6
|
||||||
|
FrameIndex MGNS H 0 7
|
||||||
|
FrameIndex MGNS I 0 8
|
||||||
|
FrameIndex MGNS J 0 9
|
||||||
|
FrameIndex MGNS K 0 10
|
||||||
|
FrameIndex MGNS L 0 11
|
||||||
|
FrameIndex MGNS M 0 12
|
||||||
|
FrameIndex MGNS N 0 13
|
||||||
|
FrameIndex MGNS O 0 14
|
||||||
|
FrameIndex MGNS P 0 15
|
||||||
|
FrameIndex MGNS Q 0 16
|
||||||
|
FrameIndex MGNS R 0 17
|
||||||
|
FrameIndex MGNS S 0 18
|
||||||
|
FrameIndex MGNS T 0 19
|
||||||
|
// Fire
|
||||||
|
FrameIndex MGNF A 0 61
|
||||||
|
FrameIndex MGNF B 0 62
|
||||||
|
FrameIndex MGNF C 0 63
|
||||||
|
FrameIndex MGNF D 0 64
|
||||||
|
FrameIndex MGNF E 0 65
|
||||||
|
FrameIndex MGNF F 0 66
|
||||||
|
FrameIndex MGNF G 0 67
|
||||||
|
FrameIndex MGNF H 0 68
|
||||||
|
FrameIndex MGNF I 0 69
|
||||||
|
FrameIndex MGNF J 0 70
|
||||||
|
FrameIndex MGNF K 0 71
|
||||||
|
FrameIndex MGNF L 0 72
|
||||||
|
FrameIndex MGNF M 0 73
|
||||||
|
FrameIndex MGNF N 0 74
|
||||||
|
FrameIndex MGNF O 0 75
|
||||||
|
FrameIndex MGNF P 0 76
|
||||||
|
FrameIndex MGNF Q 0 77
|
||||||
|
FrameIndex MGNF R 0 78
|
||||||
|
FrameIndex MGNF S 0 79
|
||||||
|
// Unwind
|
||||||
|
FrameIndex MGNU A 0 80
|
||||||
|
FrameIndex MGNU B 0 81
|
||||||
|
FrameIndex MGNU C 0 82
|
||||||
|
FrameIndex MGNU D 0 83
|
||||||
|
FrameIndex MGNU E 0 84
|
||||||
|
FrameIndex MGNU F 0 85
|
||||||
|
FrameIndex MGNU G 0 86
|
||||||
|
FrameIndex MGNU H 0 87
|
||||||
|
FrameIndex MGNU I 0 88
|
||||||
|
FrameIndex MGNU J 0 89
|
||||||
|
FrameIndex MGNU K 0 90
|
||||||
|
FrameIndex MGNU L 0 91
|
||||||
|
FrameIndex MGNU M 0 92
|
||||||
|
FrameIndex MGNU N 0 93
|
||||||
|
FrameIndex MGNU O 0 94
|
||||||
|
FrameIndex MGNU P 0 95
|
||||||
|
FrameIndex MGNU Q 0 96
|
||||||
|
FrameIndex MGNU R 0 97
|
||||||
|
FrameIndex MGNU S 0 98
|
||||||
|
FrameIndex MGNU T 0 99
|
||||||
|
FrameIndex MGNU U 0 100
|
||||||
|
FrameIndex MGNU V 0 101
|
||||||
|
FrameIndex MGNU W 0 102
|
||||||
|
FrameIndex MGNU X 0 103
|
||||||
|
FrameIndex MGNU Y 0 104
|
||||||
|
FrameIndex MGNU Z 0 105
|
||||||
|
FrameIndex MGU2 A 0 106
|
||||||
|
FrameIndex MGU2 B 0 107
|
||||||
|
FrameIndex MGU2 C 0 108
|
||||||
|
FrameIndex MGU2 D 0 109
|
||||||
|
FrameIndex MGU2 E 0 110
|
||||||
|
FrameIndex MGU2 F 0 111
|
||||||
|
FrameIndex MGU2 G 0 112
|
||||||
|
FrameIndex MGU2 H 0 113
|
||||||
|
FrameIndex MGU2 I 0 114
|
||||||
|
FrameIndex MGU2 J 0 115
|
||||||
|
FrameIndex MGU2 K 0 116
|
||||||
|
FrameIndex MGU2 L 0 117
|
||||||
|
FrameIndex MGU2 M 0 118
|
||||||
|
// Idle
|
||||||
|
FrameIndex MGNI A 0 121
|
||||||
|
FrameIndex MGNI B 0 122
|
||||||
|
FrameIndex MGNI C 0 123
|
||||||
|
FrameIndex MGNI D 0 124
|
||||||
|
FrameIndex MGNI E 0 125
|
||||||
|
FrameIndex MGNI F 0 126
|
||||||
|
FrameIndex MGNI G 0 127
|
||||||
|
FrameIndex MGNI H 0 128
|
||||||
|
FrameIndex MGNI I 0 129
|
||||||
|
FrameIndex MGNI J 0 130
|
||||||
|
FrameIndex MGNI K 0 131
|
||||||
|
FrameIndex MGNI L 0 132
|
||||||
|
FrameIndex MGNI M 0 133
|
||||||
|
FrameIndex MGNI N 0 134
|
||||||
|
FrameIndex MGNI O 0 135
|
||||||
|
FrameIndex MGNI P 0 136
|
||||||
|
FrameIndex MGNI Q 0 137
|
||||||
|
FrameIndex MGNI R 0 138
|
||||||
|
FrameIndex MGNI S 0 139
|
||||||
|
// Down
|
||||||
|
FrameIndex MGND A 0 141
|
||||||
|
FrameIndex MGND B 0 142
|
||||||
|
FrameIndex MGND C 0 143
|
||||||
|
FrameIndex MGND D 0 144
|
||||||
|
FrameIndex MGND E 0 145
|
||||||
|
FrameIndex MGND F 0 146
|
||||||
|
FrameIndex MGND G 0 147
|
||||||
|
FrameIndex MGND H 0 148
|
||||||
|
FrameIndex MGND I 0 149
|
||||||
|
FrameIndex MGND J 0 150
|
||||||
|
}
|
||||||
|
|
@ -86,7 +86,7 @@ Model "Ripper2"
|
||||||
SurfaceSkin 0 3 "JRazor5.png"
|
SurfaceSkin 0 3 "JRazor5.png"
|
||||||
SurfaceSkin 0 4 "JRazor3.png"
|
SurfaceSkin 0 4 "JRazor3.png"
|
||||||
Scale 0.16 -0.08 0.16
|
Scale 0.16 -0.08 0.16
|
||||||
Offset 7.4 -10.8 -8.9
|
Offset 6.4 -9.8 -7.9
|
||||||
AngleOffset 90
|
AngleOffset 90
|
||||||
|
|
||||||
// Select
|
// Select
|
||||||
|
|
|
||||||
|
|
@ -167,7 +167,7 @@ Model "ShockRifle"
|
||||||
SurfaceSkin 0 4 "asmd_t4.png"
|
SurfaceSkin 0 4 "asmd_t4.png"
|
||||||
AngleOffset 90
|
AngleOffset 90
|
||||||
Scale 0.15 -0.12 0.15
|
Scale 0.15 -0.12 0.15
|
||||||
Offset 4.9 -16.6 -7.1
|
Offset 3.9 -17.6 -6.1
|
||||||
|
|
||||||
// select
|
// select
|
||||||
FrameIndex ASMS A 0 0
|
FrameIndex ASMS A 0 0
|
||||||
|
|
@ -254,7 +254,7 @@ Model "EnhancedShockRifle"
|
||||||
SurfaceSkin 0 4 "sasmd_t4.png"
|
SurfaceSkin 0 4 "sasmd_t4.png"
|
||||||
AngleOffset 90
|
AngleOffset 90
|
||||||
Scale 0.15 -0.12 0.15
|
Scale 0.15 -0.12 0.15
|
||||||
Offset 4.9 -16.6 -7.1
|
Offset 3.9 -17.6 -6.1
|
||||||
|
|
||||||
// select
|
// select
|
||||||
FrameIndex ASMS A 0 0
|
FrameIndex ASMS A 0 0
|
||||||
|
|
|
||||||
|
|
@ -47,7 +47,7 @@ Model "Translocator"
|
||||||
SurfaceSkin 0 2 "tloc3.png"
|
SurfaceSkin 0 2 "tloc3.png"
|
||||||
SurfaceSkin 0 3 "tloc4.png"
|
SurfaceSkin 0 3 "tloc4.png"
|
||||||
Scale 0.11 -0.055 0.11
|
Scale 0.11 -0.055 0.11
|
||||||
Offset -19.8 -22.8 -33.2
|
Offset -19.8 -22.8 -31.2
|
||||||
AngleOffset -94.21875
|
AngleOffset -94.21875
|
||||||
PitchOffset 3.55555555556
|
PitchOffset 3.55555555556
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -82,9 +82,9 @@ Model "WarheadLauncher"
|
||||||
SurfaceSkin 0 3 "jwarhead4.png"
|
SurfaceSkin 0 3 "jwarhead4.png"
|
||||||
Scale 0.2 -0.12 0.2
|
Scale 0.2 -0.12 0.2
|
||||||
AngleOffset 90
|
AngleOffset 90
|
||||||
PitchOffset 22.5
|
PitchOffset 33.5
|
||||||
RollOffset -87.1875
|
RollOffset -87.1875
|
||||||
Offset 7.9 -15.6 -9.2
|
Offset 6.2 -15.6 -6.2
|
||||||
|
|
||||||
// select
|
// select
|
||||||
FrameIndex WARS A 0 0
|
FrameIndex WARS A 0 0
|
||||||
|
|
|
||||||
BIN
models/Muz1.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
models/Muz2.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
models/Muz3.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
models/Muz4.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
models/Muz5.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
models/Muz6.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
models/Muz7.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
models/Muz8.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
models/Muz9.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
|
|
@ -36,10 +36,10 @@ Currently implemented:
|
||||||
- Dual Enforcers (slot 2)
|
- Dual Enforcers (slot 2)
|
||||||
- Ripper (slot 6)
|
- Ripper (slot 6)
|
||||||
- Jump Boots (radsuit, has "iron boots" powerup effect to compensate)
|
- Jump Boots (radsuit, has "iron boots" powerup effect to compensate)
|
||||||
|
- Minigun (slot 7)
|
||||||
|
|
||||||
In progress:
|
In progress:
|
||||||
|
|
||||||
- Minigun (slot 7)
|
|
||||||
- Rocket Launcher (slot 9)
|
- Rocket Launcher (slot 9)
|
||||||
- Sniper Rifle (slot 0)
|
- Sniper Rifle (slot 0)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -183,6 +183,11 @@ ripper/hit bladehit
|
||||||
ripper/flesh bladethk
|
ripper/flesh bladethk
|
||||||
ripper/althit expl03
|
ripper/althit expl03
|
||||||
|
|
||||||
|
minigun/select minisel
|
||||||
|
minigun/fire m2regf
|
||||||
|
minigun/altfire m2altf
|
||||||
|
minigun/unwind m2wdown
|
||||||
|
|
||||||
flak/select pdown
|
flak/select pdown
|
||||||
flak/load hidraul2
|
flak/load hidraul2
|
||||||
flak/reload load1
|
flak/reload load1
|
||||||
|
|
|
||||||
117
textures.minigun
|
|
@ -1,3 +1,120 @@
|
||||||
Sprite "MAMOA0",1,1{}
|
Sprite "MAMOA0",1,1{}
|
||||||
Sprite "MGNPA0",1,1{}
|
Sprite "MGNPA0",1,1{}
|
||||||
Sprite "MGNPB0",1,1{}
|
Sprite "MGNPB0",1,1{}
|
||||||
|
Sprite "MGNSA0",1,1{}
|
||||||
|
Sprite "MGNSB0",1,1{}
|
||||||
|
Sprite "MGNSC0",1,1{}
|
||||||
|
Sprite "MGNSD0",1,1{}
|
||||||
|
Sprite "MGNSE0",1,1{}
|
||||||
|
Sprite "MGNSF0",1,1{}
|
||||||
|
Sprite "MGNSG0",1,1{}
|
||||||
|
Sprite "MGNSH0",1,1{}
|
||||||
|
Sprite "MGNSI0",1,1{}
|
||||||
|
Sprite "MGNSJ0",1,1{}
|
||||||
|
Sprite "MGNSK0",1,1{}
|
||||||
|
Sprite "MGNSL0",1,1{}
|
||||||
|
Sprite "MGNSM0",1,1{}
|
||||||
|
Sprite "MGNSN0",1,1{}
|
||||||
|
Sprite "MGNSO0",1,1{}
|
||||||
|
Sprite "MGNSP0",1,1{}
|
||||||
|
Sprite "MGNSQ0",1,1{}
|
||||||
|
Sprite "MGNSR0",1,1{}
|
||||||
|
Sprite "MGNSS0",1,1{}
|
||||||
|
Sprite "MGNST0",1,1{}
|
||||||
|
Sprite "MGNFA0",1,1{}
|
||||||
|
Sprite "MGNFB0",1,1{}
|
||||||
|
Sprite "MGNFC0",1,1{}
|
||||||
|
Sprite "MGNFD0",1,1{}
|
||||||
|
Sprite "MGNFE0",1,1{}
|
||||||
|
Sprite "MGNFF0",1,1{}
|
||||||
|
Sprite "MGNFG0",1,1{}
|
||||||
|
Sprite "MGNFH0",1,1{}
|
||||||
|
Sprite "MGNFI0",1,1{}
|
||||||
|
Sprite "MGNFJ0",1,1{}
|
||||||
|
Sprite "MGNFK0",1,1{}
|
||||||
|
Sprite "MGNFL0",1,1{}
|
||||||
|
Sprite "MGNFM0",1,1{}
|
||||||
|
Sprite "MGNFN0",1,1{}
|
||||||
|
Sprite "MGNFO0",1,1{}
|
||||||
|
Sprite "MGNFP0",1,1{}
|
||||||
|
Sprite "MGNFQ0",1,1{}
|
||||||
|
Sprite "MGNFR0",1,1{}
|
||||||
|
Sprite "MGNFS0",1,1{}
|
||||||
|
Sprite "MGNUA0",1,1{}
|
||||||
|
Sprite "MGNUB0",1,1{}
|
||||||
|
Sprite "MGNUC0",1,1{}
|
||||||
|
Sprite "MGNUD0",1,1{}
|
||||||
|
Sprite "MGNUE0",1,1{}
|
||||||
|
Sprite "MGNUF0",1,1{}
|
||||||
|
Sprite "MGNUG0",1,1{}
|
||||||
|
Sprite "MGNUH0",1,1{}
|
||||||
|
Sprite "MGNUI0",1,1{}
|
||||||
|
Sprite "MGNUJ0",1,1{}
|
||||||
|
Sprite "MGNUK0",1,1{}
|
||||||
|
Sprite "MGNUL0",1,1{}
|
||||||
|
Sprite "MGNUM0",1,1{}
|
||||||
|
Sprite "MGNUN0",1,1{}
|
||||||
|
Sprite "MGNUO0",1,1{}
|
||||||
|
Sprite "MGNUP0",1,1{}
|
||||||
|
Sprite "MGNUQ0",1,1{}
|
||||||
|
Sprite "MGNUR0",1,1{}
|
||||||
|
Sprite "MGNUS0",1,1{}
|
||||||
|
Sprite "MGNUT0",1,1{}
|
||||||
|
Sprite "MGNUU0",1,1{}
|
||||||
|
Sprite "MGNUV0",1,1{}
|
||||||
|
Sprite "MGNUW0",1,1{}
|
||||||
|
Sprite "MGNUX0",1,1{}
|
||||||
|
Sprite "MGNUY0",1,1{}
|
||||||
|
Sprite "MGNUZ0",1,1{}
|
||||||
|
Sprite "MGU2A0",1,1{}
|
||||||
|
Sprite "MGU2B0",1,1{}
|
||||||
|
Sprite "MGU2C0",1,1{}
|
||||||
|
Sprite "MGU2D0",1,1{}
|
||||||
|
Sprite "MGU2E0",1,1{}
|
||||||
|
Sprite "MGU2F0",1,1{}
|
||||||
|
Sprite "MGU2G0",1,1{}
|
||||||
|
Sprite "MGU2H0",1,1{}
|
||||||
|
Sprite "MGU2I0",1,1{}
|
||||||
|
Sprite "MGU2J0",1,1{}
|
||||||
|
Sprite "MGU2K0",1,1{}
|
||||||
|
Sprite "MGU2L0",1,1{}
|
||||||
|
Sprite "MGU2M0",1,1{}
|
||||||
|
Sprite "MGNIA0",1,1{}
|
||||||
|
Sprite "MGNIB0",1,1{}
|
||||||
|
Sprite "MGNIC0",1,1{}
|
||||||
|
Sprite "MGNID0",1,1{}
|
||||||
|
Sprite "MGNIE0",1,1{}
|
||||||
|
Sprite "MGNIF0",1,1{}
|
||||||
|
Sprite "MGNIG0",1,1{}
|
||||||
|
Sprite "MGNIH0",1,1{}
|
||||||
|
Sprite "MGNII0",1,1{}
|
||||||
|
Sprite "MGNIJ0",1,1{}
|
||||||
|
Sprite "MGNIK0",1,1{}
|
||||||
|
Sprite "MGNIL0",1,1{}
|
||||||
|
Sprite "MGNIM0",1,1{}
|
||||||
|
Sprite "MGNIN0",1,1{}
|
||||||
|
Sprite "MGNIO0",1,1{}
|
||||||
|
Sprite "MGNIP0",1,1{}
|
||||||
|
Sprite "MGNIQ0",1,1{}
|
||||||
|
Sprite "MGNIR0",1,1{}
|
||||||
|
Sprite "MGNIS0",1,1{}
|
||||||
|
Sprite "MGNDA0",1,1{}
|
||||||
|
Sprite "MGNDB0",1,1{}
|
||||||
|
Sprite "MGNDC0",1,1{}
|
||||||
|
Sprite "MGNDD0",1,1{}
|
||||||
|
Sprite "MGNDE0",1,1{}
|
||||||
|
Sprite "MGNDF0",1,1{}
|
||||||
|
Sprite "MGNDG0",1,1{}
|
||||||
|
Sprite "MGNDH0",1,1{}
|
||||||
|
Sprite "MGNDI0",1,1{}
|
||||||
|
Sprite "MGNDJ0",1,1{}
|
||||||
|
Sprite "MMUZA0",1,1{}
|
||||||
|
Sprite "MMUZB0",1,1{}
|
||||||
|
Sprite "MMUZC0",1,1{}
|
||||||
|
Sprite "MMUZD0",1,1{}
|
||||||
|
Sprite "MMUZE0",1,1{}
|
||||||
|
Sprite "MMUZF0",1,1{}
|
||||||
|
Sprite "MMUZG0",1,1{}
|
||||||
|
Sprite "MMUZH0",1,1{}
|
||||||
|
Sprite "MMUZI0",1,1{}
|
||||||
|
Sprite "TRACA0",1,1{}
|
||||||
|
|
|
||||||
|
|
@ -31,8 +31,6 @@ Class UTArmorBonus : UTArmor replaces ArmorBonus
|
||||||
{
|
{
|
||||||
Tag "Armor Bonus";
|
Tag "Armor Bonus";
|
||||||
+COUNTITEM;
|
+COUNTITEM;
|
||||||
+INVENTORY.AUTOACTIVATE;
|
|
||||||
+INVENTORY.UNTOSSABLE;
|
|
||||||
+INVENTORY.ALWAYSPICKUP;
|
+INVENTORY.ALWAYSPICKUP;
|
||||||
Inventory.Amount 5;
|
Inventory.Amount 5;
|
||||||
Inventory.MaxAmount 50;
|
Inventory.MaxAmount 50;
|
||||||
|
|
@ -114,14 +112,21 @@ Class UTShieldBelt : UTArmor replaces Megasphere
|
||||||
}
|
}
|
||||||
override bool HandlePickup( Inventory item )
|
override bool HandlePickup( Inventory item )
|
||||||
{
|
{
|
||||||
if ( (item is 'UTThighPads') || (item is 'UTBodyArmor') ) return true;
|
if ( (item is 'UTThighPads') || (item is 'UTBodyArmor') )
|
||||||
|
{
|
||||||
|
if ( amount < maxamount )
|
||||||
|
{
|
||||||
|
DepleteOrDestroy();
|
||||||
|
return Super.HandlePickup(item);
|
||||||
|
}
|
||||||
|
else return true;
|
||||||
|
}
|
||||||
return Super.HandlePickup(item);
|
return Super.HandlePickup(item);
|
||||||
}
|
}
|
||||||
Default
|
Default
|
||||||
{
|
{
|
||||||
Tag "Shield Belt";
|
Tag "Shield Belt";
|
||||||
+COUNTITEM;
|
+COUNTITEM;
|
||||||
+INVENTORY.ALWAYSPICKUP;
|
|
||||||
+INVENTORY.BIGPOWERUP;
|
+INVENTORY.BIGPOWERUP;
|
||||||
Inventory.Amount 150;
|
Inventory.Amount 150;
|
||||||
Inventory.MaxAmount 150;
|
Inventory.MaxAmount 150;
|
||||||
|
|
|
||||||
|
|
@ -285,27 +285,17 @@ Class Enforcer : UTWeapon replaces Pistol
|
||||||
A_OverlayFlags(-2,PSPF_RENDERSTYLE|PSPF_FORCESTYLE,true);
|
A_OverlayFlags(-2,PSPF_RENDERSTYLE|PSPF_FORCESTYLE,true);
|
||||||
A_OverlayRenderstyle(-2,STYLE_Add);
|
A_OverlayRenderstyle(-2,STYLE_Add);
|
||||||
}
|
}
|
||||||
Vector3 x, y, z;
|
Vector3 x, y, z, x2, y2, z2;
|
||||||
double a;
|
|
||||||
[x, y, z] = Matrix4.GetAxes(pitch,angle,roll);
|
[x, y, z] = Matrix4.GetAxes(pitch,angle,roll);
|
||||||
Vector3 origin = pos+(0,0,player.viewheight)+10.0*x;
|
Vector3 origin = pos+(0,0,player.viewheight)+10.0*x;
|
||||||
int ydir = slave?-1:1;
|
int ydir = slave?-1:1;
|
||||||
if ( alt ) origin = origin-z*9.0+ydir*y*1.0;
|
if ( alt ) origin = origin-z*9.0+ydir*y*1.0;
|
||||||
else origin = origin-z*2.0+ydir*y*6.0;
|
else origin = origin-z*2.0+ydir*y*6.0;
|
||||||
double ang = angle;
|
double a = FRandom[Enforcer](0,360), s = FRandom[Enforcer](0,alt?0.08:0.004);
|
||||||
double pt = BulletSlope();
|
[x2, y2, z2] = Matrix4.GetAxes(BulletSlope(),angle,roll);
|
||||||
if ( alt )
|
Vector3 dir = (x2+y2*cos(a)*s+z2*sin(a)*s).unit();
|
||||||
{
|
|
||||||
ang += FRandom[Enforcer](-3,3);
|
|
||||||
pt += FRandom[Enforcer](-3,3);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ang += FRandom[Enforcer](-0.4,0.4);
|
|
||||||
pt += FRandom[Enforcer](-0.4,0.4);
|
|
||||||
}
|
|
||||||
FLineTraceData d;
|
FLineTraceData d;
|
||||||
LineTrace(ang,10000,pt,TRF_ABSPOSITION,origin.z,origin.x,origin.y,d);
|
LineTrace(atan2(dir.y,dir.x),10000,asin(-dir.z),TRF_ABSPOSITION,origin.z,origin.x,origin.y,d);
|
||||||
if ( d.HitType == TRACE_HitActor )
|
if ( d.HitType == TRACE_HitActor )
|
||||||
{
|
{
|
||||||
int dmg = Random[Enforcer](15,20);
|
int dmg = Random[Enforcer](15,20);
|
||||||
|
|
|
||||||
|
|
@ -44,13 +44,137 @@ Class MiniAmmo : Ammo
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Class MinigunLight : EnforcerLight
|
||||||
|
{
|
||||||
|
override void PostBeginPlay()
|
||||||
|
{
|
||||||
|
Super.PostBeginPlay();
|
||||||
|
args[LIGHT_INTENSITY] = Random[Minigun](120,180);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Class MinigunTracer : Actor
|
||||||
|
{
|
||||||
|
Vector3 dest;
|
||||||
|
Default
|
||||||
|
{
|
||||||
|
RenderStyle "Add";
|
||||||
|
Radius 0.1;
|
||||||
|
Height 0;
|
||||||
|
+NOCLIP;
|
||||||
|
+NOGRAVITY;
|
||||||
|
+DONTSPLASH;
|
||||||
|
}
|
||||||
|
override void Tick()
|
||||||
|
{
|
||||||
|
Super.Tick();
|
||||||
|
Vector3 dir = level.Vec3Diff(pos,dest);
|
||||||
|
if ( dir.length() < 200 )
|
||||||
|
{
|
||||||
|
Destroy();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
dir = dir.unit();
|
||||||
|
SetOrigin(Vec3Offset(dir.x*200,dir.y*200,dir.z*200),true);
|
||||||
|
A_SetAngle(atan2(dir.y,dir.x),SPF_INTERPOLATE);
|
||||||
|
A_SetPitch(asin(-dir.z),SPF_INTERPOLATE);
|
||||||
|
A_SetRoll(roll+60,SPF_INTERPOLATE);
|
||||||
|
}
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
TRAC A -1 Bright;
|
||||||
|
Stop;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Class Minigun : UTWeapon
|
Class Minigun : UTWeapon
|
||||||
{
|
{
|
||||||
|
int bcnt;
|
||||||
|
|
||||||
|
action void A_FireBullet( bool alt = false )
|
||||||
|
{
|
||||||
|
Weapon weap = Weapon(invoker);
|
||||||
|
if ( !weap ) return;
|
||||||
|
if ( weap.Ammo1.Amount <= 0 ) return;
|
||||||
|
A_Overlay(-2,"MuzzleFlash",true);
|
||||||
|
A_OverlayFlags(-2,PSPF_RENDERSTYLE|PSPF_FORCESTYLE,true);
|
||||||
|
A_OverlayRenderstyle(-2,STYLE_Add);
|
||||||
|
if ( alt ) invoker.bcnt = min(invoker.bcnt,3);
|
||||||
|
if ( invoker.bcnt-- > 0 ) return;
|
||||||
|
invoker.bcnt = alt?3:5;
|
||||||
|
if ( !weap.DepleteAmmo(weap.bAltFire,true,1) ) return;
|
||||||
|
invoker.FireEffect();
|
||||||
|
UTMainHandler.DoFlash(self,Color(64,255,255,0),1);
|
||||||
|
A_AlertMonsters();
|
||||||
|
if ( alt ) A_QuakeEx(3,3,3,3,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.12);
|
||||||
|
else A_QuakeEx(2,2,2,5,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.08);
|
||||||
|
let l = Spawn("MinigunLight",pos);
|
||||||
|
l.target = self;
|
||||||
|
if ( !alt ) MinigunLight(l).cnt--;
|
||||||
|
Vector3 x, y, z, x2, y2, z2;
|
||||||
|
[x, y, z] = Matrix4.GetAxes(pitch,angle,roll);
|
||||||
|
Vector3 origin = pos+(0,0,player.viewheight)+10.0*x+y*4.0-z*6.0;
|
||||||
|
double a = FRandom[Minigun](0,360), s = FRandom[Minigun](0,alt?0.05:0.02);
|
||||||
|
[x2, y2, z2] = Matrix4.GetAxes(BulletSlope(),angle,roll);
|
||||||
|
Vector3 dir = (x2+y2*cos(a)*s+z2*sin(a)*s).unit();
|
||||||
|
FLineTraceData d;
|
||||||
|
LineTrace(atan2(dir.y,dir.x),10000,asin(-dir.z),TRF_ABSPOSITION,origin.z,origin.x,origin.y,d);
|
||||||
|
if ( d.HitType == TRACE_HitActor )
|
||||||
|
{
|
||||||
|
int dmg = Random[Minigun](9,15); // fun fact: the Minigun is one of the few weapons that has actual RNG damage in UT (and it's exactly this damage)
|
||||||
|
dmg = d.HitActor.DamageMobj(invoker,self,dmg,'shot');
|
||||||
|
if ( d.HitActor.bNOBLOOD )
|
||||||
|
{
|
||||||
|
let p = Spawn("BulletImpact",d.HitLocation-d.HitDir*4);
|
||||||
|
p.angle = atan2(d.HitDir.y,d.HitDir.x);
|
||||||
|
p.pitch = asin(-d.HitDir.z);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
d.HitActor.TraceBleed(dmg,self);
|
||||||
|
d.HitActor.SpawnBlood(d.HitLocation,atan2(d.HitDir.y,d.HitDir.x)+180,dmg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if ( d.HitType != TRACE_HitNone )
|
||||||
|
{
|
||||||
|
let p = Spawn("BulletImpact",d.HitLocation-d.HitDir*4);
|
||||||
|
p.angle = atan2(d.HitDir.y,d.HitDir.x);
|
||||||
|
p.pitch = asin(-d.HitDir.z);
|
||||||
|
if ( d.HitLine ) d.HitLine.RemoteActivate(self,d.LineSide,SPAC_Impact,d.HitLocation);
|
||||||
|
}
|
||||||
|
if ( !Random[Minigun](0,1) )
|
||||||
|
{
|
||||||
|
let t = Spawn("MinigunTracer",origin+x*20.0);
|
||||||
|
t.angle = atan2(dir.y,dir.x);
|
||||||
|
t.pitch = asin(-dir.z);
|
||||||
|
MinigunTracer(t).dest = d.HitLocation;
|
||||||
|
}
|
||||||
|
origin += x*8.0+y*4.0-z*2.0;
|
||||||
|
let c = Spawn("UTCasing",origin);
|
||||||
|
c.vel = x*FRandom[Junk](-2,2)+y*FRandom[Junk](3,6)+z*FRandom[Junk](3,5);
|
||||||
|
c.Scale *= 0.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
action void A_MinigunRefire( statelabel flash = null )
|
||||||
|
{
|
||||||
|
Weapon weap = Weapon(invoker);
|
||||||
|
if ( !weap || !player ) return;
|
||||||
|
if ( weap.Ammo1.Amount <= 0 )
|
||||||
|
{
|
||||||
|
A_ClearRefire();
|
||||||
|
player.setpsprite(PSP_WEAPON,weap.FindState("Unwind"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
A_Refire(flash);
|
||||||
|
}
|
||||||
|
|
||||||
Default
|
Default
|
||||||
{
|
{
|
||||||
Tag "Minigun";
|
Tag "Minigun";
|
||||||
|
Obituary "%k's Minigun turned %o into a leaky piece of meat.";
|
||||||
Inventory.PickupMessage "You got the Minigun.";
|
Inventory.PickupMessage "You got the Minigun.";
|
||||||
Weapon.UpSound "";
|
Weapon.UpSound "minigun/select";
|
||||||
Weapon.SlotNumber 7;
|
Weapon.SlotNumber 7;
|
||||||
Weapon.SelectionOrder 3;
|
Weapon.SelectionOrder 3;
|
||||||
Weapon.AmmoType "MiniAmmo";
|
Weapon.AmmoType "MiniAmmo";
|
||||||
|
|
@ -66,5 +190,239 @@ Class Minigun : UTWeapon
|
||||||
Stop;
|
Stop;
|
||||||
MGNP B -1;
|
MGNP B -1;
|
||||||
Stop;
|
Stop;
|
||||||
|
Select:
|
||||||
|
MGNS A 1 A_Raise(int.max);
|
||||||
|
Wait;
|
||||||
|
Ready:
|
||||||
|
MGNS ABCDEFGHIJKLMNOPQRST 1;
|
||||||
|
Idle:
|
||||||
|
MGNI ABCDEFGHIJKLMNOPQRS 5
|
||||||
|
{
|
||||||
|
A_CheckReload();
|
||||||
|
A_WeaponReady();
|
||||||
|
}
|
||||||
|
Loop;
|
||||||
|
Fire:
|
||||||
|
AltFire:
|
||||||
|
MGNI A 3 { invoker.bcnt = 5; }
|
||||||
|
Hold:
|
||||||
|
MGNF A 1
|
||||||
|
{
|
||||||
|
A_PlaySound("minigun/fire",CHAN_WEAPON,1.0,true);
|
||||||
|
A_FireBullet();
|
||||||
|
}
|
||||||
|
MGNF B 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
MGNF B 1 A_FireBullet();
|
||||||
|
MGNF C 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
MGNF C 1 A_FireBullet();
|
||||||
|
MGNF D 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
MGNF D 1 A_FireBullet();
|
||||||
|
MGNF E 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
MGNF E 1 A_FireBullet();
|
||||||
|
MGNF F 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
MGNF F 1 A_FireBullet();
|
||||||
|
MGNF G 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
MGNF G 1 A_FireBullet();
|
||||||
|
MGNF H 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
MGNF H 1 A_FireBullet();
|
||||||
|
MGNF I 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
MGNF I 1 A_FireBullet();
|
||||||
|
MGNF J 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
MGNF J 1 A_FireBullet();
|
||||||
|
MGNF K 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
MGNF K 1 A_FireBullet();
|
||||||
|
MGNF L 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
MGNF L 1 A_FireBullet();
|
||||||
|
MGNF M 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
MGNF M 1 A_FireBullet();
|
||||||
|
MGNF N 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
MGNF N 1 A_FireBullet();
|
||||||
|
MGNF O 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
MGNF O 1 A_FireBullet();
|
||||||
|
MGNF P 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
MGNF P 1 A_FireBullet();
|
||||||
|
MGNF Q 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
MGNF Q 1 A_FireBullet();
|
||||||
|
MGNF R 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
MGNF R 1 A_FireBullet();
|
||||||
|
MGNF S 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
MGNF S 1 A_FireBullet();
|
||||||
|
MGNF A 0
|
||||||
|
{
|
||||||
|
if ( invoker.bAltFire ) A_MinigunRefire(1);
|
||||||
|
else A_MinigunRefire("Hold");
|
||||||
|
}
|
||||||
|
Goto Unwind;
|
||||||
|
AltFire2:
|
||||||
|
MGNF A 1 A_FireBullet();
|
||||||
|
MGNF B 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
MGNF B 1 A_FireBullet();
|
||||||
|
MGNF C 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
MGNF C 1 A_FireBullet();
|
||||||
|
MGNF D 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
MGNF D 1 A_FireBullet();
|
||||||
|
MGNF E 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
MGNF E 1 A_FireBullet();
|
||||||
|
MGNF F 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
MGNF F 1 A_FireBullet();
|
||||||
|
MGNF G 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
MGNF G 1 A_FireBullet();
|
||||||
|
MGNF H 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
MGNF H 1 A_FireBullet();
|
||||||
|
MGNF I 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
MGNF I 1 A_FireBullet();
|
||||||
|
MGNF J 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
MGNF J 1 A_FireBullet();
|
||||||
|
MGNF K 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
MGNF K 1 A_FireBullet();
|
||||||
|
MGNF L 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
MGNF L 1 A_FireBullet();
|
||||||
|
MGNF M 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
MGNF M 1 A_FireBullet();
|
||||||
|
MGNF N 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
MGNF N 1 A_FireBullet();
|
||||||
|
MGNF O 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
MGNF O 1 A_FireBullet();
|
||||||
|
MGNF P 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
MGNF P 1 A_FireBullet();
|
||||||
|
MGNF Q 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
MGNF Q 1 A_FireBullet();
|
||||||
|
MGNF R 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
MGNF R 1 A_FireBullet();
|
||||||
|
MGNF S 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
MGNF S 1 A_FireBullet();
|
||||||
|
MGNF A 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
AltHold:
|
||||||
|
MGNF A 1
|
||||||
|
{
|
||||||
|
A_PlaySound("minigun/altfire",CHAN_WEAPON,1.0,true);
|
||||||
|
A_FireBullet(true);
|
||||||
|
}
|
||||||
|
MGNF D 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
MGNF D 1 A_FireBullet(true);
|
||||||
|
MGNF G 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
MGNF G 1 A_FireBullet(true);
|
||||||
|
MGNF J 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
MGNF J 1 A_FireBullet(true);
|
||||||
|
MGNF M 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
MGNF M 1 A_FireBullet(true);
|
||||||
|
MGNF P 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
MGNF P 1 A_FireBullet(true);
|
||||||
|
MGNF S 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
MGNF S 1 A_FireBullet(true);
|
||||||
|
MGNF C 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
MGNF C 1 A_FireBullet(true);
|
||||||
|
MGNF F 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
MGNF F 1 A_FireBullet(true);
|
||||||
|
MGNF I 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
MGNF I 1 A_FireBullet(true);
|
||||||
|
MGNF L 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
MGNF L 1 A_FireBullet(true);
|
||||||
|
MGNF O 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
MGNF O 1 A_FireBullet(true);
|
||||||
|
MGNF R 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
MGNF R 1 A_FireBullet(true);
|
||||||
|
MGNF B 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
MGNF B 1 A_FireBullet(true);
|
||||||
|
MGNF E 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
MGNF E 1 A_FireBullet(true);
|
||||||
|
MGNF H 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
MGNF H 1 A_FireBullet(true);
|
||||||
|
MGNF K 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
MGNF K 1 A_FireBullet(true);
|
||||||
|
MGNF N 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
MGNF N 1 A_FireBullet(true);
|
||||||
|
MGNF Q 0 A_MinigunRefire(1);
|
||||||
|
Goto Unwind;
|
||||||
|
MGNF Q 1 A_FireBullet(true);
|
||||||
|
MGNF A 0 A_MinigunRefire("AltHold");
|
||||||
|
Goto Unwind;
|
||||||
|
Unwind:
|
||||||
|
MGNU A 0 A_PlaySound("minigun/unwind",CHAN_WEAPON);
|
||||||
|
MGNU ABCDEFGHIJKLMNOPQRSTUVWXYZ 1;
|
||||||
|
MGU2 ABCDEFGHIJKLM 1;
|
||||||
|
Goto Idle;
|
||||||
|
Deselect:
|
||||||
|
MGND ABCDEFGHIJ 2;
|
||||||
|
MGND J 1 A_Lower(int.max);
|
||||||
|
Wait;
|
||||||
|
MuzzleFlash:
|
||||||
|
TNT1 A 0 A_Jump(256,1,2,3,4,5,6,7,8,9);
|
||||||
|
Stop;
|
||||||
|
MMUZ A 2 Bright;
|
||||||
|
Stop;
|
||||||
|
MMUZ B 2 Bright;
|
||||||
|
Stop;
|
||||||
|
MMUZ C 2 Bright;
|
||||||
|
Stop;
|
||||||
|
MMUZ D 2 Bright;
|
||||||
|
Stop;
|
||||||
|
MMUZ E 2 Bright;
|
||||||
|
Stop;
|
||||||
|
MMUZ F 2 Bright;
|
||||||
|
Stop;
|
||||||
|
MMUZ G 2 Bright;
|
||||||
|
Stop;
|
||||||
|
MMUZ H 2 Bright;
|
||||||
|
Stop;
|
||||||
|
MMUZ I 2 Bright;
|
||||||
|
Stop;
|
||||||
|
Dummy:
|
||||||
|
MMUZ ABCDEFGHI -1;
|
||||||
|
Stop;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||