diff --git a/brightmaps/ASMD_t.png b/brightmaps/ASMD_t.png new file mode 100644 index 0000000..0879e68 Binary files /dev/null and b/brightmaps/ASMD_t.png differ diff --git a/brightmaps/ASMD_t1.png b/brightmaps/ASMD_t1.png new file mode 100644 index 0000000..d827d20 Binary files /dev/null and b/brightmaps/ASMD_t1.png differ diff --git a/brightmaps/ASMD_t3.png b/brightmaps/ASMD_t3.png new file mode 100644 index 0000000..45289bf Binary files /dev/null and b/brightmaps/ASMD_t3.png differ diff --git a/brightmaps/ASMD_t4.png b/brightmaps/ASMD_t4.png new file mode 100644 index 0000000..f28003e Binary files /dev/null and b/brightmaps/ASMD_t4.png differ diff --git a/brightmaps/JBRifle2.png b/brightmaps/JBRifle2.png new file mode 100644 index 0000000..0bdbbea Binary files /dev/null and b/brightmaps/JBRifle2.png differ diff --git a/brightmaps/JBRifle21.png b/brightmaps/JBRifle21.png new file mode 100644 index 0000000..d4fe079 Binary files /dev/null and b/brightmaps/JBRifle21.png differ diff --git a/brightmaps/JBRifle22.png b/brightmaps/JBRifle22.png new file mode 100644 index 0000000..a5fbc2d Binary files /dev/null and b/brightmaps/JBRifle22.png differ diff --git a/brightmaps/JBRifle23.png b/brightmaps/JBRifle23.png new file mode 100644 index 0000000..5079ee5 Binary files /dev/null and b/brightmaps/JBRifle23.png differ diff --git a/brightmaps/JBRifle24.png b/brightmaps/JBRifle24.png new file mode 100644 index 0000000..9f85040 Binary files /dev/null and b/brightmaps/JBRifle24.png differ diff --git a/brightmaps/JBammo1.png b/brightmaps/JBammo1.png new file mode 100644 index 0000000..70db6c1 Binary files /dev/null and b/brightmaps/JBammo1.png differ diff --git a/brightmaps/JShockCore.png b/brightmaps/JShockCore.png new file mode 100644 index 0000000..96ca823 Binary files /dev/null and b/brightmaps/JShockCore.png differ diff --git a/brightmaps/Jwarhead2.png b/brightmaps/Jwarhead2.png new file mode 100644 index 0000000..e7a2470 Binary files /dev/null and b/brightmaps/Jwarhead2.png differ diff --git a/brightmaps/Jwarhead4.png b/brightmaps/Jwarhead4.png new file mode 100644 index 0000000..35a8459 Binary files /dev/null and b/brightmaps/Jwarhead4.png differ diff --git a/brightmaps/Jwhpick1.png b/brightmaps/Jwhpick1.png new file mode 100644 index 0000000..6ca5e22 Binary files /dev/null and b/brightmaps/Jwhpick1.png differ diff --git a/gldefs.txt b/gldefs.txt new file mode 100644 index 0000000..6014166 --- /dev/null +++ b/gldefs.txt @@ -0,0 +1,60 @@ +HardwareShader Texture "models/Jgreen.png" +{ + Shader "shaders/glsl/MeshEnviroMap.fp" +} +Brightmap Texture "models/JBRifle2.png" +{ + Map "brightmaps/JBRifle2.png" +} +Brightmap Texture "models/JBRifle21.png" +{ + Map "brightmaps/JBRifle21.png" +} +Brightmap Texture "models/JBRifle22.png" +{ + Map "brightmaps/JBRifle22.png" +} +Brightmap Texture "models/JBRifle23.png" +{ + Map "brightmaps/JBRifle23.png" +} +Brightmap Texture "models/JBRifle24.png" +{ + Map "brightmaps/JBRifle24.png" +} +Brightmap Texture "models/JBammo1.png" +{ + Map "brightmaps/JBammo1.png" +} +Brightmap Texture "models/ASMD_t.png" +{ + Map "brightmaps/ASMD_t.png" +} +Brightmap Texture "models/ASMD_t1.png" +{ + Map "brightmaps/ASMD_t1.png" +} +Brightmap Texture "models/ASMD_t3.png" +{ + Map "brightmaps/ASMD_t3.png" +} +Brightmap Texture "models/ASMD_t4.png" +{ + Map "brightmaps/ASMD_t4.png" +} +Brightmap Texture "models/JShockCore.png" +{ + Map "brightmaps/JShockCore.png" +} +Brightmap Texture "models/Jwarhead2.png" +{ + Map "brightmaps/Jwarhead2.png" +} +Brightmap Texture "models/Jwarhead4.png" +{ + Map "brightmaps/Jwarhead4.png" +} +Brightmap Texture "models/Jwhpick1.png" +{ + Map "brightmaps/Jwhpick1.png" +} diff --git a/graphics/I_ASMD.png b/graphics/I_ASMD.png deleted file mode 100644 index d65d03f..0000000 Binary files a/graphics/I_ASMD.png and /dev/null differ diff --git a/graphics/I_FLAK.png b/graphics/I_FLAK.png deleted file mode 100644 index bcd748d..0000000 Binary files a/graphics/I_FLAK.png and /dev/null differ diff --git a/modeldef.txt b/modeldef.txt index 437af03..b0542bb 100644 --- a/modeldef.txt +++ b/modeldef.txt @@ -1,7 +1,229 @@ +//============================================================================= +// GES BIORIFLE +//============================================================================= + +Model "BioAmmo" +{ + Path "models" + Model 0 "BioAmmoM_d.3d" + Skin 0 "Jbammo1.png" + Scale -0.08 0.08 0.08 + ZOffset 4 + + FrameIndex BIOA A 0 0 +} + +Model "BioGel" +{ + Path "models" + Model 0 "BioGelm_d.3d" + Skin 0 "Jgreen.png" + Scale 0.08 0.08 0.08 + RollOffset 90 + DONTCULLBACKFACES + USEACTORPITCH + USEACTORROLL + + // Flying + FrameIndex GELF A 0 0 + FrameIndex GELF B 0 1 + FrameIndex GELF C 0 2 + FrameIndex GELF D 0 3 + FrameIndex GELF E 0 4 + FrameIndex GELF F 0 5 + FrameIndex GELF G 0 6 + FrameIndex GELF H 0 7 + FrameIndex GELF I 0 8 + FrameIndex GELF J 0 9 + FrameIndex GELF K 0 10 + FrameIndex GELF L 0 11 + FrameIndex GELF M 0 12 + // Hit + FrameIndex GELH A 0 14 + FrameIndex GELH B 0 15 + FrameIndex GELH C 0 16 + FrameIndex GELH D 0 17 + FrameIndex GELH E 0 18 + FrameIndex GELH F 0 19 + FrameIndex GELH G 0 20 + FrameIndex GELH H 0 21 + FrameIndex GELH I 0 22 + FrameIndex GELH J 0 23 + // Drip + FrameIndex GELD A 0 24 + FrameIndex GELD B 0 25 + FrameIndex GELD C 0 26 + FrameIndex GELD D 0 27 + FrameIndex GELD E 0 28 + FrameIndex GELD F 0 29 + FrameIndex GELD G 0 30 + FrameIndex GELD H 0 31 + FrameIndex GELD I 0 32 + FrameIndex GELD J 0 33 + FrameIndex GELD K 0 34 + FrameIndex GELD L 0 35 + FrameIndex GELD M 0 36 + // Slide + FrameIndex GELS A 0 37 + FrameIndex GELS B 0 38 + FrameIndex GELS C 0 39 + FrameIndex GELS D 0 40 + FrameIndex GELS E 0 41 + FrameIndex GELS F 0 42 + FrameIndex GELS G 0 43 + // Shrivel + FrameIndex GELX A 0 44 + FrameIndex GELX B 0 45 + FrameIndex GELX C 0 46 + FrameIndex GELX D 0 47 + FrameIndex GELX E 0 48 + FrameIndex GELX F 0 49 + FrameIndex GELX G 0 50 + FrameIndex GELX H 0 51 + FrameIndex GELX I 0 52 + FrameIndex GELX J 0 53 + FrameIndex GELX K 0 54 + FrameIndex GELX L 0 55 +} + +Model "BioRifle" +{ + Path "models" + Model 1 "BRifle2Pick_d.3d" + Skin 1 "JBRifle2.png" + Scale -0.1 0.1 0.1 + PitchOffset 90 + ZOffset 12 + ROTATING + + FrameIndex BIOP A 1 0 +} + +Model "BioRifle" +{ + Path "models" + Model 1 "BRifle2Pick_d.3d" + Skin 1 "JBRifle2.png" + Scale -0.1 0.1 0.1 + PitchOffset 90 + ZOffset 12 + + FrameIndex BIOP B 1 0 +} + +Model "BioRifle" +{ + Path "models" + Model 0 "BRifle2_d.3d" + SurfaceSkin 0 0 "JBRifle21.png" + SurfaceSkin 0 1 "JBRifle22.png" + SurfaceSkin 0 2 "JBRifle23.png" + SurfaceSkin 0 3 "JBRifle24.png" + RollOffset -8.4375 + PitchOffset 94.21875 + Scale 0.125 0.06 0.125 + Offset 9.8 -17.6 -10.4 + + // select + FrameIndex BIOS A 0 0 + FrameIndex BIOS B 0 1 + FrameIndex BIOS C 0 2 + FrameIndex BIOS D 0 3 + FrameIndex BIOS E 0 4 + FrameIndex BIOS F 0 5 + FrameIndex BIOS G 0 6 + FrameIndex BIOS H 0 7 + FrameIndex BIOS I 0 8 + FrameIndex BIOS J 0 9 + FrameIndex BIOS K 0 10 + FrameIndex BIOS L 0 11 + FrameIndex BIOS M 0 12 + FrameIndex BIOS N 0 13 + FrameIndex BIOS O 0 14 + FrameIndex BIOS P 0 15 + FrameIndex BIOS Q 0 16 + FrameIndex BIOS R 0 17 + FrameIndex BIOS S 0 18 + FrameIndex BIOS T 0 19 + FrameIndex BIOS U 0 20 + FrameIndex BIOS V 0 21 + // idle + FrameIndex BIOI A 0 22 + // charging + FrameIndex BIOC A 0 41 + FrameIndex BIOC B 0 42 + FrameIndex BIOC C 0 43 + FrameIndex BIOC D 0 44 + FrameIndex BIOC E 0 45 + FrameIndex BIOC F 0 46 + FrameIndex BIOC G 0 47 + FrameIndex BIOC H 0 48 + FrameIndex BIOC I 0 49 + FrameIndex BIOC J 0 50 + FrameIndex BIOC K 0 51 + FrameIndex BIOC L 0 52 + FrameIndex BIOC M 0 53 + FrameIndex BIOC N 0 54 + FrameIndex BIOC O 0 55 + FrameIndex BIOC P 0 56 + FrameIndex BIOC Q 0 57 + FrameIndex BIOC R 0 58 + FrameIndex BIOC S 0 59 + FrameIndex BIOC T 0 60 + FrameIndex BIOC U 0 61 + FrameIndex BIOC V 0 62 + FrameIndex BIOC W 0 63 + FrameIndex BIOC X 0 64 + FrameIndex BIOC Y 0 65 + FrameIndex BIOC Z 0 66 + FrameIndex BIC2 A 0 67 + FrameIndex BIC2 B 0 68 + FrameIndex BIC2 C 0 69 + FrameIndex BIC2 D 0 70 + FrameIndex BIC2 E 0 71 + // full + FrameIndex BIOM A 0 70 + // empty + FrameIndex BIOE A 0 71 + // fire + FrameIndex BIOF A 0 72 + FrameIndex BIOF B 0 73 + FrameIndex BIOF C 0 74 + FrameIndex BIOF D 0 75 + FrameIndex BIOF E 0 76 + FrameIndex BIOF F 0 77 + FrameIndex BIOF G 0 78 + FrameIndex BIOF H 0 79 + FrameIndex BIOF I 0 80 + // deselect + FrameIndex BIOD A 0 80 + FrameIndex BIOD B 0 81 + FrameIndex BIOD C 0 82 + FrameIndex BIOD D 0 83 + FrameIndex BIOD E 0 84 + FrameIndex BIOD F 0 85 + FrameIndex BIOD G 0 86 + FrameIndex BIOD H 0 87 + FrameIndex BIOD I 0 88 + FrameIndex BIOD J 0 89 +} + //============================================================================= // SHOCK RIFLE //============================================================================= +Model "ShockAmmo" +{ + Path "models" + Model 0 "ShockCoreM_d.3d" + Skin 0 "JShockCore.png" + PitchOffset 90 + Scale -0.11 0.11 0.11 + ZOffset 12 + + FrameIndex SHOA A 0 0 +} + Model "ShockRifleWave" { Path "models" @@ -21,7 +243,7 @@ Model "ShockBeamRing" DONTCULLBACKFACES USEACTORPITCH USEACTORROLL - Scale 1.0 0.9 1.0 + Scale 1.2 1.0 1.2 FrameIndex SRNG A 0 0 FrameIndex SRNG B 0 1 @@ -42,7 +264,7 @@ Model "ShockBlastRing" DONTCULLBACKFACES USEACTORPITCH USEACTORROLL - Scale 1.0 0.9 1.0 + Scale 1.2 1.0 1.2 FrameIndex SRNG A 0 0 FrameIndex SRNG B 0 1 diff --git a/models/BRifle2Pick_a.3d b/models/BRifle2Pick_a.3d new file mode 100644 index 0000000..45f953d Binary files /dev/null and b/models/BRifle2Pick_a.3d differ diff --git a/models/BRifle2Pick_d.3d b/models/BRifle2Pick_d.3d new file mode 100644 index 0000000..6959bdc Binary files /dev/null and b/models/BRifle2Pick_d.3d differ diff --git a/models/BRifle2_a.3d b/models/BRifle2_a.3d new file mode 100644 index 0000000..6e82f3c Binary files /dev/null and b/models/BRifle2_a.3d differ diff --git a/models/BRifle2_d.3d b/models/BRifle2_d.3d new file mode 100644 index 0000000..5cb6e0f Binary files /dev/null and b/models/BRifle2_d.3d differ diff --git a/models/BioAmmoM_a.3d b/models/BioAmmoM_a.3d new file mode 100644 index 0000000..6b249eb Binary files /dev/null and b/models/BioAmmoM_a.3d differ diff --git a/models/BioAmmoM_d.3d b/models/BioAmmoM_d.3d new file mode 100644 index 0000000..b89e536 Binary files /dev/null and b/models/BioAmmoM_d.3d differ diff --git a/models/BioGelm_a.3d b/models/BioGelm_a.3d new file mode 100644 index 0000000..21f15e6 Binary files /dev/null and b/models/BioGelm_a.3d differ diff --git a/models/BioGelm_d.3d b/models/BioGelm_d.3d new file mode 100644 index 0000000..ea18918 Binary files /dev/null and b/models/BioGelm_d.3d differ diff --git a/models/JBRifle2.png b/models/JBRifle2.png new file mode 100644 index 0000000..d6d7dbc Binary files /dev/null and b/models/JBRifle2.png differ diff --git a/models/JBRifle21.png b/models/JBRifle21.png new file mode 100644 index 0000000..e112a19 Binary files /dev/null and b/models/JBRifle21.png differ diff --git a/models/JBRifle22.png b/models/JBRifle22.png new file mode 100644 index 0000000..97f7428 Binary files /dev/null and b/models/JBRifle22.png differ diff --git a/models/JBRifle23.png b/models/JBRifle23.png new file mode 100644 index 0000000..55f71cf Binary files /dev/null and b/models/JBRifle23.png differ diff --git a/models/JBRifle24.png b/models/JBRifle24.png new file mode 100644 index 0000000..59cd08d Binary files /dev/null and b/models/JBRifle24.png differ diff --git a/models/JBammo1.png b/models/JBammo1.png new file mode 100644 index 0000000..63c0554 Binary files /dev/null and b/models/JBammo1.png differ diff --git a/models/Jgreen.png b/models/Jgreen.png new file mode 100644 index 0000000..b812d36 Binary files /dev/null and b/models/Jgreen.png differ diff --git a/readme.txt b/readme.txt index ff7f30e..eb550ef 100644 --- a/readme.txt +++ b/readme.txt @@ -12,7 +12,7 @@ Currently implemented: In progress: - - N/A + - GES Biorifle (slot 3) To be done: @@ -21,7 +21,6 @@ To be done: - Translocator (slot 1) - Enforcer (slot 2) - Dual Enforcers (slot 2) - - GES Biorifle (slot 3) - Pulsegun (slot 5) - Ripper (slot 6) - Minigun (slot 7) diff --git a/shaders/glsl/MeshEnviroMap.fp b/shaders/glsl/MeshEnviroMap.fp new file mode 100644 index 0000000..f033092 --- /dev/null +++ b/shaders/glsl/MeshEnviroMap.fp @@ -0,0 +1,7 @@ +// imitation of the Unreal Engine 1.x bMeshEnviroMap effect, not 1:1 but gets close +vec4 Process( vec4 color ) +{ + vec3 eyedir = normalize(uCameraPos.xyz-pixelpos.xyz); + vec3 norm = reflect(eyedir,normalize(vWorldNormal.xyz)); + return getTexel(norm.xz*0.5)*color; +} diff --git a/sndinfo.txt b/sndinfo.txt index 1b8880a..bda3987 100644 --- a/sndinfo.txt +++ b/sndinfo.txt @@ -46,3 +46,14 @@ $pitchshift warhead/explode 0 $pitchshift warhead/fly 0 $pitchshift warhead/select 0 $pitchshift warhead/fire 0 + +ges/hit gelhit +ges/select gelselec +ges/fire gelshot +ges/charge bioaltrep +ges/explode explg02 +$pitchshift ges/hit 0 +$pitchshift ges/select 0 +$pitchshift ges/fire 0 +$pitchshift ges/charge 0 +$pitchshift ges/explode 0 diff --git a/sounds/BioAltRp.wav b/sounds/BioAltRp.wav new file mode 100644 index 0000000..42307e3 Binary files /dev/null and b/sounds/BioAltRp.wav differ diff --git a/sounds/Explg02.wav b/sounds/Explg02.wav new file mode 100644 index 0000000..29f95d1 Binary files /dev/null and b/sounds/Explg02.wav differ diff --git a/sounds/GelHit.wav b/sounds/GelHit.wav new file mode 100644 index 0000000..cdf1c65 Binary files /dev/null and b/sounds/GelHit.wav differ diff --git a/sounds/GelSelec.wav b/sounds/GelSelec.wav new file mode 100644 index 0000000..768b04b Binary files /dev/null and b/sounds/GelSelec.wav differ diff --git a/sounds/GelShot.wav b/sounds/GelShot.wav new file mode 100644 index 0000000..8ed4cb8 Binary files /dev/null and b/sounds/GelShot.wav differ diff --git a/textures.ges b/textures.ges new file mode 100644 index 0000000..6a1367d --- /dev/null +++ b/textures.ges @@ -0,0 +1,131 @@ +Sprite "BIOAA0",1,1{} +Sprite "GELFA0",1,1{} +Sprite "GELFB0",1,1{} +Sprite "GELFC0",1,1{} +Sprite "GELFD0",1,1{} +Sprite "GELFE0",1,1{} +Sprite "GELFF0",1,1{} +Sprite "GELFG0",1,1{} +Sprite "GELFH0",1,1{} +Sprite "GELFI0",1,1{} +Sprite "GELFJ0",1,1{} +Sprite "GELFK0",1,1{} +Sprite "GELFL0",1,1{} +Sprite "GELFM0",1,1{} +Sprite "GELHA0",1,1{} +Sprite "GELHB0",1,1{} +Sprite "GELHC0",1,1{} +Sprite "GELHD0",1,1{} +Sprite "GELHE0",1,1{} +Sprite "GELHF0",1,1{} +Sprite "GELHG0",1,1{} +Sprite "GELHH0",1,1{} +Sprite "GELHI0",1,1{} +Sprite "GELHJ0",1,1{} +Sprite "GELDA0",1,1{} +Sprite "GELDB0",1,1{} +Sprite "GELDC0",1,1{} +Sprite "GELDD0",1,1{} +Sprite "GELDE0",1,1{} +Sprite "GELDF0",1,1{} +Sprite "GELDG0",1,1{} +Sprite "GELDH0",1,1{} +Sprite "GELDI0",1,1{} +Sprite "GELDJ0",1,1{} +Sprite "GELDK0",1,1{} +Sprite "GELDL0",1,1{} +Sprite "GELDM0",1,1{} +Sprite "GELSA0",1,1{} +Sprite "GELSB0",1,1{} +Sprite "GELSC0",1,1{} +Sprite "GELSD0",1,1{} +Sprite "GELSE0",1,1{} +Sprite "GELSF0",1,1{} +Sprite "GELSG0",1,1{} +Sprite "GELXA0",1,1{} +Sprite "GELXB0",1,1{} +Sprite "GELXC0",1,1{} +Sprite "GELXD0",1,1{} +Sprite "GELXE0",1,1{} +Sprite "GELXF0",1,1{} +Sprite "GELXG0",1,1{} +Sprite "GELXH0",1,1{} +Sprite "GELXI0",1,1{} +Sprite "GELXJ0",1,1{} +Sprite "GELXK0",1,1{} +Sprite "GELXL0",1,1{} +Sprite "BIOSA0",1,1{} +Sprite "BIOSB0",1,1{} +Sprite "BIOSC0",1,1{} +Sprite "BIOSD0",1,1{} +Sprite "BIOSE0",1,1{} +Sprite "BIOSF0",1,1{} +Sprite "BIOSG0",1,1{} +Sprite "BIOSH0",1,1{} +Sprite "BIOSI0",1,1{} +Sprite "BIOSJ0",1,1{} +Sprite "BIOSK0",1,1{} +Sprite "BIOSL0",1,1{} +Sprite "BIOSM0",1,1{} +Sprite "BIOSN0",1,1{} +Sprite "BIOSO0",1,1{} +Sprite "BIOSP0",1,1{} +Sprite "BIOSQ0",1,1{} +Sprite "BIOSR0",1,1{} +Sprite "BIOSS0",1,1{} +Sprite "BIOST0",1,1{} +Sprite "BIOSU0",1,1{} +Sprite "BIOSV0",1,1{} +Sprite "BIOIA0",1,1{} +Sprite "BIOCA0",1,1{} +Sprite "BIOCB0",1,1{} +Sprite "BIOCC0",1,1{} +Sprite "BIOCD0",1,1{} +Sprite "BIOCE0",1,1{} +Sprite "BIOCF0",1,1{} +Sprite "BIOCG0",1,1{} +Sprite "BIOCH0",1,1{} +Sprite "BIOCI0",1,1{} +Sprite "BIOCJ0",1,1{} +Sprite "BIOCK0",1,1{} +Sprite "BIOCL0",1,1{} +Sprite "BIOCM0",1,1{} +Sprite "BIOCN0",1,1{} +Sprite "BIOCO0",1,1{} +Sprite "BIOCP0",1,1{} +Sprite "BIOCQ0",1,1{} +Sprite "BIOCR0",1,1{} +Sprite "BIOCS0",1,1{} +Sprite "BIOCT0",1,1{} +Sprite "BIOCU0",1,1{} +Sprite "BIOCV0",1,1{} +Sprite "BIOCW0",1,1{} +Sprite "BIOCX0",1,1{} +Sprite "BIOCY0",1,1{} +Sprite "BIOCZ0",1,1{} +Sprite "BIC2A0",1,1{} +Sprite "BIC2B0",1,1{} +Sprite "BIC2C0",1,1{} +Sprite "BIC2D0",1,1{} +Sprite "BIC2E0",1,1{} +Sprite "BIOMA0",1,1{} +Sprite "BIOEA0",1,1{} +Sprite "BIOFA0",1,1{} +Sprite "BIOFB0",1,1{} +Sprite "BIOFC0",1,1{} +Sprite "BIOFD0",1,1{} +Sprite "BIOFE0",1,1{} +Sprite "BIOFF0",1,1{} +Sprite "BIOFG0",1,1{} +Sprite "BIOFH0",1,1{} +Sprite "BIOFI0",1,1{} +Sprite "BIODA0",1,1{} +Sprite "BIODB0",1,1{} +Sprite "BIODC0",1,1{} +Sprite "BIODD0",1,1{} +Sprite "BIODE0",1,1{} +Sprite "BIODF0",1,1{} +Sprite "BIODG0",1,1{} +Sprite "BIODH0",1,1{} +Sprite "BIODI0",1,1{} +Sprite "BIODJ0",1,1{} diff --git a/textures.misc b/textures.misc new file mode 100644 index 0000000..11a0242 --- /dev/null +++ b/textures.misc @@ -0,0 +1 @@ +Sprite "BLOBA0",1,1{} diff --git a/textures.shock b/textures.shock index c83c117..bf5dc15 100644 --- a/textures.shock +++ b/textures.shock @@ -1,3 +1,4 @@ +Sprite "SHOAA0",1,1{} Sprite "SWAVA0",1,1{} Sprite "SWAVB0",1,1{} Sprite "SRNGA0",1,1{} diff --git a/textures/-noflat-.png b/textures/-noflat-.png new file mode 100644 index 0000000..6562923 Binary files /dev/null and b/textures/-noflat-.png differ diff --git a/zscript.txt b/zscript.txt index 439459d..17424cb 100644 --- a/zscript.txt +++ b/zscript.txt @@ -3,6 +3,7 @@ version "3.3" #include "zscript/mk_matrix.zsc" #include "zscript/mk_coordutil.zsc" #include "zscript/utcommon.zsc" +#include "zscript/biorifle.zsc" #include "zscript/shockrifle.zsc" #include "zscript/flakcannon.zsc" #include "zscript/warheadlauncher.zsc" diff --git a/zscript/biorifle.zsc b/zscript/biorifle.zsc new file mode 100644 index 0000000..0eca8fd --- /dev/null +++ b/zscript/biorifle.zsc @@ -0,0 +1,233 @@ +Class BioAmmo : Ammo +{ + Default + { + Tag "Biosludge Ammo"; + Inventory.PickupMessage "You picked up the Biosludge Ammo."; + Inventory.PickupSound "ut/ammo"; + Inventory.Amount 25; + Inventory.MaxAmount 100; + Ammo.BackpackAmount 50; + Ammo.BackpackMaxAmount 200; + Ammo.DropAmount 25; + } + States + { + Spawn: + BIOA A -1; + Stop; + } +} + +Class BioHitbox : Actor +{ +} + +Class BioLight : DynamicLight +{ +} + +Class BioGel : Actor +{ + Actor l, b; + enum EHitType + { + HIT_NONE, + HIT_WALL, + HIT_CEILING, + HIT_FLOOR + }; + int hittype; + int deadtimer; + Line atline; + int atside; + + override void PostBeginPlay() + { + Super.PostBeginPlay(); + vel.z += 6; + deadtimer = -1; + } + action void A_SetToSlope( double dang, bool ceil = false ) + { + vector3 fnormal; + if ( ceil ) fnormal = invoker.CurSector.floorplane.Normal; + else fnormal = invoker.CurSector.ceilingplane.Normal; + vector2 fnormalp1 = ((fnormal.x != 0) || (fnormal.y != 0))?(fnormal.x,fnormal.y).Unit():(0,0); + vector2 fnormalp2 = ((fnormal.x,fnormal.y).Length(),fnormal.z); + double fang = atan2(fnormalp1.y,fnormalp1.x); // floor angle (not pitch!) + double fpitch = atan2(fnormalp2.x,fnormalp2.y); // floor pitch + double ddiff1 = cos(fang-(dang-90)); + double ddiff2 = cos(fang-dang); + invoker.pitch = -fpitch*ddiff2; + invoker.roll = fpitch*ddiff1; + invoker.angle = dang; + } + // align self to what surface was hit, currently does not support 3d floors + slopes properly + virtual void AlignSelf() + { + Vector3 normal; + FLineTraceData d; + A_NoGravity(); + A_PlaySound("ges/hit"); + A_SetSize(0.1,0); + if ( BlockingLine ) + { + atline = BlockingLine; + normal = (-BlockingLine.delta.y,BlockingLine.delta.x,0).unit(); + atside = 1; + if ( !BlockingLine.sidedef[1] || (CurSector == BlockingLine.frontsector) ) + { + atside = 0; + normal *= -1; + } + angle = atan2(normal.y,normal.x); + pitch = 0; + roll = 0; + LineTrace(angle+180,8,0,data:d); + SetOrigin(d.HitLocation+normal*0.5,false); + hittype = HIT_WALL; + } + else if ( pos.z <= floorz+4 ) + { + normal = cursector.floorplane.Normal; + pitch = asin(-normal.z); + angle = atan2(normal.y,normal.x); + roll = FRandom[GES](0,360); + SetOrigin((pos.x,pos.y,floorz)+normal*0.5,false); + hittype = HIT_FLOOR; + } + else if ( pos.z >= ceilingz-8 ) + { + normal = cursector.ceilingplane.Normal; + pitch = asin(-normal.z); + angle = atan2(normal.y,normal.x); + roll = FRandom[GES](0,360); + SetOrigin((pos.x,pos.y,ceilingz)+normal*0.5,false); + if ( normal dot (0,0,-1) > 0.7 ) + hittype = HIT_CEILING; + else hittype = HIT_FLOOR; + } + else SetStateLabel("Crash"); + } + action void A_DropDrip() + { + // TODO + } + action void A_GelExplode() + { + if ( invoker.atline ) invoker.atline.RemoteActivate(target,invoker.atside,SPAC_Impact,pos); + A_Explode(Random[GES](15,20)*Scale.x,Min(250,Scale.x*75)); + A_PlaySound("ges/explode",CHAN_VOICE); + // TODO particles + } + Default + { + Obituary "%o drank a glass of %k's dripping green load."; + RenderStyle "Add"; + Radius 4; + Height 4; + Scale 2; + Speed 20; + PROJECTILE; + -NOGRAVITY; + +SKYEXPLODE; + +FORCERADIUSDMG; + } + States + { + Spawn: + GELF ABCDEFGHIJKLM 1 Bright; + Loop; + Death: + GELH A 1 Bright AlignSelf(); + GELH BCDEFGHIJ 1 Bright; + GELH J 0 Bright A_SetTics(Random[GES](10,30)); + GELH J -1 Bright + { + if ( invoker.hittype == HIT_WALL ) return ResolveState("Slide"); + else if ( invoker.hittype == HIT_CEILING ) return ResolveState("Drip"); + return ResolveState(null); + } + Stop; + Drip: + GELD ABCDEFGH 4 Bright; + GELD I 4 Bright A_DropDrip(); + GELD JKLM 4 Bright; + GELD M -1 Bright; + Wait; + Slide: + GELS ABCDEFG 3 Bright; + Wait; + Crash: + XDeath: + #### # 1 A_SetTics(Random[GES](1,3)); // TODO EXPLOSION + TNT1 A 1 A_GelExplode(); + Stop; + Shrivel: + GELX ABCDEFGHIJKL 1 Bright; // UNUSED + Stop; + } +} + +Class BioGlob : BioGel +{ + override void AlignSelf() + { + Super.AlignSelf(); + // TODO splashes + } +} + +Class BioSplash : BioGel +{ + override void AlignSelf() + { + Super.AlignSelf(); + if ( hittype == HIT_CEILING ) hittype = HIT_FLOOR; + } +} + +Class BioRifle : UTWeapon +{ + Default + { + Tag "GES Bio Rifle"; + Inventory.PickupMessage "You got the GES BioRifle."; + Weapon.SlotNumber 3; + Weapon.AmmoType "BioAmmo"; + Weapon.AmmoUse 1; + Weapon.AmmoType2 "BioAmmo"; + Weapon.AmmoUse2 1; + Weapon.AmmoGive 25; + } + States + { + Spawn: + BIOP A -1; + Stop; + BIOP B -1; + Stop; + Ready: + BIOS ABCDEFGHIJKLMNOPQRSTUV 1; + Idle: + BIOI A 1 A_WeaponReady(); + Goto Idle; + Fire: + BIOF ABCDEFGHI 1; + Goto Idle; + AltFire: + BIOC ABCDEFGHIJKLMNOPQRSTUVWXYZ 1; + BIC2 ABCDE 1; + BIOM A 1; + BIOE A 1; + Goto Idle; + Select: + BIOS A 1 A_Raise(int.max); + Wait; + Deselect: + BIOD ABCDEFGHIJ 1; + BIOD J 1 A_Lower(int.max); + Wait; + } +} \ No newline at end of file diff --git a/zscript/flakcannon.zsc b/zscript/flakcannon.zsc index 1ec60be..915ef14 100644 --- a/zscript/flakcannon.zsc +++ b/zscript/flakcannon.zsc @@ -3,7 +3,6 @@ Class FlakAmmo : Ammo Default { Tag "Flak Shells"; - Inventory.Icon "I_FLAK"; Inventory.PickupMessage "You picked up 10 Flak Shells."; Inventory.PickupSound "ut/ammo"; Inventory.Amount 10; @@ -118,8 +117,8 @@ Class FlakChunk : Actor Default { Obituary "%o was ripped to shreds by %k's Flak Cannon."; - Radius 2; - Height 2; + Radius 4; + Height 4; Speed 80; DamageFunction Random[Flak](12,18); DamageType 'Shredded'; @@ -294,8 +293,8 @@ Class FlakSlug : Actor { Obituary "%o was ripped to shreds by %k's Flak Cannon."; DamageType 'FlakDeath'; - Radius 2; - Height 2; + Radius 4; + Height 4; Speed 40; PROJECTILE; -NOGRAVITY; diff --git a/zscript/shockrifle.zsc b/zscript/shockrifle.zsc index 4131b2e..ef7cb4f 100644 --- a/zscript/shockrifle.zsc +++ b/zscript/shockrifle.zsc @@ -2,8 +2,7 @@ Class ShockAmmo : Ammo { Default { - Tag "Flak Shells"; - Inventory.Icon "I_ASMD"; + Tag "ShockCore"; Inventory.PickupMessage "You picked up a Shock Core."; Inventory.PickupSound "ut/ammo"; Inventory.Amount 10; diff --git a/zscript/warheadlauncher.zsc b/zscript/warheadlauncher.zsc index d244313..54580d2 100644 --- a/zscript/warheadlauncher.zsc +++ b/zscript/warheadlauncher.zsc @@ -4,7 +4,6 @@ Class WarheadAmmo : Ammo Default { Tag "Redeemer Missile"; - Inventory.Icon "I_WARH"; Inventory.PickupMessage "You picked up a Redeemer Missile."; Inventory.PickupSound "ut/ammo"; Inventory.Amount 1; @@ -193,8 +192,8 @@ Class WarShell : Actor Default { Obituary "%o was vaporized by %k's Redeemer!!"; - Radius 2; - Height 2; + Radius 4; + Height 4; Speed 5; DamageType 'RedeemerDeath'; PROJECTILE;