Implemented Enforcer (with dual option). Tweaked some offsets on junk. Added clip count displays.
Only 4 weapons remaining...
This commit is contained in:
parent
a14e43481b
commit
bef29efba3
15 changed files with 1210 additions and 88 deletions
35
decaldef.txt
35
decaldef.txt
|
|
@ -135,3 +135,38 @@ decal ImpactMark
|
|||
x-scale 0.25
|
||||
y-scale 0.25
|
||||
}
|
||||
|
||||
decal Pock1
|
||||
{
|
||||
pic pock0_t
|
||||
shade "00 00 00"
|
||||
x-scale 0.1
|
||||
y-scale 0.1
|
||||
randomflipx
|
||||
randomflipy
|
||||
}
|
||||
decal Pock2
|
||||
{
|
||||
pic pock2_t
|
||||
shade "00 00 00"
|
||||
x-scale 0.1
|
||||
y-scale 0.1
|
||||
randomflipx
|
||||
randomflipy
|
||||
}
|
||||
decal Pock3
|
||||
{
|
||||
pic pock4_t
|
||||
shade "00 00 00"
|
||||
x-scale 0.1
|
||||
y-scale 0.1
|
||||
randomflipx
|
||||
randomflipy
|
||||
}
|
||||
|
||||
decalgroup Pock
|
||||
{
|
||||
Pock1 1
|
||||
Pock2 1
|
||||
Pock3 1
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,6 +10,22 @@ Model "EClip"
|
|||
FrameIndex ECLP A 0 0
|
||||
}
|
||||
|
||||
Model "UTCasing"
|
||||
{
|
||||
Path "models"
|
||||
Model 0 "Shellc_d.3d"
|
||||
Skin 0 "Shellcase1.png"
|
||||
Scale -0.014 0.014 0.0168
|
||||
ZOffset 1
|
||||
USEACTORPITCH
|
||||
USEACTORROLL
|
||||
DONTCULLBACKFACES
|
||||
USEROTATIONCENTER
|
||||
Rotation-Center 0 0 1
|
||||
|
||||
FrameIndex PCAS A 0 0
|
||||
}
|
||||
|
||||
Model "Enforcer"
|
||||
{
|
||||
Path "models"
|
||||
|
|
@ -35,3 +51,342 @@ Model "Enforcer"
|
|||
|
||||
FrameIndex ENFP B 1 0
|
||||
}
|
||||
|
||||
Model "Enforcer"
|
||||
{
|
||||
Path "models"
|
||||
Model 3 "Flat_d.3d"
|
||||
Skin 3 "EMuz1.png"
|
||||
PitchOffset 90
|
||||
Scale 0.04 0.04 0.04
|
||||
Offset 10.4 -25.0 -2.9
|
||||
|
||||
FrameIndex EMUZ A 3 0
|
||||
}
|
||||
Model "Enforcer"
|
||||
{
|
||||
Path "models"
|
||||
Model 3 "Flat_d.3d"
|
||||
Skin 3 "EMuz1.png"
|
||||
PitchOffset 90
|
||||
Scale 0.04 0.04 0.04
|
||||
Offset 1.9 -25.0 -9.3
|
||||
|
||||
FrameIndex EMUZ B 3 0
|
||||
}
|
||||
Model "Enforcer"
|
||||
{
|
||||
Path "models"
|
||||
Model 3 "Flat_d.3d"
|
||||
Skin 3 "EMuz1.png"
|
||||
PitchOffset 90
|
||||
Scale 0.04 0.04 0.04
|
||||
Offset -10.4 -25.0 -2.9
|
||||
|
||||
FrameIndex EMUZ C 3 0
|
||||
}
|
||||
Model "Enforcer"
|
||||
{
|
||||
Path "models"
|
||||
Model 3 "Flat_d.3d"
|
||||
Skin 3 "EMuz1.png"
|
||||
PitchOffset 90
|
||||
Scale 0.04 0.04 0.04
|
||||
Offset -1.9 -25.0 -9.3
|
||||
|
||||
FrameIndex EMUZ D 3 0
|
||||
}
|
||||
|
||||
Model "Enforcer"
|
||||
{
|
||||
Path "models"
|
||||
Model 0 "AutoMR_d.3d"
|
||||
SurfaceSkin 0 0 "Jtutot1.png"
|
||||
SurfaceSkin 0 1 "Jtutot2.png"
|
||||
SurfaceSkin 0 2 "Jtutot3.png"
|
||||
SurfaceSkin 0 3 "Jtutot4.png"
|
||||
Scale 0.14 0.08 0.12
|
||||
Offset 8.6 -12.8 -13.5
|
||||
PitchOffset 90
|
||||
|
||||
// Fire
|
||||
FrameIndex ENFF A 0 6
|
||||
FrameIndex ENFF B 0 7
|
||||
FrameIndex ENFF C 0 8
|
||||
FrameIndex ENFF D 0 9
|
||||
FrameIndex ENFF E 0 10
|
||||
FrameIndex ENFF F 0 11
|
||||
FrameIndex ENFF G 0 12
|
||||
FrameIndex ENFF H 0 13
|
||||
FrameIndex ENFF I 0 14
|
||||
FrameIndex ENFF J 0 15
|
||||
// Reload
|
||||
FrameIndex ENFR A 0 22
|
||||
FrameIndex ENFR B 0 23
|
||||
FrameIndex ENFR C 0 24
|
||||
FrameIndex ENFR D 0 25
|
||||
FrameIndex ENFR E 0 26
|
||||
FrameIndex ENFR F 0 27
|
||||
FrameIndex ENFR G 0 28
|
||||
FrameIndex ENFR H 0 29
|
||||
FrameIndex ENFR I 0 30
|
||||
FrameIndex ENFR J 0 31
|
||||
FrameIndex ENFR K 0 32
|
||||
FrameIndex ENFR L 0 33
|
||||
FrameIndex ENFR M 0 34
|
||||
FrameIndex ENFR N 0 35
|
||||
FrameIndex ENFR O 0 36
|
||||
FrameIndex ENFR P 0 37
|
||||
FrameIndex ENFR Q 0 38
|
||||
FrameIndex ENFR R 0 39
|
||||
FrameIndex ENFR S 0 40
|
||||
FrameIndex ENFR T 0 41
|
||||
FrameIndex ENFR U 0 42
|
||||
FrameIndex ENFR V 0 43
|
||||
FrameIndex ENFR W 0 44
|
||||
FrameIndex ENFR X 0 45
|
||||
FrameIndex ENFR Y 0 46
|
||||
FrameIndex ENFR Z 0 47
|
||||
FrameIndex ENR2 A 0 48
|
||||
FrameIndex ENR2 B 0 49
|
||||
// Select
|
||||
FrameIndex ENFS A 0 60
|
||||
FrameIndex ENFS B 0 61
|
||||
FrameIndex ENFS C 0 62
|
||||
FrameIndex ENFS D 0 63
|
||||
FrameIndex ENFS E 0 64
|
||||
FrameIndex ENFS F 0 65
|
||||
FrameIndex ENFS G 0 66
|
||||
FrameIndex ENFS H 0 67
|
||||
FrameIndex ENFS I 0 68
|
||||
FrameIndex ENFS J 0 69
|
||||
FrameIndex ENFS K 0 70
|
||||
FrameIndex ENFS L 0 71
|
||||
FrameIndex ENFS M 0 72
|
||||
FrameIndex ENFS N 0 73
|
||||
FrameIndex ENFS O 0 74
|
||||
FrameIndex ENFS P 0 75
|
||||
FrameIndex ENFS Q 0 76
|
||||
FrameIndex ENFS R 0 77
|
||||
FrameIndex ENFS S 0 78
|
||||
FrameIndex ENFS T 0 79
|
||||
FrameIndex ENFS U 0 80
|
||||
FrameIndex ENFS V 0 81
|
||||
FrameIndex ENFS W 0 82
|
||||
FrameIndex ENFS X 0 83
|
||||
FrameIndex ENFS Y 0 84
|
||||
FrameIndex ENFS Z 0 85
|
||||
// Idle
|
||||
FrameIndex ENFI A 0 86
|
||||
FrameIndex ENFI B 0 87
|
||||
// Twiddle
|
||||
FrameIndex ENFT A 0 87
|
||||
FrameIndex ENFT B 0 88
|
||||
FrameIndex ENFT C 0 89
|
||||
FrameIndex ENFT D 0 90
|
||||
FrameIndex ENFT E 0 91
|
||||
FrameIndex ENFT F 0 92
|
||||
FrameIndex ENFT G 0 93
|
||||
FrameIndex ENFT H 0 94
|
||||
FrameIndex ENFT I 0 95
|
||||
FrameIndex ENFT J 0 96
|
||||
FrameIndex ENFT K 0 97
|
||||
FrameIndex ENFT L 0 98
|
||||
FrameIndex ENFT M 0 99
|
||||
FrameIndex ENFT N 0 100
|
||||
FrameIndex ENFT O 0 101
|
||||
FrameIndex ENFT P 0 102
|
||||
FrameIndex ENFT Q 0 103
|
||||
FrameIndex ENFT R 0 104
|
||||
FrameIndex ENFT S 0 105
|
||||
FrameIndex ENFT T 0 106
|
||||
FrameIndex ENFT U 0 107
|
||||
FrameIndex ENFT V 0 108
|
||||
FrameIndex ENFT W 0 109
|
||||
FrameIndex ENFT X 0 110
|
||||
FrameIndex ENFT Y 0 111
|
||||
// Down
|
||||
FrameIndex ENFD A 0 115
|
||||
FrameIndex ENFD B 0 116
|
||||
FrameIndex ENFD C 0 117
|
||||
FrameIndex ENFD D 0 118
|
||||
FrameIndex ENFD E 0 119
|
||||
FrameIndex ENFD F 0 120
|
||||
FrameIndex ENFD G 0 121
|
||||
FrameIndex ENFD H 0 122
|
||||
FrameIndex ENFD I 0 123
|
||||
FrameIndex ENFD J 0 124
|
||||
FrameIndex ENFD K 0 125
|
||||
FrameIndex ENFD L 0 126
|
||||
// T1
|
||||
FrameIndex ENFA A 0 130
|
||||
FrameIndex ENFA B 0 131
|
||||
FrameIndex ENFA C 0 132
|
||||
FrameIndex ENFA D 0 133
|
||||
FrameIndex ENFA E 0 134
|
||||
FrameIndex ENFA F 0 135
|
||||
// Alt Fire
|
||||
FrameIndex ENFA G 0 136
|
||||
FrameIndex ENFA H 0 137
|
||||
FrameIndex ENFA I 0 138
|
||||
FrameIndex ENFA J 0 139
|
||||
FrameIndex ENFA K 0 140
|
||||
FrameIndex ENFA L 0 141
|
||||
FrameIndex ENFA M 0 142
|
||||
FrameIndex ENFA N 0 143
|
||||
// T2
|
||||
FrameIndex ENFA O 0 144
|
||||
FrameIndex ENFA P 0 145
|
||||
FrameIndex ENFA Q 0 146
|
||||
FrameIndex ENFA R 0 147
|
||||
FrameIndex ENFA S 0 148
|
||||
FrameIndex ENFA T 0 149
|
||||
FrameIndex ENFA U 0 150
|
||||
}
|
||||
|
||||
Model "Enforcer"
|
||||
{
|
||||
Path "models"
|
||||
Model 2 "AutoML_d.3d"
|
||||
SurfaceSkin 2 0 "Jtutot1.png"
|
||||
SurfaceSkin 2 1 "Jtutot2.png"
|
||||
SurfaceSkin 2 2 "Jtutot3.png"
|
||||
SurfaceSkin 2 3 "Jtutot4.png"
|
||||
Scale 0.14 0.08 0.12
|
||||
Offset -8.8 -12.8 -13.5
|
||||
PitchOffset 90
|
||||
|
||||
// Fire
|
||||
FrameIndex 2NFF A 2 6
|
||||
FrameIndex 2NFF B 2 7
|
||||
FrameIndex 2NFF C 2 8
|
||||
FrameIndex 2NFF D 2 9
|
||||
FrameIndex 2NFF E 2 10
|
||||
FrameIndex 2NFF F 2 11
|
||||
FrameIndex 2NFF G 2 12
|
||||
FrameIndex 2NFF H 2 13
|
||||
FrameIndex 2NFF I 2 14
|
||||
FrameIndex 2NFF J 2 15
|
||||
// Reload
|
||||
FrameIndex 2NFR A 2 22
|
||||
FrameIndex 2NFR B 2 23
|
||||
FrameIndex 2NFR C 2 24
|
||||
FrameIndex 2NFR D 2 25
|
||||
FrameIndex 2NFR E 2 26
|
||||
FrameIndex 2NFR F 2 27
|
||||
FrameIndex 2NFR G 2 28
|
||||
FrameIndex 2NFR H 2 29
|
||||
FrameIndex 2NFR I 2 30
|
||||
FrameIndex 2NFR J 2 31
|
||||
FrameIndex 2NFR K 2 32
|
||||
FrameIndex 2NFR L 2 33
|
||||
FrameIndex 2NFR M 2 34
|
||||
FrameIndex 2NFR N 2 35
|
||||
FrameIndex 2NFR O 2 36
|
||||
FrameIndex 2NFR P 2 37
|
||||
FrameIndex 2NFR Q 2 38
|
||||
FrameIndex 2NFR R 2 39
|
||||
FrameIndex 2NFR S 2 40
|
||||
FrameIndex 2NFR T 2 41
|
||||
FrameIndex 2NFR U 2 42
|
||||
FrameIndex 2NFR V 2 43
|
||||
FrameIndex 2NFR W 2 44
|
||||
FrameIndex 2NFR X 2 45
|
||||
FrameIndex 2NFR Y 2 46
|
||||
FrameIndex 2NFR Z 2 47
|
||||
FrameIndex 2NR2 A 2 48
|
||||
FrameIndex 2NR2 B 2 49
|
||||
// Select
|
||||
FrameIndex 2NFS A 2 60
|
||||
FrameIndex 2NFS B 2 61
|
||||
FrameIndex 2NFS C 2 62
|
||||
FrameIndex 2NFS D 2 63
|
||||
FrameIndex 2NFS E 2 64
|
||||
FrameIndex 2NFS F 2 65
|
||||
FrameIndex 2NFS G 2 66
|
||||
FrameIndex 2NFS H 2 67
|
||||
FrameIndex 2NFS I 2 68
|
||||
FrameIndex 2NFS J 2 69
|
||||
FrameIndex 2NFS K 2 70
|
||||
FrameIndex 2NFS L 2 71
|
||||
FrameIndex 2NFS M 2 72
|
||||
FrameIndex 2NFS N 2 73
|
||||
FrameIndex 2NFS O 2 74
|
||||
FrameIndex 2NFS P 2 75
|
||||
FrameIndex 2NFS Q 2 76
|
||||
FrameIndex 2NFS R 2 77
|
||||
FrameIndex 2NFS S 2 78
|
||||
FrameIndex 2NFS T 2 79
|
||||
FrameIndex 2NFS U 2 80
|
||||
FrameIndex 2NFS V 2 81
|
||||
FrameIndex 2NFS W 2 82
|
||||
FrameIndex 2NFS X 2 83
|
||||
FrameIndex 2NFS Y 2 84
|
||||
FrameIndex 2NFS Z 2 85
|
||||
// Idle
|
||||
FrameIndex 2NFI A 2 86
|
||||
FrameIndex 2NFI B 2 87
|
||||
// Twiddle
|
||||
FrameIndex 2NFT A 2 87
|
||||
FrameIndex 2NFT B 2 88
|
||||
FrameIndex 2NFT C 2 89
|
||||
FrameIndex 2NFT D 2 90
|
||||
FrameIndex 2NFT E 2 91
|
||||
FrameIndex 2NFT F 2 92
|
||||
FrameIndex 2NFT G 2 93
|
||||
FrameIndex 2NFT H 2 94
|
||||
FrameIndex 2NFT I 2 95
|
||||
FrameIndex 2NFT J 2 96
|
||||
FrameIndex 2NFT K 2 97
|
||||
FrameIndex 2NFT L 2 98
|
||||
FrameIndex 2NFT M 2 99
|
||||
FrameIndex 2NFT N 2 100
|
||||
FrameIndex 2NFT O 2 101
|
||||
FrameIndex 2NFT P 2 102
|
||||
FrameIndex 2NFT Q 2 103
|
||||
FrameIndex 2NFT R 2 104
|
||||
FrameIndex 2NFT S 2 105
|
||||
FrameIndex 2NFT T 2 106
|
||||
FrameIndex 2NFT U 2 107
|
||||
FrameIndex 2NFT V 2 108
|
||||
FrameIndex 2NFT W 2 109
|
||||
FrameIndex 2NFT X 2 110
|
||||
FrameIndex 2NFT Y 2 111
|
||||
// Down
|
||||
FrameIndex 2NFD A 2 115
|
||||
FrameIndex 2NFD B 2 116
|
||||
FrameIndex 2NFD C 2 117
|
||||
FrameIndex 2NFD D 2 118
|
||||
FrameIndex 2NFD E 2 119
|
||||
FrameIndex 2NFD F 2 120
|
||||
FrameIndex 2NFD G 2 121
|
||||
FrameIndex 2NFD H 2 122
|
||||
FrameIndex 2NFD I 2 123
|
||||
FrameIndex 2NFD J 2 124
|
||||
FrameIndex 2NFD K 2 125
|
||||
FrameIndex 2NFD L 2 126
|
||||
// T1
|
||||
FrameIndex 2NFA A 2 130
|
||||
FrameIndex 2NFA B 2 131
|
||||
FrameIndex 2NFA C 2 132
|
||||
FrameIndex 2NFA D 2 133
|
||||
FrameIndex 2NFA E 2 134
|
||||
FrameIndex 2NFA F 2 135
|
||||
// Alt Fire
|
||||
FrameIndex 2NFA G 2 136
|
||||
FrameIndex 2NFA H 2 137
|
||||
FrameIndex 2NFA I 2 138
|
||||
FrameIndex 2NFA J 2 139
|
||||
FrameIndex 2NFA K 2 140
|
||||
FrameIndex 2NFA L 2 141
|
||||
FrameIndex 2NFA M 2 142
|
||||
FrameIndex 2NFA N 2 143
|
||||
// T2
|
||||
FrameIndex 2NFA O 2 144
|
||||
FrameIndex 2NFA P 2 145
|
||||
FrameIndex 2NFA Q 2 146
|
||||
FrameIndex 2NFA R 2 147
|
||||
FrameIndex 2NFA S 2 148
|
||||
FrameIndex 2NFA T 2 149
|
||||
FrameIndex 2NFA U 2 150
|
||||
}
|
||||
|
|
@ -44,7 +44,7 @@ Model "FlakChunk"
|
|||
USEACTORPITCH
|
||||
USEACTORROLL
|
||||
USEROTATIONCENTER
|
||||
Rotation-Center 0 0 0.5
|
||||
Rotation-Center 0 0 2
|
||||
|
||||
FrameIndex FCH1 A 0 0
|
||||
}
|
||||
|
|
@ -58,7 +58,7 @@ Model "FlakChunk"
|
|||
USEACTORPITCH
|
||||
USEACTORROLL
|
||||
USEROTATIONCENTER
|
||||
Rotation-Center 0 0 0.5
|
||||
Rotation-Center 0 0 2
|
||||
|
||||
FrameIndex FCH1 B 0 0
|
||||
}
|
||||
|
|
@ -72,7 +72,7 @@ Model "FlakChunk"
|
|||
USEACTORPITCH
|
||||
USEACTORROLL
|
||||
USEROTATIONCENTER
|
||||
Rotation-Center 0 0 0.5
|
||||
Rotation-Center 0 0 2
|
||||
|
||||
FrameIndex FCH1 C 0 0
|
||||
}
|
||||
|
|
@ -86,7 +86,7 @@ Model "FlakChunk"
|
|||
USEACTORPITCH
|
||||
USEACTORROLL
|
||||
USEROTATIONCENTER
|
||||
Rotation-Center 0 0 0.5
|
||||
Rotation-Center 0 0 2
|
||||
|
||||
FrameIndex FCH1 D 0 0
|
||||
}
|
||||
|
|
@ -100,7 +100,7 @@ Model "FlakChunk"
|
|||
USEACTORPITCH
|
||||
USEACTORROLL
|
||||
USEROTATIONCENTER
|
||||
Rotation-Center 0 0 0.5
|
||||
Rotation-Center 0 0 2
|
||||
|
||||
FrameIndex FCH1 E 0 0
|
||||
}
|
||||
|
|
@ -114,7 +114,7 @@ Model "FlakChunk"
|
|||
USEACTORPITCH
|
||||
USEACTORROLL
|
||||
USEROTATIONCENTER
|
||||
Rotation-Center 0 0 0.5
|
||||
Rotation-Center 0 0 2
|
||||
|
||||
FrameIndex FCH1 F 0 0
|
||||
}
|
||||
|
|
@ -128,7 +128,7 @@ Model "FlakChunk"
|
|||
USEACTORPITCH
|
||||
USEACTORROLL
|
||||
USEROTATIONCENTER
|
||||
Rotation-Center 0 0 0.5
|
||||
Rotation-Center 0 0 2
|
||||
|
||||
FrameIndex FCH1 G 0 0
|
||||
}
|
||||
|
|
@ -142,7 +142,7 @@ Model "FlakChunk"
|
|||
USEACTORPITCH
|
||||
USEACTORROLL
|
||||
USEROTATIONCENTER
|
||||
Rotation-Center 0 0 0.5
|
||||
Rotation-Center 0 0 2
|
||||
|
||||
FrameIndex FCH1 H 0 0
|
||||
}
|
||||
|
|
@ -156,7 +156,7 @@ Model "FlakChunk"
|
|||
USEACTORPITCH
|
||||
USEACTORROLL
|
||||
USEROTATIONCENTER
|
||||
Rotation-Center 0 0 0.5
|
||||
Rotation-Center 0 0 2
|
||||
|
||||
FrameIndex FCH1 I 0 0
|
||||
}
|
||||
|
|
@ -170,7 +170,7 @@ Model "FlakChunk"
|
|||
USEACTORPITCH
|
||||
USEACTORROLL
|
||||
USEROTATIONCENTER
|
||||
Rotation-Center 0 0 0.5
|
||||
Rotation-Center 0 0 2
|
||||
|
||||
FrameIndex FCH1 J 0 0
|
||||
}
|
||||
|
|
@ -184,7 +184,7 @@ Model "FlakChunk"
|
|||
USEACTORPITCH
|
||||
USEACTORROLL
|
||||
USEROTATIONCENTER
|
||||
Rotation-Center 0 0 0.5
|
||||
Rotation-Center 0 0 2
|
||||
|
||||
FrameIndex FCH1 K 0 0
|
||||
}
|
||||
|
|
@ -198,7 +198,7 @@ Model "FlakChunk"
|
|||
USEACTORPITCH
|
||||
USEACTORROLL
|
||||
USEROTATIONCENTER
|
||||
Rotation-Center 0 0 0.5
|
||||
Rotation-Center 0 0 2
|
||||
|
||||
FrameIndex FCH1 L 0 0
|
||||
}
|
||||
|
|
@ -213,7 +213,7 @@ Model "FlakChunk"
|
|||
USEACTORPITCH
|
||||
USEACTORROLL
|
||||
USEROTATIONCENTER
|
||||
Rotation-Center 0 0 0.5
|
||||
Rotation-Center 0 0 2
|
||||
|
||||
FrameIndex FCH2 A 1 0
|
||||
}
|
||||
|
|
@ -227,7 +227,7 @@ Model "FlakChunk"
|
|||
USEACTORPITCH
|
||||
USEACTORROLL
|
||||
USEROTATIONCENTER
|
||||
Rotation-Center 0 0 0.5
|
||||
Rotation-Center 0 0 2
|
||||
|
||||
FrameIndex FCH2 B 1 0
|
||||
}
|
||||
|
|
@ -241,7 +241,7 @@ Model "FlakChunk"
|
|||
USEACTORPITCH
|
||||
USEACTORROLL
|
||||
USEROTATIONCENTER
|
||||
Rotation-Center 0 0 0.5
|
||||
Rotation-Center 0 0 2
|
||||
|
||||
FrameIndex FCH2 C 1 0
|
||||
}
|
||||
|
|
@ -255,7 +255,7 @@ Model "FlakChunk"
|
|||
USEACTORPITCH
|
||||
USEACTORROLL
|
||||
USEROTATIONCENTER
|
||||
Rotation-Center 0 0 0.5
|
||||
Rotation-Center 0 0 2
|
||||
|
||||
FrameIndex FCH2 D 1 0
|
||||
}
|
||||
|
|
@ -269,7 +269,7 @@ Model "FlakChunk"
|
|||
USEACTORPITCH
|
||||
USEACTORROLL
|
||||
USEROTATIONCENTER
|
||||
Rotation-Center 0 0 0.5
|
||||
Rotation-Center 0 0 2
|
||||
|
||||
FrameIndex FCH2 E 1 0
|
||||
}
|
||||
|
|
@ -283,7 +283,7 @@ Model "FlakChunk"
|
|||
USEACTORPITCH
|
||||
USEACTORROLL
|
||||
USEROTATIONCENTER
|
||||
Rotation-Center 0 0 0.5
|
||||
Rotation-Center 0 0 2
|
||||
|
||||
FrameIndex FCH2 F 1 0
|
||||
}
|
||||
|
|
@ -297,7 +297,7 @@ Model "FlakChunk"
|
|||
USEACTORPITCH
|
||||
USEACTORROLL
|
||||
USEROTATIONCENTER
|
||||
Rotation-Center 0 0 0.5
|
||||
Rotation-Center 0 0 2
|
||||
|
||||
FrameIndex FCH2 G 1 0
|
||||
}
|
||||
|
|
@ -311,7 +311,7 @@ Model "FlakChunk"
|
|||
USEACTORPITCH
|
||||
USEACTORROLL
|
||||
USEROTATIONCENTER
|
||||
Rotation-Center 0 0 0.5
|
||||
Rotation-Center 0 0 2
|
||||
|
||||
FrameIndex FCH2 H 1 0
|
||||
}
|
||||
|
|
@ -325,7 +325,7 @@ Model "FlakChunk"
|
|||
USEACTORPITCH
|
||||
USEACTORROLL
|
||||
USEROTATIONCENTER
|
||||
Rotation-Center 0 0 0.5
|
||||
Rotation-Center 0 0 2
|
||||
|
||||
FrameIndex FCH2 I 1 0
|
||||
}
|
||||
|
|
@ -339,7 +339,7 @@ Model "FlakChunk"
|
|||
USEACTORPITCH
|
||||
USEACTORROLL
|
||||
USEROTATIONCENTER
|
||||
Rotation-Center 0 0 0.5
|
||||
Rotation-Center 0 0 2
|
||||
|
||||
FrameIndex FCH2 J 1 0
|
||||
}
|
||||
|
|
@ -353,7 +353,7 @@ Model "FlakChunk"
|
|||
USEACTORPITCH
|
||||
USEACTORROLL
|
||||
USEROTATIONCENTER
|
||||
Rotation-Center 0 0 0.5
|
||||
Rotation-Center 0 0 2
|
||||
|
||||
FrameIndex FCH2 K 1 0
|
||||
}
|
||||
|
|
@ -367,7 +367,7 @@ Model "FlakChunk"
|
|||
USEACTORPITCH
|
||||
USEACTORROLL
|
||||
USEROTATIONCENTER
|
||||
Rotation-Center 0 0 0.5
|
||||
Rotation-Center 0 0 2
|
||||
|
||||
FrameIndex FCH2 L 1 0
|
||||
}
|
||||
|
|
@ -382,7 +382,7 @@ Model "FlakChunk"
|
|||
USEACTORPITCH
|
||||
USEACTORROLL
|
||||
USEROTATIONCENTER
|
||||
Rotation-Center 0 0 0.5
|
||||
Rotation-Center 0 0 2
|
||||
|
||||
FrameIndex FCH3 A 2 0
|
||||
}
|
||||
|
|
@ -396,7 +396,7 @@ Model "FlakChunk"
|
|||
USEACTORPITCH
|
||||
USEACTORROLL
|
||||
USEROTATIONCENTER
|
||||
Rotation-Center 0 0 0.5
|
||||
Rotation-Center 0 0 2
|
||||
|
||||
FrameIndex FCH3 B 2 0
|
||||
}
|
||||
|
|
@ -410,7 +410,7 @@ Model "FlakChunk"
|
|||
USEACTORPITCH
|
||||
USEACTORROLL
|
||||
USEROTATIONCENTER
|
||||
Rotation-Center 0 0 0.5
|
||||
Rotation-Center 0 0 2
|
||||
|
||||
FrameIndex FCH3 C 2 0
|
||||
}
|
||||
|
|
@ -424,7 +424,7 @@ Model "FlakChunk"
|
|||
USEACTORPITCH
|
||||
USEACTORROLL
|
||||
USEROTATIONCENTER
|
||||
Rotation-Center 0 0 0.5
|
||||
Rotation-Center 0 0 2
|
||||
|
||||
FrameIndex FCH3 D 2 0
|
||||
}
|
||||
|
|
@ -438,7 +438,7 @@ Model "FlakChunk"
|
|||
USEACTORPITCH
|
||||
USEACTORROLL
|
||||
USEROTATIONCENTER
|
||||
Rotation-Center 0 0 0.5
|
||||
Rotation-Center 0 0 2
|
||||
|
||||
FrameIndex FCH3 E 2 0
|
||||
}
|
||||
|
|
@ -452,7 +452,7 @@ Model "FlakChunk"
|
|||
USEACTORPITCH
|
||||
USEACTORROLL
|
||||
USEROTATIONCENTER
|
||||
Rotation-Center 0 0 0.5
|
||||
Rotation-Center 0 0 2
|
||||
|
||||
FrameIndex FCH3 F 2 0
|
||||
}
|
||||
|
|
@ -466,7 +466,7 @@ Model "FlakChunk"
|
|||
USEACTORPITCH
|
||||
USEACTORROLL
|
||||
USEROTATIONCENTER
|
||||
Rotation-Center 0 0 0.5
|
||||
Rotation-Center 0 0 2
|
||||
|
||||
FrameIndex FCH3 G 2 0
|
||||
}
|
||||
|
|
@ -480,7 +480,7 @@ Model "FlakChunk"
|
|||
USEACTORPITCH
|
||||
USEACTORROLL
|
||||
USEROTATIONCENTER
|
||||
Rotation-Center 0 0 0.5
|
||||
Rotation-Center 0 0 2
|
||||
|
||||
FrameIndex FCH3 H 2 0
|
||||
}
|
||||
|
|
@ -494,7 +494,7 @@ Model "FlakChunk"
|
|||
USEACTORPITCH
|
||||
USEACTORROLL
|
||||
USEROTATIONCENTER
|
||||
Rotation-Center 0 0 0.5
|
||||
Rotation-Center 0 0 2
|
||||
|
||||
FrameIndex FCH3 I 2 0
|
||||
}
|
||||
|
|
@ -508,7 +508,7 @@ Model "FlakChunk"
|
|||
USEACTORPITCH
|
||||
USEACTORROLL
|
||||
USEROTATIONCENTER
|
||||
Rotation-Center 0 0 0.5
|
||||
Rotation-Center 0 0 2
|
||||
|
||||
FrameIndex FCH3 J 2 0
|
||||
}
|
||||
|
|
@ -522,7 +522,7 @@ Model "FlakChunk"
|
|||
USEACTORPITCH
|
||||
USEACTORROLL
|
||||
USEROTATIONCENTER
|
||||
Rotation-Center 0 0 0.5
|
||||
Rotation-Center 0 0 2
|
||||
|
||||
FrameIndex FCH3 K 2 0
|
||||
}
|
||||
|
|
@ -536,7 +536,7 @@ Model "FlakChunk"
|
|||
USEACTORPITCH
|
||||
USEACTORROLL
|
||||
USEROTATIONCENTER
|
||||
Rotation-Center 0 0 0.5
|
||||
Rotation-Center 0 0 2
|
||||
|
||||
FrameIndex FCH3 L 2 0
|
||||
}
|
||||
|
|
@ -551,7 +551,7 @@ Model "FlakChunk"
|
|||
USEACTORPITCH
|
||||
USEACTORROLL
|
||||
USEROTATIONCENTER
|
||||
Rotation-Center 0 0 0.5
|
||||
Rotation-Center 0 0 2
|
||||
|
||||
FrameIndex FCH4 A 3 0
|
||||
}
|
||||
|
|
@ -565,7 +565,7 @@ Model "FlakChunk"
|
|||
USEACTORPITCH
|
||||
USEACTORROLL
|
||||
USEROTATIONCENTER
|
||||
Rotation-Center 0 0 0.5
|
||||
Rotation-Center 0 0 2
|
||||
|
||||
FrameIndex FCH4 B 3 0
|
||||
}
|
||||
|
|
@ -579,7 +579,7 @@ Model "FlakChunk"
|
|||
USEACTORPITCH
|
||||
USEACTORROLL
|
||||
USEROTATIONCENTER
|
||||
Rotation-Center 0 0 0.5
|
||||
Rotation-Center 0 0 2
|
||||
|
||||
FrameIndex FCH4 C 3 0
|
||||
}
|
||||
|
|
@ -593,7 +593,7 @@ Model "FlakChunk"
|
|||
USEACTORPITCH
|
||||
USEACTORROLL
|
||||
USEROTATIONCENTER
|
||||
Rotation-Center 0 0 0.5
|
||||
Rotation-Center 0 0 2
|
||||
|
||||
FrameIndex FCH4 D 3 0
|
||||
}
|
||||
|
|
@ -607,7 +607,7 @@ Model "FlakChunk"
|
|||
USEACTORPITCH
|
||||
USEACTORROLL
|
||||
USEROTATIONCENTER
|
||||
Rotation-Center 0 0 0.5
|
||||
Rotation-Center 0 0 2
|
||||
|
||||
FrameIndex FCH4 E 3 0
|
||||
}
|
||||
|
|
@ -621,7 +621,7 @@ Model "FlakChunk"
|
|||
USEACTORPITCH
|
||||
USEACTORROLL
|
||||
USEROTATIONCENTER
|
||||
Rotation-Center 0 0 0.5
|
||||
Rotation-Center 0 0 2
|
||||
|
||||
FrameIndex FCH4 F 3 0
|
||||
}
|
||||
|
|
@ -635,7 +635,7 @@ Model "FlakChunk"
|
|||
USEACTORPITCH
|
||||
USEACTORROLL
|
||||
USEROTATIONCENTER
|
||||
Rotation-Center 0 0 0.5
|
||||
Rotation-Center 0 0 2
|
||||
|
||||
FrameIndex FCH4 G 3 0
|
||||
}
|
||||
|
|
@ -649,7 +649,7 @@ Model "FlakChunk"
|
|||
USEACTORPITCH
|
||||
USEACTORROLL
|
||||
USEROTATIONCENTER
|
||||
Rotation-Center 0 0 0.5
|
||||
Rotation-Center 0 0 2
|
||||
|
||||
FrameIndex FCH4 H 3 0
|
||||
}
|
||||
|
|
@ -663,7 +663,7 @@ Model "FlakChunk"
|
|||
USEACTORPITCH
|
||||
USEACTORROLL
|
||||
USEROTATIONCENTER
|
||||
Rotation-Center 0 0 0.5
|
||||
Rotation-Center 0 0 2
|
||||
|
||||
FrameIndex FCH4 I 3 0
|
||||
}
|
||||
|
|
@ -677,7 +677,7 @@ Model "FlakChunk"
|
|||
USEACTORPITCH
|
||||
USEACTORROLL
|
||||
USEROTATIONCENTER
|
||||
Rotation-Center 0 0 0.5
|
||||
Rotation-Center 0 0 2
|
||||
|
||||
FrameIndex FCH4 J 3 0
|
||||
}
|
||||
|
|
@ -691,7 +691,7 @@ Model "FlakChunk"
|
|||
USEACTORPITCH
|
||||
USEACTORROLL
|
||||
USEROTATIONCENTER
|
||||
Rotation-Center 0 0 0.5
|
||||
Rotation-Center 0 0 2
|
||||
|
||||
FrameIndex FCH4 K 3 0
|
||||
}
|
||||
|
|
@ -705,7 +705,7 @@ Model "FlakChunk"
|
|||
USEACTORPITCH
|
||||
USEACTORROLL
|
||||
USEROTATIONCENTER
|
||||
Rotation-Center 0 0 0.5
|
||||
Rotation-Center 0 0 2
|
||||
|
||||
FrameIndex FCH4 L 3 0
|
||||
}
|
||||
|
|
@ -747,7 +747,7 @@ Model "FlakCannon"
|
|||
Scale 0.08 0.08 0.08
|
||||
Offset 4.0 -25.0 -7.5
|
||||
|
||||
FrameIndex FMUZ A 0 0
|
||||
FrameIndex FMUZ A 2 0
|
||||
}
|
||||
|
||||
Model "FlakCannon"
|
||||
|
|
|
|||
|
|
@ -331,8 +331,8 @@ Model "UTChip"
|
|||
USEACTORPITCH
|
||||
USEACTORROLL
|
||||
USEROTATIONCENTER
|
||||
Rotation-Center 0 0 0.5
|
||||
ZOffset 2
|
||||
Rotation-Center 0 0 0
|
||||
ZOffset 1
|
||||
|
||||
FrameIndex CHIP A 0 0
|
||||
FrameIndex CHIP B 0 1
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ Model "PulseGun"
|
|||
Scale 0.08 0.08 0.08
|
||||
Offset 8.5 -25.0 -4.5
|
||||
|
||||
FrameIndex PMUZ A 0 0
|
||||
FrameIndex PMUZ A 2 0
|
||||
}
|
||||
|
||||
Model "PulseGun"
|
||||
|
|
|
|||
BIN
models/EMuz1.png
Normal file
BIN
models/EMuz1.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 13 KiB |
|
|
@ -33,11 +33,11 @@ Currently implemented:
|
|||
- Impact Hammer (slot 1)
|
||||
- Chainsaw (slot 1)
|
||||
- Translocator (slot 1)
|
||||
- Enforcer (slot 2)
|
||||
- Dual Enforcers (slot 2)
|
||||
|
||||
In progress:
|
||||
|
||||
- Enforcer (slot 2)
|
||||
- Dual Enforcers (slot 2)
|
||||
- Ripper (slot 6)
|
||||
- Minigun (slot 7)
|
||||
- Rocket Launcher (slot 9)
|
||||
|
|
|
|||
10
sndinfo.txt
10
sndinfo.txt
|
|
@ -139,6 +139,16 @@ transloc/spark tdisrupt
|
|||
transloc/bounce hit1
|
||||
transloc/hum targeth
|
||||
|
||||
enforcer/select cocking
|
||||
enforcer/shoot e_shot
|
||||
enforcer/reload reload
|
||||
enforcer/click click
|
||||
|
||||
bullet/casing shell2
|
||||
bullet/hit1 impact1
|
||||
bullet/hit2 impact2
|
||||
$random bullet/hit { bullet/hit1 bullet/hit2 }
|
||||
|
||||
ges/hit gelhit
|
||||
ges/select gelselec
|
||||
ges/fire gelshot
|
||||
|
|
|
|||
|
|
@ -1,3 +1,255 @@
|
|||
Sprite "ECLPA0",1,1{}
|
||||
Sprite "ENFPA0",1,1{}
|
||||
Sprite "ENFPB0",1,1{}
|
||||
Sprite "ENFFA0",1,1{}
|
||||
Sprite "ENFFB0",1,1{}
|
||||
Sprite "ENFFC0",1,1{}
|
||||
Sprite "ENFFD0",1,1{}
|
||||
Sprite "ENFFE0",1,1{}
|
||||
Sprite "ENFFF0",1,1{}
|
||||
Sprite "ENFFG0",1,1{}
|
||||
Sprite "ENFFH0",1,1{}
|
||||
Sprite "ENFFI0",1,1{}
|
||||
Sprite "ENFFJ0",1,1{}
|
||||
Sprite "ENFRA0",1,1{}
|
||||
Sprite "ENFRB0",1,1{}
|
||||
Sprite "ENFRC0",1,1{}
|
||||
Sprite "ENFRD0",1,1{}
|
||||
Sprite "ENFRE0",1,1{}
|
||||
Sprite "ENFRF0",1,1{}
|
||||
Sprite "ENFRG0",1,1{}
|
||||
Sprite "ENFRH0",1,1{}
|
||||
Sprite "ENFRI0",1,1{}
|
||||
Sprite "ENFRJ0",1,1{}
|
||||
Sprite "ENFRK0",1,1{}
|
||||
Sprite "ENFRL0",1,1{}
|
||||
Sprite "ENFRM0",1,1{}
|
||||
Sprite "ENFRN0",1,1{}
|
||||
Sprite "ENFRO0",1,1{}
|
||||
Sprite "ENFRP0",1,1{}
|
||||
Sprite "ENFRQ0",1,1{}
|
||||
Sprite "ENFRR0",1,1{}
|
||||
Sprite "ENFRS0",1,1{}
|
||||
Sprite "ENFRT0",1,1{}
|
||||
Sprite "ENFRU0",1,1{}
|
||||
Sprite "ENFRV0",1,1{}
|
||||
Sprite "ENFRW0",1,1{}
|
||||
Sprite "ENFRX0",1,1{}
|
||||
Sprite "ENFRY0",1,1{}
|
||||
Sprite "ENFRZ0",1,1{}
|
||||
Sprite "ENR2A0",1,1{}
|
||||
Sprite "ENR2B0",1,1{}
|
||||
Sprite "ENFSA0",1,1{}
|
||||
Sprite "ENFSB0",1,1{}
|
||||
Sprite "ENFSC0",1,1{}
|
||||
Sprite "ENFSD0",1,1{}
|
||||
Sprite "ENFSE0",1,1{}
|
||||
Sprite "ENFSF0",1,1{}
|
||||
Sprite "ENFSG0",1,1{}
|
||||
Sprite "ENFSH0",1,1{}
|
||||
Sprite "ENFSI0",1,1{}
|
||||
Sprite "ENFSJ0",1,1{}
|
||||
Sprite "ENFSK0",1,1{}
|
||||
Sprite "ENFSL0",1,1{}
|
||||
Sprite "ENFSM0",1,1{}
|
||||
Sprite "ENFSN0",1,1{}
|
||||
Sprite "ENFSO0",1,1{}
|
||||
Sprite "ENFSP0",1,1{}
|
||||
Sprite "ENFSQ0",1,1{}
|
||||
Sprite "ENFSR0",1,1{}
|
||||
Sprite "ENFSS0",1,1{}
|
||||
Sprite "ENFST0",1,1{}
|
||||
Sprite "ENFSU0",1,1{}
|
||||
Sprite "ENFSV0",1,1{}
|
||||
Sprite "ENFSW0",1,1{}
|
||||
Sprite "ENFSX0",1,1{}
|
||||
Sprite "ENFSY0",1,1{}
|
||||
Sprite "ENFSZ0",1,1{}
|
||||
Sprite "ENFIA0",1,1{}
|
||||
Sprite "ENFIB0",1,1{}
|
||||
Sprite "ENFTA0",1,1{}
|
||||
Sprite "ENFTB0",1,1{}
|
||||
Sprite "ENFTC0",1,1{}
|
||||
Sprite "ENFTD0",1,1{}
|
||||
Sprite "ENFTE0",1,1{}
|
||||
Sprite "ENFTF0",1,1{}
|
||||
Sprite "ENFTG0",1,1{}
|
||||
Sprite "ENFTH0",1,1{}
|
||||
Sprite "ENFTI0",1,1{}
|
||||
Sprite "ENFTJ0",1,1{}
|
||||
Sprite "ENFTK0",1,1{}
|
||||
Sprite "ENFTL0",1,1{}
|
||||
Sprite "ENFTM0",1,1{}
|
||||
Sprite "ENFTN0",1,1{}
|
||||
Sprite "ENFTO0",1,1{}
|
||||
Sprite "ENFTP0",1,1{}
|
||||
Sprite "ENFTQ0",1,1{}
|
||||
Sprite "ENFTR0",1,1{}
|
||||
Sprite "ENFTS0",1,1{}
|
||||
Sprite "ENFTT0",1,1{}
|
||||
Sprite "ENFTU0",1,1{}
|
||||
Sprite "ENFTV0",1,1{}
|
||||
Sprite "ENFTW0",1,1{}
|
||||
Sprite "ENFTX0",1,1{}
|
||||
Sprite "ENFTY0",1,1{}
|
||||
Sprite "ENFDA0",1,1{}
|
||||
Sprite "ENFDB0",1,1{}
|
||||
Sprite "ENFDC0",1,1{}
|
||||
Sprite "ENFDD0",1,1{}
|
||||
Sprite "ENFDE0",1,1{}
|
||||
Sprite "ENFDF0",1,1{}
|
||||
Sprite "ENFDG0",1,1{}
|
||||
Sprite "ENFDH0",1,1{}
|
||||
Sprite "ENFDI0",1,1{}
|
||||
Sprite "ENFDJ0",1,1{}
|
||||
Sprite "ENFDK0",1,1{}
|
||||
Sprite "ENFDL0",1,1{}
|
||||
Sprite "ENFAA0",1,1{}
|
||||
Sprite "ENFAB0",1,1{}
|
||||
Sprite "ENFAC0",1,1{}
|
||||
Sprite "ENFAD0",1,1{}
|
||||
Sprite "ENFAE0",1,1{}
|
||||
Sprite "ENFAF0",1,1{}
|
||||
Sprite "ENFAG0",1,1{}
|
||||
Sprite "ENFAH0",1,1{}
|
||||
Sprite "ENFAI0",1,1{}
|
||||
Sprite "ENFAJ0",1,1{}
|
||||
Sprite "ENFAK0",1,1{}
|
||||
Sprite "ENFAL0",1,1{}
|
||||
Sprite "ENFAM0",1,1{}
|
||||
Sprite "ENFAN0",1,1{}
|
||||
Sprite "ENFAO0",1,1{}
|
||||
Sprite "ENFAP0",1,1{}
|
||||
Sprite "ENFAQ0",1,1{}
|
||||
Sprite "ENFAR0",1,1{}
|
||||
Sprite "ENFAS0",1,1{}
|
||||
Sprite "ENFAT0",1,1{}
|
||||
Sprite "ENFAU0",1,1{}
|
||||
Sprite "2NFFA0",1,1{}
|
||||
Sprite "2NFFB0",1,1{}
|
||||
Sprite "2NFFC0",1,1{}
|
||||
Sprite "2NFFD0",1,1{}
|
||||
Sprite "2NFFE0",1,1{}
|
||||
Sprite "2NFFF0",1,1{}
|
||||
Sprite "2NFFG0",1,1{}
|
||||
Sprite "2NFFH0",1,1{}
|
||||
Sprite "2NFFI0",1,1{}
|
||||
Sprite "2NFFJ0",1,1{}
|
||||
Sprite "2NFRA0",1,1{}
|
||||
Sprite "2NFRB0",1,1{}
|
||||
Sprite "2NFRC0",1,1{}
|
||||
Sprite "2NFRD0",1,1{}
|
||||
Sprite "2NFRE0",1,1{}
|
||||
Sprite "2NFRF0",1,1{}
|
||||
Sprite "2NFRG0",1,1{}
|
||||
Sprite "2NFRH0",1,1{}
|
||||
Sprite "2NFRI0",1,1{}
|
||||
Sprite "2NFRJ0",1,1{}
|
||||
Sprite "2NFRK0",1,1{}
|
||||
Sprite "2NFRL0",1,1{}
|
||||
Sprite "2NFRM0",1,1{}
|
||||
Sprite "2NFRN0",1,1{}
|
||||
Sprite "2NFRO0",1,1{}
|
||||
Sprite "2NFRP0",1,1{}
|
||||
Sprite "2NFRQ0",1,1{}
|
||||
Sprite "2NFRR0",1,1{}
|
||||
Sprite "2NFRS0",1,1{}
|
||||
Sprite "2NFRT0",1,1{}
|
||||
Sprite "2NFRU0",1,1{}
|
||||
Sprite "2NFRV0",1,1{}
|
||||
Sprite "2NFRW0",1,1{}
|
||||
Sprite "2NFRX0",1,1{}
|
||||
Sprite "2NFRY0",1,1{}
|
||||
Sprite "2NFRZ0",1,1{}
|
||||
Sprite "2NR2A0",1,1{}
|
||||
Sprite "2NR2B0",1,1{}
|
||||
Sprite "2NFSA0",1,1{}
|
||||
Sprite "2NFSB0",1,1{}
|
||||
Sprite "2NFSC0",1,1{}
|
||||
Sprite "2NFSD0",1,1{}
|
||||
Sprite "2NFSE0",1,1{}
|
||||
Sprite "2NFSF0",1,1{}
|
||||
Sprite "2NFSG0",1,1{}
|
||||
Sprite "2NFSH0",1,1{}
|
||||
Sprite "2NFSI0",1,1{}
|
||||
Sprite "2NFSJ0",1,1{}
|
||||
Sprite "2NFSK0",1,1{}
|
||||
Sprite "2NFSL0",1,1{}
|
||||
Sprite "2NFSM0",1,1{}
|
||||
Sprite "2NFSN0",1,1{}
|
||||
Sprite "2NFSO0",1,1{}
|
||||
Sprite "2NFSP0",1,1{}
|
||||
Sprite "2NFSQ0",1,1{}
|
||||
Sprite "2NFSR0",1,1{}
|
||||
Sprite "2NFSS0",1,1{}
|
||||
Sprite "2NFST0",1,1{}
|
||||
Sprite "2NFSU0",1,1{}
|
||||
Sprite "2NFSV0",1,1{}
|
||||
Sprite "2NFSW0",1,1{}
|
||||
Sprite "2NFSX0",1,1{}
|
||||
Sprite "2NFSY0",1,1{}
|
||||
Sprite "2NFSZ0",1,1{}
|
||||
Sprite "2NFIA0",1,1{}
|
||||
Sprite "2NFIB0",1,1{}
|
||||
Sprite "2NFTA0",1,1{}
|
||||
Sprite "2NFTB0",1,1{}
|
||||
Sprite "2NFTC0",1,1{}
|
||||
Sprite "2NFTD0",1,1{}
|
||||
Sprite "2NFTE0",1,1{}
|
||||
Sprite "2NFTF0",1,1{}
|
||||
Sprite "2NFTG0",1,1{}
|
||||
Sprite "2NFTH0",1,1{}
|
||||
Sprite "2NFTI0",1,1{}
|
||||
Sprite "2NFTJ0",1,1{}
|
||||
Sprite "2NFTK0",1,1{}
|
||||
Sprite "2NFTL0",1,1{}
|
||||
Sprite "2NFTM0",1,1{}
|
||||
Sprite "2NFTN0",1,1{}
|
||||
Sprite "2NFTO0",1,1{}
|
||||
Sprite "2NFTP0",1,1{}
|
||||
Sprite "2NFTQ0",1,1{}
|
||||
Sprite "2NFTR0",1,1{}
|
||||
Sprite "2NFTS0",1,1{}
|
||||
Sprite "2NFTT0",1,1{}
|
||||
Sprite "2NFTU0",1,1{}
|
||||
Sprite "2NFTV0",1,1{}
|
||||
Sprite "2NFTW0",1,1{}
|
||||
Sprite "2NFTX0",1,1{}
|
||||
Sprite "2NFTY0",1,1{}
|
||||
Sprite "2NFDA0",1,1{}
|
||||
Sprite "2NFDB0",1,1{}
|
||||
Sprite "2NFDC0",1,1{}
|
||||
Sprite "2NFDD0",1,1{}
|
||||
Sprite "2NFDE0",1,1{}
|
||||
Sprite "2NFDF0",1,1{}
|
||||
Sprite "2NFDG0",1,1{}
|
||||
Sprite "2NFDH0",1,1{}
|
||||
Sprite "2NFDI0",1,1{}
|
||||
Sprite "2NFDJ0",1,1{}
|
||||
Sprite "2NFDK0",1,1{}
|
||||
Sprite "2NFDL0",1,1{}
|
||||
Sprite "2NFAA0",1,1{}
|
||||
Sprite "2NFAB0",1,1{}
|
||||
Sprite "2NFAC0",1,1{}
|
||||
Sprite "2NFAD0",1,1{}
|
||||
Sprite "2NFAE0",1,1{}
|
||||
Sprite "2NFAF0",1,1{}
|
||||
Sprite "2NFAG0",1,1{}
|
||||
Sprite "2NFAH0",1,1{}
|
||||
Sprite "2NFAI0",1,1{}
|
||||
Sprite "2NFAJ0",1,1{}
|
||||
Sprite "2NFAK0",1,1{}
|
||||
Sprite "2NFAL0",1,1{}
|
||||
Sprite "2NFAM0",1,1{}
|
||||
Sprite "2NFAN0",1,1{}
|
||||
Sprite "2NFAO0",1,1{}
|
||||
Sprite "2NFAP0",1,1{}
|
||||
Sprite "2NFAQ0",1,1{}
|
||||
Sprite "2NFAR0",1,1{}
|
||||
Sprite "2NFAS0",1,1{}
|
||||
Sprite "2NFAT0",1,1{}
|
||||
Sprite "2NFAU0",1,1{}
|
||||
Sprite "EMUZA0",1,1{}
|
||||
Sprite "EMUZB0",1,1{}
|
||||
Sprite "EMUZC0",1,1{}
|
||||
Sprite "EMUZD0",1,1{}
|
||||
|
|
|
|||
|
|
@ -58,7 +58,8 @@ Class UTChainsaw : UTWeapon replaces Chainsaw
|
|||
LineTrace(angle,90,BulletSlope(),TRF_ABSPOSITION,origin.z,origin.x,origin.y,d);
|
||||
if ( d.HitType == TRACE_HitActor )
|
||||
{
|
||||
d.HitActor.DamageMobj(invoker,self,20,'slashed');
|
||||
int dmg = Random[Chainsaw](16,22);
|
||||
dmg = d.HitActor.DamageMobj(invoker,self,dmg,'slashed');
|
||||
d.HitActor.vel -= x*(500/d.HitActor.mass);
|
||||
vel += x*(100/mass);
|
||||
if ( d.HitActor.player ) d.HitActor.A_QuakeEx(5,5,5,6,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.25);
|
||||
|
|
@ -70,8 +71,8 @@ Class UTChainsaw : UTWeapon replaces Chainsaw
|
|||
}
|
||||
else
|
||||
{
|
||||
d.HitActor.TraceBleed(20,invoker);
|
||||
d.HitActor.SpawnBlood(d.HitLocation,atan2(-d.HitDir.y,-d.HitDir.x),20);
|
||||
d.HitActor.TraceBleed(dmg,invoker);
|
||||
d.HitActor.SpawnBlood(d.HitLocation,atan2(d.HitDir.y,d.HitDir.x)+180,dmg);
|
||||
}
|
||||
}
|
||||
else if ( d.HitType != TRACE_HitNone )
|
||||
|
|
@ -94,7 +95,8 @@ Class UTChainsaw : UTWeapon replaces Chainsaw
|
|||
LineTrace(angle,90,BulletSlope(),TRF_ABSPOSITION,origin.z,origin.x,origin.y,d);
|
||||
if ( d.HitType == TRACE_HitActor )
|
||||
{
|
||||
d.HitActor.DamageMobj(invoker,self,110,'Decapitated');
|
||||
int dmg = Random[Chainsaw](100,110);
|
||||
dmg = d.HitActor.DamageMobj(invoker,self,dmg,'Decapitated');
|
||||
d.HitActor.vel = -y*(1200/d.HitActor.mass);
|
||||
vel += x*(100/mass);
|
||||
if ( d.HitActor.player ) d.HitActor.A_QuakeEx(5,5,5,6,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.25);
|
||||
|
|
@ -106,8 +108,8 @@ Class UTChainsaw : UTWeapon replaces Chainsaw
|
|||
}
|
||||
else
|
||||
{
|
||||
d.HitActor.TraceBleed(110,invoker);
|
||||
d.HitActor.SpawnBlood(d.HitLocation,atan2(-d.HitDir.y,-d.HitDir.x),110);
|
||||
d.HitActor.TraceBleed(dmg,invoker);
|
||||
d.HitActor.SpawnBlood(d.HitLocation,atan2(d.HitDir.y,d.HitDir.x)+180,dmg);
|
||||
}
|
||||
}
|
||||
else if ( d.HitType != TRACE_HitNone )
|
||||
|
|
|
|||
|
|
@ -15,23 +15,154 @@ Class EClip : MiniAmmo replaces Clip
|
|||
}
|
||||
}
|
||||
|
||||
Class EnforcerLight : DynamicLight
|
||||
{
|
||||
int cnt;
|
||||
Default
|
||||
{
|
||||
DynamicLight.Type "Point";
|
||||
args 255,224,64,150;
|
||||
}
|
||||
override void Tick()
|
||||
{
|
||||
Super.Tick();
|
||||
if ( !target )
|
||||
{
|
||||
Destroy();
|
||||
return;
|
||||
}
|
||||
if ( target.player ) SetOrigin(target.Vec2OffsetZ(0,0,target.player.viewz),true);
|
||||
else SetOrigin(target.pos,true);
|
||||
if ( cnt++ > 2 ) Destroy();
|
||||
}
|
||||
}
|
||||
|
||||
Class BulletImpact : Actor
|
||||
{
|
||||
Default
|
||||
{
|
||||
Radius 0.1;
|
||||
Height 0;
|
||||
+NOGRAVITY;
|
||||
+NOCLIP;
|
||||
+DONTSPLASH;
|
||||
}
|
||||
override void PostBeginPlay()
|
||||
{
|
||||
Super.PostBeginPlay();
|
||||
A_SprayDecal("Pock",20);
|
||||
int numpt = Random[Enforcer](5,10);
|
||||
Vector3 x = (cos(angle)*cos(pitch),sin(angle)*cos(pitch),-sin(pitch));
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = (-x+(FRandom[Enforcer](-.8,.8),FRandom[Enforcer](-.8,.8),FRandom[Enforcer](-.8,.8))).unit()*FRandom[Enforcer](0.1,1.2);
|
||||
let s = Spawn("UTSmoke",pos);
|
||||
s.vel = pvel;
|
||||
s.SetShade(Color(1,1,1)*Random[Enforcer](128,192));
|
||||
}
|
||||
numpt = Random[Enforcer](3,8);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = (FRandom[Enforcer](-1,1),FRandom[Enforcer](-1,1),FRandom[Enforcer](-1,1)).unit()*FRandom[Enforcer](2,8);
|
||||
let s = Spawn("UTSpark",pos);
|
||||
s.vel = pvel;
|
||||
}
|
||||
numpt = Random[Enforcer](2,5);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = (FRandom[Enforcer](-1,1),FRandom[Enforcer](-1,1),FRandom[Enforcer](-1,1)).unit()*FRandom[Enforcer](2,8);
|
||||
let s = Spawn("UTChip",pos);
|
||||
s.vel = pvel;
|
||||
}
|
||||
A_PlaySound("bullet/hit",CHAN_VOICE,attenuation:4.0);
|
||||
Destroy();
|
||||
}
|
||||
}
|
||||
|
||||
Class UTCasing : Actor
|
||||
{
|
||||
int deadtimer;
|
||||
double pitchvel, anglevel;
|
||||
|
||||
Default
|
||||
{
|
||||
Radius 2;
|
||||
Height 0;
|
||||
+NOBLOCKMAP;
|
||||
+MISSILE;
|
||||
+MOVEWITHSECTOR;
|
||||
+THRUACTORS;
|
||||
+USEBOUNCESTATE;
|
||||
BounceType "Doom";
|
||||
BounceFactor 0.65;
|
||||
BounceSound "bullet/casing";
|
||||
}
|
||||
override void PostBeginPlay()
|
||||
{
|
||||
Super.PostBeginPlay();
|
||||
deadtimer = 0;
|
||||
pitchvel = FRandom[Junk](10,30)*RandomPick[Junk](-1,1);
|
||||
anglevel = FRandom[Junk](10,30)*RandomPick[Junk](-1,1);
|
||||
}
|
||||
override void Tick()
|
||||
{
|
||||
Super.Tick();
|
||||
if ( InStateSequence(CurState,ResolveState("Death")) )
|
||||
{
|
||||
deadtimer++;
|
||||
if ( deadtimer > 300 ) A_FadeOut(0.05);
|
||||
return;
|
||||
}
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
PCAS A 1
|
||||
{
|
||||
A_SetAngle(angle+anglevel,SPF_INTERPOLATE);
|
||||
A_SetPitch(pitch+pitchvel,SPF_INTERPOLATE);
|
||||
}
|
||||
Loop;
|
||||
Bounce:
|
||||
PCAS A 0
|
||||
{
|
||||
pitchvel = FRandom[Junk](10,30)*RandomPick[Junk](-1,1);
|
||||
anglevel = FRandom[Junk](10,30)*RandomPick[Junk](-1,1);
|
||||
vel = (vel.unit()+(FRandom[Junk](-.2,.2),FRandom[Junk](-.2,.2),FRandom[Junk](-.2,.2))).unit()*vel.length();
|
||||
}
|
||||
Goto Spawn;
|
||||
Death:
|
||||
PCAS A -1
|
||||
{
|
||||
A_SetPitch(0);
|
||||
A_SetRoll(FRandom[Junk](0,360));
|
||||
}
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
Class Enforcer : UTWeapon replaces Pistol
|
||||
{
|
||||
bool Akimbo;
|
||||
int ClipCount, SlaveClipCount;
|
||||
bool SlaveActive, SlaveDown, SlaveReload, SlaveAltFire;
|
||||
int SlaveRefire;
|
||||
|
||||
override string PickupMessage()
|
||||
property ClipCount : ClipCount;
|
||||
property SlaveClipCount : SlaveClipCount;
|
||||
|
||||
override void PostRender()
|
||||
{
|
||||
if ( Owner.CountInv(GetClass()) ) return "You picked up another Enforcer!";
|
||||
else return PickupMsg;
|
||||
if ( !CVar.GetCVar('flak_enforcerreload').GetBool() ) return;
|
||||
if ( Amount > 1 ) Screen.DrawText(confont,Font.CR_GREEN,Screen.GetWidth()*0.01,Screen.GetHeight()*0.88,String.Format("L Clip: % 2d / 20\nR Clip: % 2d / 20",slaveclipcount,clipcount));
|
||||
else Screen.DrawText(confont,Font.CR_GREEN,Screen.GetWidth()*0.01,Screen.GetHeight()*0.88,String.Format("Clip: % 2d / 20",clipcount));
|
||||
}
|
||||
|
||||
override bool HandlePickup (Inventory item)
|
||||
{
|
||||
if ( item.GetClass() == GetClass() )
|
||||
{
|
||||
if ( !Enforcer(item).Akimbo )
|
||||
if ( item.Amount == 1 )
|
||||
{
|
||||
Enforcer(item).Akimbo = true;
|
||||
item.bPickupGood = true;
|
||||
item.SetTag("Dual Enforcers");
|
||||
}
|
||||
|
|
@ -42,15 +173,183 @@ Class Enforcer : UTWeapon replaces Pistol
|
|||
|
||||
override Inventory CreateTossable( int amt )
|
||||
{
|
||||
// TODO separate drops
|
||||
return Super.CreateTossable(amt);
|
||||
Inventory inv = Super.CreateTossable(amt);
|
||||
if ( inv )
|
||||
{
|
||||
SetTag("Enforcer");
|
||||
inv.SetTag("Enforcer");
|
||||
if ( Owner && (Owner.player.ReadyWeapon == self) )
|
||||
{
|
||||
// delete the slave overlay
|
||||
PSprite psp;
|
||||
for ( psp = Owner.player.psprites; psp; psp = psp.next )
|
||||
{
|
||||
if ( (psp.Caller == self) && (psp.id == 2) ) psp.Destroy();
|
||||
slaveactive = false;
|
||||
slavedown = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return inv;
|
||||
}
|
||||
|
||||
action void A_EnforcerRefire( statelabel flash = null, bool slave = false )
|
||||
{
|
||||
Weapon weap = Weapon(invoker);
|
||||
if ( !weap || !player ) return;
|
||||
if ( slave )
|
||||
{
|
||||
if ( invoker.slaveclipcount < 5 ) A_PlaySound("enforcer/click",CHAN_7);
|
||||
if ( (invoker.slaveclipcount <= 0) || (weap.Ammo1.Amount <= 0) )
|
||||
{
|
||||
invoker.slaverefire = 0;
|
||||
return;
|
||||
}
|
||||
bool pending = (player.PendingWeapon != WP_NOCHANGE) && (player.WeaponState & WF_REFIRESWITCHOK);
|
||||
if ( (player.cmd.buttons&BT_ATTACK) && !invoker.slavealtfire && !pending && (player.health > 0) )
|
||||
{
|
||||
invoker.slaverefire++;
|
||||
if ( player.ReadyWeapon.CheckAmmo(Weapon.PrimaryFire,true) )
|
||||
player.setpsprite(2,flash?ResolveState(flash):ResolveState("LeftHold"));
|
||||
}
|
||||
else if ( (player.cmd.buttons&BT_ALTATTACK) && invoker.slavealtfire && !pending && (player.health > 0) )
|
||||
{
|
||||
invoker.slaverefire++;
|
||||
if ( player.ReadyWeapon.CheckAmmo(Weapon.AltFire,true) )
|
||||
player.setpsprite(2,flash?ResolveState(flash):ResolveState("LeftAltHold"));
|
||||
}
|
||||
else
|
||||
{
|
||||
invoker.slaverefire = 0;
|
||||
player.ReadyWeapon.CheckAmmo(invoker.slavealtfire?Weapon.AltFire:Weapon.PrimaryFire,true);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( invoker.clipcount < 5 ) A_PlaySound("enforcer/click",CHAN_WEAPON);
|
||||
if ( (invoker.clipcount <= 0) || (weap.Ammo1.Amount <= 0) )
|
||||
{
|
||||
A_ClearRefire();
|
||||
return;
|
||||
}
|
||||
A_Refire(flash);
|
||||
}
|
||||
}
|
||||
|
||||
action void A_LeftWeaponReady()
|
||||
{
|
||||
Weapon weap = Weapon(invoker);
|
||||
if ( !weap || !player ) return;
|
||||
if ( player.cmd.buttons&BT_ATTACK && !player.ReadyWeapon.bAltFire )
|
||||
{
|
||||
invoker.slaverefire = 0;
|
||||
invoker.slavealtfire = false;
|
||||
player.setpsprite(2,ResolveState("LeftFire"));
|
||||
}
|
||||
else if ( player.cmd.buttons&BT_ALTATTACK && player.ReadyWeapon.bAltFire )
|
||||
{
|
||||
invoker.slaverefire = 0;
|
||||
invoker.slavealtfire = true;
|
||||
player.setpsprite(2,ResolveState("LeftAltFire"));
|
||||
}
|
||||
}
|
||||
|
||||
action void A_EnforcerFire( bool alt = false, bool slave = false )
|
||||
{
|
||||
Weapon weap = Weapon(invoker);
|
||||
if ( !weap ) return;
|
||||
if ( weap.Ammo1.Amount <= 0 ) return;
|
||||
if ( !weap.DepleteAmmo(weap.bAltFire,true,1) ) return;
|
||||
if ( slave )
|
||||
{
|
||||
invoker.slaveclipcount--;
|
||||
if ( !CVar.GetCVar('flak_enforcerreload').GetBool() && (invoker.slaveclipcount <=0) ) invoker.slaveclipcount = Min(20,weap.Ammo1.Amount);
|
||||
}
|
||||
else
|
||||
{
|
||||
invoker.clipcount--;
|
||||
if ( !CVar.GetCVar('flak_enforcerreload').GetBool() && (invoker.clipcount <=0) ) invoker.clipcount = Min(20,weap.Ammo1.Amount);
|
||||
}
|
||||
invoker.FireEffect();
|
||||
UTMainHandler.DoFlash(self,Color(32,255,128,0),1);
|
||||
A_PlaySound("enforcer/shoot",slave?CHAN_7:CHAN_WEAPON);
|
||||
A_AlertMonsters();
|
||||
A_QuakeEx(2,2,2,4,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.08);
|
||||
if ( slave )
|
||||
{
|
||||
if ( alt ) A_Overlay(-3,"LeftAltMuzzleFlash");
|
||||
else A_Overlay(-3,"LeftMuzzleFlash");
|
||||
A_OverlayFlags(-3,PSPF_RENDERSTYLE|PSPF_FORCESTYLE,true);
|
||||
A_OverlayRenderstyle(-3,STYLE_Add);
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( alt ) A_Overlay(-2,"AltMuzzleFlash");
|
||||
else A_Overlay(-2,"MuzzleFlash");
|
||||
A_OverlayFlags(-2,PSPF_RENDERSTYLE|PSPF_FORCESTYLE,true);
|
||||
A_OverlayRenderstyle(-2,STYLE_Add);
|
||||
}
|
||||
Vector3 x, y, z;
|
||||
double a;
|
||||
[x, y, z] = Matrix4.GetAxes(pitch,angle,roll);
|
||||
Vector3 origin = pos+(0,0,player.viewheight)+10.0*x;
|
||||
int ydir = slave?-1:1;
|
||||
if ( alt ) origin = origin-z*9.0+ydir*y*1.0;
|
||||
else origin = origin-z*2.0+ydir*y*6.0;
|
||||
double ang = angle;
|
||||
double pt = BulletSlope();
|
||||
if ( alt )
|
||||
{
|
||||
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;
|
||||
LineTrace(ang,10000,pt,TRF_ABSPOSITION,origin.z,origin.x,origin.y,d);
|
||||
if ( d.HitType == TRACE_HitActor )
|
||||
{
|
||||
int dmg = Random[Enforcer](15,20);
|
||||
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);
|
||||
}
|
||||
origin += x*8.0+ydir*y*6.0-z*2.0;
|
||||
let c = Spawn("UTCasing",origin);
|
||||
c.vel = x*FRandom[Junk](-2,2)+y*ydir*FRandom[Junk](3,6)+z*FRandom[Junk](3,5);
|
||||
}
|
||||
|
||||
override String GetObituary( Actor victim, Actor inflictor, Name mod, bool playerattack )
|
||||
{
|
||||
if ( Amount > 1 ) return "%k riddled %o full of holes with the Dual Enforcers.";
|
||||
return "%k riddled %o full of holes with the Enforcer.";
|
||||
}
|
||||
|
||||
Default
|
||||
{
|
||||
Tag "Enforcer";
|
||||
Inventory.PickupMessage "You picked up an Enforcer.";
|
||||
Weapon.UpSound "";
|
||||
Inventory.PickupMessage "You picked up another Enforcer!";
|
||||
Inventory.MaxAmount 2;
|
||||
Weapon.UpSound "enforcer/select";
|
||||
Weapon.SlotNumber 2;
|
||||
Weapon.SelectionOrder 8;
|
||||
Weapon.AmmoType "MiniAmmo";
|
||||
|
|
@ -58,6 +357,8 @@ Class Enforcer : UTWeapon replaces Pistol
|
|||
Weapon.AmmoType2 "MiniAmmo";
|
||||
Weapon.AmmoUse2 1;
|
||||
Weapon.AmmoGive 30;
|
||||
Enforcer.ClipCount 20;
|
||||
Enforcer.SlaveClipCount 20;
|
||||
}
|
||||
States
|
||||
{
|
||||
|
|
@ -66,5 +367,168 @@ Class Enforcer : UTWeapon replaces Pistol
|
|||
Stop;
|
||||
ENFP B -1;
|
||||
Stop;
|
||||
Select:
|
||||
ENFS A 1 A_Raise(int.max);
|
||||
Ready:
|
||||
ENFS A 0
|
||||
{
|
||||
invoker.slavedown = false;
|
||||
if ( !invoker.slaveactive && (CountInv("Enforcer") > 1) )
|
||||
A_Overlay(2,"LeftReady");
|
||||
}
|
||||
ENFS ABCDEFGHIJKLMNOPQRSTUVWXYZ 1;
|
||||
Idle:
|
||||
ENFI A 0 A_Overlay(-9999,"Dummy");
|
||||
ENFI AB 30;
|
||||
ENFI A 0 A_Jump(50,"Twiddle");
|
||||
Goto Idle+1;
|
||||
LeftReady:
|
||||
2NFS A 0
|
||||
{
|
||||
A_PlaySound("enforcer/select",CHAN_7);
|
||||
invoker.slaveactive = true;
|
||||
}
|
||||
2NFS ABCDEFGHIJKLMNOPQRSTUVWXYZ 1;
|
||||
LeftIdle:
|
||||
2NFI A 0 A_Overlay(-9998,"LeftDummy");
|
||||
2NFI AB 30;
|
||||
2NFI A 0 A_Jump(50,"LeftTwiddle");
|
||||
Goto LeftIdle+1;
|
||||
Twiddle:
|
||||
ENFT ABCDEFGHIJKLMNOPQRSTUVWXY 2;
|
||||
Goto Idle+1;
|
||||
LeftTwiddle:
|
||||
2NFT ABCDEFGHIJKLMNOPQRSTUVWXY 2;
|
||||
Goto LeftIdle+1;
|
||||
Dummy:
|
||||
TNT1 A 1
|
||||
{
|
||||
if ( (invoker.clipcount <= 0) && (invoker.Ammo1.Amount > 0) ) A_Overlay(PSP_WEAPON,"Reload");
|
||||
if ( CVar.GetCVar('flak_enforcerreload').GetBool() && ((invoker.clipcount < min(20,invoker.Ammo1.Amount)) || (invoker.slaveclipcount < min(20,invoker.Ammo1.Amount))) ) A_WeaponReady(WRF_ALLOWRELOAD);
|
||||
else A_WeaponReady();
|
||||
if ( !invoker.slaveactive && (CountInv("Enforcer") > 1) ) A_Overlay(2,"LeftReady");
|
||||
}
|
||||
Wait;
|
||||
LeftDummy:
|
||||
TNT1 A 1
|
||||
{
|
||||
if ( health <= 0 )
|
||||
{
|
||||
invoker.slaveactive = false;
|
||||
A_Overlay(2,"LeftDeselect");
|
||||
}
|
||||
if ( CVar.GetCVar('flak_enforcerreload').GetBool() && (invoker.slavereload || (invoker.slaveclipcount < 0)) ) A_Overlay(2,"LeftReload");
|
||||
if ( invoker.slavedown ) A_Overlay(2,"LeftDeselect");
|
||||
A_LeftWeaponReady();
|
||||
}
|
||||
Wait;
|
||||
Fire:
|
||||
ENFF A 0 A_Overlay(-9999,"Null");
|
||||
Hold:
|
||||
ENFF A 0 A_EnforcerFire();
|
||||
ENFF ABCDEFGHI 1;
|
||||
ENFF J 3 A_EnforcerRefire();
|
||||
Goto Idle;
|
||||
LeftFire:
|
||||
2NFI A 0 A_Overlay(-9998,"Null");
|
||||
2NFI A 1 A_SetTics(Random[Enforcer](0,5));
|
||||
LeftHold:
|
||||
2NFF A 0 A_EnforcerFire(false,true);
|
||||
2NFF ABCDEFGHI 1;
|
||||
2NFF J 3 A_EnforcerRefire("LeftHold",true);
|
||||
Goto LeftIdle;
|
||||
AltFire:
|
||||
ENFA A 0 A_Overlay(-9999,"Null");
|
||||
ENFA ABCDEF 1;
|
||||
AltHold:
|
||||
ENFA G 0 A_EnforcerFire(true);
|
||||
ENFA GHIJKLMN 1;
|
||||
ENFA G 0 A_EnforcerRefire();
|
||||
ENFA OPQRSTU 1;
|
||||
Goto Idle;
|
||||
LeftAltFire:
|
||||
2NFI A 0 A_Overlay(-9998,"Null");
|
||||
2NFI A 1 A_SetTics(Random[Enforcer](0,5));
|
||||
2NFI A 0;
|
||||
2NFA ABCDEF 1;
|
||||
LeftAltHold:
|
||||
2NFA G 0 A_EnforcerFire(true,true);
|
||||
2NFA GHIJKLMN 1;
|
||||
2NFA G 0 A_EnforcerRefire("LeftAltHold",true);
|
||||
2NFA OPQRSTU 1;
|
||||
Goto LeftIdle;
|
||||
Reload:
|
||||
ENFR A 0
|
||||
{
|
||||
invoker.slavereload = ((player.cmd.buttons&BT_RELOAD)&&(invoker.slaveclipcount < min(20,invoker.Ammo1.Amount)))||(invoker.slaveclipcount <= 0);
|
||||
return A_JumpIf(invoker.clipcount>=min(20,invoker.Ammo1.Amount),"Idle");
|
||||
}
|
||||
ENFR A 0
|
||||
{
|
||||
invoker.clipcount = Min(20,invoker.Ammo1.Amount);
|
||||
A_Overlay(-9999,"Null");
|
||||
A_PlaySound("enforcer/click",CHAN_WEAPON);
|
||||
}
|
||||
ENFR ABCDEFGHIJKLMNOPQRSTUVWXYZ 1;
|
||||
ENR2 AB 1;
|
||||
ENR2 B 30 A_PlaySound("enforcer/reload",CHAN_WEAPON);
|
||||
ENFS A 0 A_PlaySound("enforcer/select",CHAN_WEAPON);
|
||||
Goto Ready;
|
||||
LeftReload:
|
||||
2NFR A 0
|
||||
{
|
||||
invoker.slaveclipcount = Min(20,invoker.Ammo1.Amount);
|
||||
invoker.slavereload = false;
|
||||
A_Overlay(-9998,"Null");
|
||||
A_PlaySound("enforcer/click",CHAN_7);
|
||||
}
|
||||
2NFR ABCDEFGHIJKLMNOPQRSTUVWXYZ 1;
|
||||
2NR2 AB 1;
|
||||
2NR2 B 30 A_PlaySound("enforcer/reload",CHAN_7);
|
||||
2NFS A 0 A_PlaySound("enforcer/select",CHAN_7);
|
||||
Goto LeftReady;
|
||||
Deselect:
|
||||
ENFI A 1 { invoker.slavedown = true; }
|
||||
ENFD A 0 A_Overlay(-9999,"Null");
|
||||
ENFD A 0 A_JumpIf(invoker.slaveactive,"Deselect");
|
||||
ENFD ABCDEFGHIJKL 1;
|
||||
ENFD L 1 A_Lower(int.max);
|
||||
Wait;
|
||||
LeftDeselect:
|
||||
2NFD A 0
|
||||
{
|
||||
A_Overlay(-9998,"Null");
|
||||
invoker.slaveactive = false;
|
||||
}
|
||||
2NFD ABCDEFGHIJKL 1;
|
||||
Stop;
|
||||
MuzzleFlash:
|
||||
EMUZ A 2 Bright
|
||||
{
|
||||
let l = Spawn("EnforcerLight",pos);
|
||||
l.target = self;
|
||||
}
|
||||
Stop;
|
||||
AltMuzzleFlash:
|
||||
EMUZ B 2 Bright
|
||||
{
|
||||
let l = Spawn("EnforcerLight",pos);
|
||||
l.target = self;
|
||||
}
|
||||
Stop;
|
||||
LeftMuzzleFlash:
|
||||
EMUZ C 2 Bright
|
||||
{
|
||||
let l = Spawn("EnforcerLight",pos);
|
||||
l.target = self;
|
||||
}
|
||||
Stop;
|
||||
LeftAltMuzzleFlash:
|
||||
EMUZ D 2 Bright
|
||||
{
|
||||
let l = Spawn("EnforcerLight",pos);
|
||||
l.target = self;
|
||||
}
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -461,14 +461,7 @@ Class FlakLight : DynamicLight
|
|||
Default
|
||||
{
|
||||
DynamicLight.Type "Point";
|
||||
}
|
||||
override void PostBeginPlay()
|
||||
{
|
||||
Super.PostBeginPlay();
|
||||
args[LIGHT_INTENSITY] = 150;
|
||||
args[LIGHT_RED] = 255;
|
||||
args[LIGHT_GREEN] = 224;
|
||||
args[LIGHT_BLUE] = 128;
|
||||
args 255,224,128,150;
|
||||
}
|
||||
override void Tick()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -75,7 +75,8 @@ Class ImpactHammer : UTWeapon replaces Fist
|
|||
LineTrace(angle,80,BulletSlope(),TRF_ABSPOSITION,origin.z,origin.x,origin.y,d);
|
||||
if ( d.HitType == TRACE_HitActor )
|
||||
{
|
||||
d.HitActor.DamageMobj(invoker,self,60*realcharge,'impact');
|
||||
int dmg = Random[Impact](50,60)*realcharge;
|
||||
dmg = d.HitActor.DamageMobj(invoker,self,dmg,'impact');
|
||||
d.HitActor.vel = x*(1000/d.HitActor.mass)*realcharge;
|
||||
if ( d.HitActor.bNOBLOOD )
|
||||
{
|
||||
|
|
@ -85,15 +86,16 @@ Class ImpactHammer : UTWeapon replaces Fist
|
|||
}
|
||||
else
|
||||
{
|
||||
d.HitActor.TraceBleed(60*realcharge,invoker);
|
||||
d.HitActor.SpawnBlood(d.HitLocation,atan2(-d.HitDir.y,-d.HitDir.x),60*realcharge);
|
||||
d.HitActor.TraceBleed(dmg,invoker);
|
||||
d.HitActor.SpawnBlood(d.HitLocation,atan2(d.HitDir.y,d.HitDir.x)+180,dmg);
|
||||
}
|
||||
}
|
||||
else if ( d.HitType != TRACE_HitNone )
|
||||
{
|
||||
realcharge = max(1.0,realcharge);
|
||||
DamageMobj(invoker,self,24*realcharge,'impact'); // It's a flat damage of 36 on UT, but I think it's more fair for it to scale
|
||||
TraceBleed(24*realcharge,invoker);
|
||||
int dmg = Random[Impact](16,24)*realcharge; // It's a flat damage of 36 on UT, but I think it's more fair for it to scale
|
||||
dmg = DamageMobj(invoker,self,dmg,'impact');
|
||||
TraceBleed(dmg,invoker);
|
||||
vel -= x*(1200/mass)*realcharge;
|
||||
let p = Spawn("HammerImpact",d.HitLocation-d.HitDir*4);
|
||||
p.angle = atan2(d.HitDir.y,d.HitDir.x);
|
||||
|
|
@ -135,12 +137,14 @@ Class ImpactHammer : UTWeapon replaces Fist
|
|||
double dscale = d.Distance/180.;
|
||||
if ( d.HitType == TRACE_HitActor )
|
||||
{
|
||||
d.HitActor.DamageMobj(invoker,self,20*dscale,'impact');
|
||||
int dmg = Random[Impact](16,20)*dscale;
|
||||
dmg = d.HitActor.DamageMobj(invoker,self,dmg,'impact');
|
||||
d.HitActor.vel = x*(500/d.HitActor.mass)*dscale;
|
||||
}
|
||||
else if ( d.HitType != TRACE_HitNone )
|
||||
{
|
||||
DamageMobj(invoker,self,24*dscale,'impact');
|
||||
int dmg = Random[Impact](16,24)*dscale;
|
||||
dmg = DamageMobj(invoker,self,dmg,'impact');
|
||||
vel -= x*(600/mass)*dscale;
|
||||
if ( d.HitType == TRACE_HitWall ) d.HitLine.RemoteActivate(self,d.LineSide,SPAC_Impact,d.HitLocation-d.HitDir*4);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -330,6 +330,12 @@ Class PulseGun : UTWeapon
|
|||
|
||||
Property ClipCount : clipcount;
|
||||
|
||||
override void PostRender()
|
||||
{
|
||||
if ( !CVar.GetCVar('flak_pulsereload').GetBool() ) return;
|
||||
Screen.DrawText(confont,Font.CR_GREEN,Screen.GetWidth()*0.01,Screen.GetHeight()*0.88,String.Format("Clip: % 2d / 50",clipcount));
|
||||
}
|
||||
|
||||
action void A_Reloading()
|
||||
{
|
||||
Weapon weap = Weapon(invoker);
|
||||
|
|
|
|||
|
|
@ -2,9 +2,10 @@ Class UTPlayer : DoomPlayer
|
|||
{
|
||||
Default
|
||||
{
|
||||
Player.StartItem "ImpactHammer";
|
||||
Player.StartItem "Translocator";
|
||||
Player.StartItem "MiniAmmo", 30;
|
||||
Player.StartItem "Enforcer";
|
||||
Player.StartItem "Translocator";
|
||||
Player.StartItem "ImpactHammer";
|
||||
}
|
||||
|
||||
// Have to modify the give cheat to handle UT armor
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue