Flak Cannon time.

This commit is contained in:
Marisa the Magician 2018-06-21 16:26:30 +02:00
commit f532f74d85
24 changed files with 416 additions and 7 deletions

View file

@ -9,11 +9,12 @@ This mod requires GZDoom 3.4.0 or later.
- Stinger (slot 3) (replaces shotgun)
- Backpack (replaces backpack, identical to Doom Tournament version)
- Unreal 1 HUD
- Translator (has to be spawned in, since it would only be useful for mappers)
## In progress
- Unreal 1 HUD
- Translator (has to be spawned in, since it would only be useful for mappers)
- Flak Cannon (slot 6) (replaces rocket launcher)
## Planned
@ -22,7 +23,6 @@ This mod requires GZDoom 3.4.0 or later.
- Automag (slot 2) (replaces pistol)
- ASMD (slot 4) (replaces shotgun)
- Eightball (slot 5) (replaces rocket launcher)
- Flak Cannon (slot 6) (replaces rocket launcher)
- Razorjack (slot 7) (replaces chaingun)
- GES Bio Rifle (slot 8) (replaces plasma rifle)
- Rifle (slot 9) (replaces plasma rifle)

BIN
brightmaps/JPickup1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View file

@ -46,3 +46,15 @@ HardwareShader Texture "models/JTaryPick1.png"
{
Shader "shaders/glsl/AmbientGlow.fp"
}
/*Brightmap Texture "models/JPickup1.png"
{
Map "brightmaps/JPickup1.png"
}*/
HardwareShader Texture "models/JPickup1_.png"
{
Shader "shaders/glsl/AmbientGlow_Brightmapped.fp"
}
HardwareShader Texture "models/Jflakshel1_.png"
{
Shader "shaders/glsl/AmbientGlow.fp"
}

BIN
graphics/BlueSky.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

167
modeldef.flak Normal file
View file

@ -0,0 +1,167 @@
Model "UFlakBox"
{
Path "models"
Model 0 "flakboxMesh_d.3d"
Skin 0 "JPickup1_.png"
Scale 0.09 0.09 0.108
ZOffset 6
RollOffset 180
FrameIndex FBOX A 0 0
}
Model "UFlakAmmo"
{
Path "models"
Model 0 "FlakSh_d.3d"
Skin 0 "Jflakshel1_.png"
Scale 0.2 0.24 0.2
ZOffset 2.25
RollOffset -90
FrameIndex FSHL B 0 0
}
Model "UFlakCannon"
{
Path "models"
Model 1 "FlakPick_d.3d"
Skin 1 "Jflak1.png"
ZOffset 4
AngleOffset -90
Scale 0.12 0.12 0.134
FrameIndex FLKP B 1 0
ZOffset 12
ROTATING
FrameIndex FLKP A 1 0
}
Model "UFlakCannon"
{
Path "models"
Model 0 "flak_d.3d"
SurfaceSkin 0 0 "Jflak1.png"
Scale 0.1 -0.08 0.1
AngleOffset -90
Offset 5 -9 -5
// Select
FrameIndex FLKS A 0 0
FrameIndex FLKS B 0 1
FrameIndex FLKS C 0 2
FrameIndex FLKS D 0 3
FrameIndex FLKS E 0 4
FrameIndex FLKS F 0 5
FrameIndex FLKS G 0 6
FrameIndex FLKS H 0 7
FrameIndex FLKS I 0 8
FrameIndex FLKS J 0 9
FrameIndex FLKS K 0 10
FrameIndex FLKS L 0 11
FrameIndex FLKS M 0 12
FrameIndex FLKS N 0 13
FrameIndex FLKS O 0 14
FrameIndex FLKS P 0 15
FrameIndex FLKS Q 0 16
FrameIndex FLKS R 0 17
FrameIndex FLKS S 0 18
FrameIndex FLKS T 0 19
FrameIndex FLKS U 0 20
FrameIndex FLKS V 0 21
FrameIndex FLKS W 0 22
FrameIndex FLKS X 0 23
FrameIndex FLKS Y 0 24
FrameIndex FLKS Z 0 25
FrameIndex FLS2 A 0 26
FrameIndex FLS2 B 0 27
FrameIndex FLS2 C 0 28
FrameIndex FLS2 D 0 29
// Loading
FrameIndex FLKL A 0 30
FrameIndex FLKL B 0 31
FrameIndex FLKL C 0 32
FrameIndex FLKL D 0 33
FrameIndex FLKL E 0 34
FrameIndex FLKL F 0 35
FrameIndex FLKL G 0 36
FrameIndex FLKL H 0 37
FrameIndex FLKL I 0 38
FrameIndex FLKL J 0 39
FrameIndex FLKL K 0 40
FrameIndex FLKL L 0 41
FrameIndex FLKL M 0 42
FrameIndex FLKL N 0 43
FrameIndex FLKL O 0 44
// Still
FrameIndex FLKI A 0 45
// Fire
FrameIndex FLKF A 0 46
FrameIndex FLKF B 0 47
FrameIndex FLKF C 0 48
FrameIndex FLKF D 0 49
FrameIndex FLKF E 0 50
FrameIndex FLKF F 0 51
FrameIndex FLKF G 0 52
FrameIndex FLKF H 0 53
FrameIndex FLKF I 0 54
FrameIndex FLKF J 0 55
// AltFire
FrameIndex FLKA A 0 56
FrameIndex FLKA B 0 57
FrameIndex FLKA C 0 58
FrameIndex FLKA D 0 59
FrameIndex FLKA E 0 60
FrameIndex FLKA F 0 61
FrameIndex FLKA G 0 62
FrameIndex FLKA H 0 63
FrameIndex FLKA I 0 64
FrameIndex FLKA J 0 65
FrameIndex FLKA K 0 66
// Eject
FrameIndex FLKE A 0 67
FrameIndex FLKE B 0 68
FrameIndex FLKE C 0 69
FrameIndex FLKE D 0 70
FrameIndex FLKE E 0 71
FrameIndex FLKE F 0 72
FrameIndex FLKE G 0 73
FrameIndex FLKE H 0 74
FrameIndex FLKE I 0 75
FrameIndex FLKE J 0 76
FrameIndex FLKE K 0 77
FrameIndex FLKE L 0 78
FrameIndex FLKE M 0 79
FrameIndex FLKE N 0 80
FrameIndex FLKE O 0 81
FrameIndex FLKE P 0 82
FrameIndex FLKE Q 0 83
FrameIndex FLKE R 0 84
FrameIndex FLKE S 0 85
// Down2
FrameIndex FLD2 A 0 86
FrameIndex FLD2 B 0 87
FrameIndex FLD2 C 0 88
FrameIndex FLD2 D 0 89
FrameIndex FLD2 E 0 90
FrameIndex FLD2 F 0 91
FrameIndex FLD2 G 0 92
FrameIndex FLD2 H 0 93
FrameIndex FLD2 I 0 94
FrameIndex FLD2 J 0 95
FrameIndex FLD2 K 0 96
FrameIndex FLD2 L 0 97
FrameIndex FLD2 M 0 98
FrameIndex FLD2 N 0 99
FrameIndex FLD2 O 0 100
// Still2
FrameIndex FLI2 A 0 101
// Down
FrameIndex FLKD A 0 104
FrameIndex FLKD B 0 105
FrameIndex FLKD C 0 106
FrameIndex FLKD D 0 107
FrameIndex FLKD E 0 108
FrameIndex FLKD F 0 109
}

View file

@ -57,7 +57,7 @@ Model "Stinger"
Model 2 "StingerM_d.3d"
SurfaceSkin 2 2 "FireEffect18.png"
SurfaceSkin 2 3 "FireEffect18.png"
Scale 0.1 -0.05 0.1
Scale 0.1 -0.08 0.1
AngleOffset 89
Offset 6.8 -13.2 -10.6
DONTCULLBACKFACES
@ -82,7 +82,7 @@ Model "Stinger"
Model 0 "StingerM_d.3d"
SurfaceSkin 0 0 "Sting1.png"
SurfaceSkin 0 1 "Sting1.png"
Scale 0.1 -0.05 0.1
Scale 0.1 -0.08 0.1
AngleOffset 89
Offset 6.8 -13.2 -10.6

Binary file not shown.

BIN
models/FlakPick_a.3d Normal file

Binary file not shown.

BIN
models/FlakPick_d.3d Normal file

Binary file not shown.

BIN
models/FlakSh_a.3d Normal file

Binary file not shown.

BIN
models/FlakSh_d.3d Normal file

Binary file not shown.

BIN
models/JPickup1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

BIN
models/JPickup1_.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

BIN
models/Jflak1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

BIN
models/Jflakshel1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

BIN
models/Jflakshel1_.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

BIN
models/flak_a.3d Normal file

Binary file not shown.

BIN
models/flak_d.3d Normal file

Binary file not shown.

BIN
models/flakboxMesh_a.3d Normal file

Binary file not shown.

BIN
models/flakboxMesh_d.3d Normal file

Binary file not shown.

113
textures.flak Normal file
View file

@ -0,0 +1,113 @@
Sprite "FBOXA0",1,1{}
Sprite "FSHLA0",1,1{}
Sprite "FSHLB0",1,1{}
Sprite "FLKPA0",1,1{}
Sprite "FLKPB0",1,1{}
Sprite "FLKSA0",1,1{}
Sprite "FLKSB0",1,1{}
Sprite "FLKSC0",1,1{}
Sprite "FLKSD0",1,1{}
Sprite "FLKSE0",1,1{}
Sprite "FLKSF0",1,1{}
Sprite "FLKSG0",1,1{}
Sprite "FLKSH0",1,1{}
Sprite "FLKSI0",1,1{}
Sprite "FLKSJ0",1,1{}
Sprite "FLKSK0",1,1{}
Sprite "FLKSL0",1,1{}
Sprite "FLKSM0",1,1{}
Sprite "FLKSN0",1,1{}
Sprite "FLKSO0",1,1{}
Sprite "FLKSP0",1,1{}
Sprite "FLKSQ0",1,1{}
Sprite "FLKSR0",1,1{}
Sprite "FLKSS0",1,1{}
Sprite "FLKST0",1,1{}
Sprite "FLKSU0",1,1{}
Sprite "FLKSV0",1,1{}
Sprite "FLKSW0",1,1{}
Sprite "FLKSX0",1,1{}
Sprite "FLKSY0",1,1{}
Sprite "FLKSZ0",1,1{}
Sprite "FLS2A0",1,1{}
Sprite "FLS2B0",1,1{}
Sprite "FLS2C0",1,1{}
Sprite "FLS2D0",1,1{}
Sprite "FLKLA0",1,1{}
Sprite "FLKLB0",1,1{}
Sprite "FLKLC0",1,1{}
Sprite "FLKLD0",1,1{}
Sprite "FLKLE0",1,1{}
Sprite "FLKLF0",1,1{}
Sprite "FLKLG0",1,1{}
Sprite "FLKLH0",1,1{}
Sprite "FLKLI0",1,1{}
Sprite "FLKLJ0",1,1{}
Sprite "FLKLK0",1,1{}
Sprite "FLKLL0",1,1{}
Sprite "FLKLM0",1,1{}
Sprite "FLKLN0",1,1{}
Sprite "FLKLO0",1,1{}
Sprite "FLKIA0",1,1{}
Sprite "FLKFA0",1,1{}
Sprite "FLKFB0",1,1{}
Sprite "FLKFC0",1,1{}
Sprite "FLKFD0",1,1{}
Sprite "FLKFE0",1,1{}
Sprite "FLKFF0",1,1{}
Sprite "FLKFG0",1,1{}
Sprite "FLKFH0",1,1{}
Sprite "FLKFI0",1,1{}
Sprite "FLKFJ0",1,1{}
Sprite "FLKAA0",1,1{}
Sprite "FLKAB0",1,1{}
Sprite "FLKAC0",1,1{}
Sprite "FLKAD0",1,1{}
Sprite "FLKAE0",1,1{}
Sprite "FLKAF0",1,1{}
Sprite "FLKAG0",1,1{}
Sprite "FLKAH0",1,1{}
Sprite "FLKAI0",1,1{}
Sprite "FLKAJ0",1,1{}
Sprite "FLKAK0",1,1{}
Sprite "FLKEA0",1,1{}
Sprite "FLKEB0",1,1{}
Sprite "FLKEC0",1,1{}
Sprite "FLKED0",1,1{}
Sprite "FLKEE0",1,1{}
Sprite "FLKEF0",1,1{}
Sprite "FLKEG0",1,1{}
Sprite "FLKEH0",1,1{}
Sprite "FLKEI0",1,1{}
Sprite "FLKEJ0",1,1{}
Sprite "FLKEK0",1,1{}
Sprite "FLKEL0",1,1{}
Sprite "FLKEM0",1,1{}
Sprite "FLKEN0",1,1{}
Sprite "FLKEO0",1,1{}
Sprite "FLKEP0",1,1{}
Sprite "FLKEQ0",1,1{}
Sprite "FLKER0",1,1{}
Sprite "FLKES0",1,1{}
Sprite "FLD2A0",1,1{}
Sprite "FLD2B0",1,1{}
Sprite "FLD2C0",1,1{}
Sprite "FLD2D0",1,1{}
Sprite "FLD2E0",1,1{}
Sprite "FLD2F0",1,1{}
Sprite "FLD2G0",1,1{}
Sprite "FLD2H0",1,1{}
Sprite "FLD2I0",1,1{}
Sprite "FLD2J0",1,1{}
Sprite "FLD2K0",1,1{}
Sprite "FLD2L0",1,1{}
Sprite "FLD2M0",1,1{}
Sprite "FLD2N0",1,1{}
Sprite "FLD2O0",1,1{}
Sprite "FLI2A0",1,1{}
Sprite "FLKDA0",1,1{}
Sprite "FLKDB0",1,1{}
Sprite "FLKDC0",1,1{}
Sprite "FLKDD0",1,1{}
Sprite "FLKDE0",1,1{}
Sprite "FLKDF0",1,1{}

View file

@ -6,4 +6,4 @@ Texture "-kinsie-",128,128
WorldPanning
Patch "-noflat-",0,0{}
}
Sprite "BPAKA0",0,0{}
Sprite "BPAKA0",1,1{}

View file

@ -0,0 +1,117 @@
Class UFlakBox : Ammo
{
Default
{
Tag "Flak Shell Box";
Inventory.Icon "I_Flak";
Inventory.PickupMessage "You picked up 10 Flak Shells.";
Inventory.Amount 10;
Inventory.MaxAmount 50;
Ammo.BackpackAmount 5;
Ammo.BackpackMaxAmount 100;
Ammo.DropAmount 5;
}
States
{
Spawn:
FBOX A -1;
Stop;
}
}
Class UFlakAmmo : UFlakBox
{
Default
{
Tag "Flak Shell";
Inventory.Icon "I_Flak";
Inventory.PickupMessage "You picked up a Flak Shell.";
Inventory.Amount 1;
Ammo.DropAmount 1;
}
States
{
Spawn:
FSHL B -1;
Stop;
}
}
Class UFlakCannon : UnrealWeapon
{
bool bLoaded;
action void A_Loading( bool first = false )
{
invoker.bLoaded = true;
if ( first ) A_PlaySound("uflak/load",CHAN_WEAPON);
else A_PlaySound("uflak/reload",CHAN_6);
}
Default
{
Tag "Flak Cannon";
Inventory.PickupMessage "You got the Flak Cannon.";
Weapon.UpSound "uflak/select";
Weapon.SlotNumber 6;
Weapon.SelectionOrder 4;
Weapon.AmmoType "UFlakBox";
Weapon.AmmoUse 1;
Weapon.AmmoType2 "UFlakBox";
Weapon.AmmoUse2 1;
Weapon.AmmoGive 10;
}
States
{
Spawn:
FLKP A -1;
Stop;
FLKP B -1;
Stop;
Select:
FLKS A 1 A_Raise(int.max);
Wait;
Ready:
FLKS ABCDEFGHIJKLMNOPQRSTUVWXYZ 1 A_WeaponReady(WRF_NOFIRE);
FLS2 ABCD 1 A_WeaponReady(WRF_NOFIRE);
FLKL A 1 A_Loading(true);
FLKL BCEFGIJKMNO 1;
Goto Idle;
Loading:
FLKL A 1 A_Loading();
FLKL BCEFGIJKMNO 1;
Goto Idle;
Idle:
FLKI A 1
{
A_CheckReload();
A_WeaponReady();
}
Wait;
Idle2:
FLI2 A 1
{
A_CheckReload();
A_WeaponReady();
}
Wait;
Fire:
FLKI A 0 A_JumpIf(!invoker.bLoaded,"Loading");
FLKF ABCDEFGHIJ 1;
FLKE ABCDEFGHIJKLMNS 1;
FLKE S 0 A_JumpIfNoAmmo("Idle2");
Goto Loading;
AltFire:
FLKI A 0 A_JumpIf(!invoker.bLoaded,"Loading");
FLKA ABCDEFGHIJK 2;
FLKA K 0 A_JumpIfNoAmmo("Idle2");
Goto Loading;
Deselect:
FLKD A 0 A_JumpIfNoAmmo("Deselect2");
FLKD ABCDEF 1;
FLKD F 1 A_Lower(int.max);
Wait;
Deselect2:
FLD2 ABCDEF 1;
FLD2 F 1 A_Lower(int.max);
Wait;
}
}

View file

@ -115,7 +115,7 @@ Class UTranslator : UnrealInventory
String ttxt;
if ( bShowHint && (Hint.length() > 0) ) ttxt = String.Format("Hint: %s",Hint);
else if ( NewMessage.length() > 0 ) ttxt = NewMessage;
else ttxt = "I'd just like to interject for a moment. What you're referring to as Linux, is in fact, GNU/Linux, or as I've recently taken to calling it, GNU plus Linux. Linux is not an operating system unto itself, but rather another free component of a fully functioning GNU system made useful by the GNU corelibs, shell utilities and vital system components comprising a full OS as defined by POSIX.";
else ttxt = "No new messages.";
BrokenLines lines = tfnt.BreakLines(ttxt,220);
int th = tfnt.GetHeight();
CurX += 20;