diff --git a/Readme.md b/Readme.md index b179393..2da6e66 100644 --- a/Readme.md +++ b/Readme.md @@ -36,6 +36,7 @@ Doom Tournament (currently the devel branch is required). - Quadshot (slot 3) (replaces shotguns) - Peacemaker (slot 8) (rare spawn in backpacks) - Demolisher (slot 9) (replaces bfg9000) + - Autocannon (slot 0) (replaces bfg9000) - 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) @@ -73,7 +74,6 @@ Doom Tournament (currently the devel branch is required). - Fireblaster (slot 5) (replaces rocket launcher) - Flamethrower (slot 6) (replaces plasma rifle) - Impaler (slot 7) (replaces plasma rifle) - - Autocannon (slot 0) (replaces bfg9000) ## Planned diff --git a/decaldef.txt b/decaldef.txt new file mode 100644 index 0000000..8f39eff --- /dev/null +++ b/decaldef.txt @@ -0,0 +1,9 @@ +decal SmallRocketBlast +{ + pic rcktblst + shade "00 00 00" + x-scale 0.2 + y-scale 0.2 + randomflipx + randomflipy +} diff --git a/graphics/hud083/ammo/Smini083.png b/graphics/hud083/ammo/Smini083.png index 46a6a5c..82a5bd6 100644 Binary files a/graphics/hud083/ammo/Smini083.png and b/graphics/hud083/ammo/Smini083.png differ diff --git a/modeldef.biggun b/modeldef.biggun index 44ecc02..3b7f8aa 100644 --- a/modeldef.biggun +++ b/modeldef.biggun @@ -104,7 +104,7 @@ Model "BigGun" SurfaceSkin 0 1 "Automa1.png" AngleOffset -85 Scale 0.1 -0.05 0.1 - Offset 7 -10 -3 + Offset 8 -15 -4 // Still FrameIndex BIGI A 0 0 diff --git a/modeldef.gatling b/modeldef.gatling index f386da6..39c42ce 100644 --- a/modeldef.gatling +++ b/modeldef.gatling @@ -1,14 +1,26 @@ +Model "SMiniShell" +{ + Path "models" + Model 0 "SShell_d.3d" + Skin 0 "jsshell.png" + PitchOffset 90 + PITCHFROMMOMENTUM + Scale -0.048 0.02 0.02 + + FrameIndex SMIS A 0 0 +} + Model "SMiniGun" { Path "models" Model 1 "SMiniPick_d.3d" Skin 1 "Minigun_.png" - ZOffset 9 - Scale 0.15 0.15 0.18 + ZOffset 12 + Scale 0.18 0.18 0.216 FrameIndex SMIP B 1 0 - ZOffset 12 + ZOffset 15 ROTATING FrameIndex SMIP A 1 0 } @@ -16,11 +28,50 @@ Model "SMiniGun" Model "SMiniGun" { Path "models" - Model 0 "SMinigun_d.3d" - Skin 0 "Minigun.png" + Model 2 "Flat_d.3d" + Skin 2 "SMinMuz.png" + AngleOffset 90 + PitchOffset 90 + Scale 0.1 0.1 0.1 + + Offset 8 -60 -7 + FrameIndex SMMF A 2 0 + Offset 12 -60 -7 + FrameIndex SMMF B 2 0 + Offset 6 -60 -12 + FrameIndex SMMF C 2 0 + Offset 14 -60 -12 + FrameIndex SMMF D 2 0 + + Scale 0.15 0.15 0.15 + Offset 10 -60 -8 + FrameIndex SMMF E 2 0 +} + +Model "SMiniGun" +{ + Path "models" + Model 3 "SMinigun_d.3d" + SurfaceSkin 3 0 "ShockSm.png" AngleOffset 180 - Scale 0.1 -0.08 0.1 - Offset 6 -18 -10 + Scale 0.12 -0.08 0.12 + Offset 6 -18 -12 + DONTCULLBACKFACES + + FrameIndex SMIR A 3 54 + FrameIndex SMIR B 3 55 + FrameIndex SMIR C 3 56 + FrameIndex SMIR D 3 57 +} + +Model "SMiniGun" +{ + Path "models" + Model 0 "SMinigun_d.3d" + SurfaceSkin 0 1 "Minigun.png" + AngleOffset 180 + Scale 0.12 -0.08 0.12 + Offset 6 -18 -12 // Down FrameIndex SMID A 0 1 diff --git a/models/BigGun_1st.blend b/models/BigGun_1st.blend index 65d144a..7c926c0 100644 Binary files a/models/BigGun_1st.blend and b/models/BigGun_1st.blend differ diff --git a/models/BigGun_a.3d b/models/BigGun_a.3d index 57a1eec..be2b8cc 100644 Binary files a/models/BigGun_a.3d and b/models/BigGun_a.3d differ diff --git a/models/BigGun_d.3d b/models/BigGun_d.3d index f692049..727ad90 100644 Binary files a/models/BigGun_d.3d and b/models/BigGun_d.3d differ diff --git a/models/SMinigun.blend b/models/SMinigun.blend index 6d549d0..b328951 100644 Binary files a/models/SMinigun.blend and b/models/SMinigun.blend differ diff --git a/models/SMinigun_a.3d b/models/SMinigun_a.3d index 1c1e7c5..a1154cd 100644 Binary files a/models/SMinigun_a.3d and b/models/SMinigun_a.3d differ diff --git a/models/SMinigun_d.3d b/models/SMinigun_d.3d index 3aede89..0dc304d 100644 Binary files a/models/SMinigun_d.3d and b/models/SMinigun_d.3d differ diff --git a/models/SShell_a.3d b/models/SShell_a.3d new file mode 100644 index 0000000..8174f98 Binary files /dev/null and b/models/SShell_a.3d differ diff --git a/models/SShell_d.3d b/models/SShell_d.3d new file mode 100644 index 0000000..4e6868d Binary files /dev/null and b/models/SShell_d.3d differ diff --git a/models/jsshell.png b/models/jsshell.png new file mode 100644 index 0000000..990db43 Binary files /dev/null and b/models/jsshell.png differ diff --git a/sndinfo.txt b/sndinfo.txt index c26c1aa..5cc6845 100644 --- a/sndinfo.txt +++ b/sndinfo.txt @@ -296,6 +296,7 @@ smini/select sminisel smini/fire sminione smini/altfire sminialt smini/endfire sminiend +smini/explode sminiexp translator/event transa3 diff --git a/sounds/SMiniExp.ogg b/sounds/SMiniExp.ogg new file mode 100644 index 0000000..0940860 Binary files /dev/null and b/sounds/SMiniExp.ogg differ diff --git a/zscript/biggun.zsc b/zscript/biggun.zsc index 42cdc33..b6b87d3 100644 --- a/zscript/biggun.zsc +++ b/zscript/biggun.zsc @@ -8,7 +8,7 @@ Class BigAmmo : Ammo Inventory.Amount 10; Inventory.MaxAmount 12; Ammo.BackpackAmount 0; - Ammo.BackpackMaxAmount 24; + Ammo.BackpackMaxAmount 20; Ammo.DropAmount 10; Inventory.RespawnTics 2100; +INVENTORY.IGNORESKILL; @@ -131,6 +131,7 @@ Class BigBlast : Actor A_Explode(50+special1,150); A_QuakeEx(4,4,4,10,0,300,"",QF_RELATIVE|QF_SCALEDOWN,falloff:150,rollintensity:0.2); A_PlaySound("big/blast",CHAN_VOICE,pitch:FRandom[BigGun](0.8,1.2)); + A_SprayDecal("RazorBlast",-172); UTMainHandler.DoBlast(self,150,80000); let r = Spawn("FatRing",pos); r.angle = angle; @@ -364,17 +365,6 @@ Class BigGun : UnrealWeapon s.alpha *= 0.6; } } - action void A_BigRefire( statelabel flash = null ) - { - Weapon weap = Weapon(invoker); - if ( !weap || !player ) return; - if ( invoker.clipcount <= 0 ) - { - A_ClearRefire(); - return; - } - A_Refire(flash); - } action bool A_BigCheckForReload( bool bDryFire = false ) { let weap = Weapon(invoker); @@ -481,6 +471,7 @@ Class BigGun : UnrealWeapon BIGF DEF 2; BIGF G 2 A_Eject(); BIGF HIJKLMNOP 2; + BIGI A 0 A_Refire("Fire"); Goto Idle; AltFire: BIGF A 0 @@ -495,9 +486,9 @@ Class BigGun : UnrealWeapon BIGF DEF 1; BIGF G 1 A_Eject(); BIGF HIJK 1; - BIGF L 0 A_BigRefire(1); + BIGF L 0 A_Refire(1); Goto AltRelease; - BIGF L 1; + BIGF L 1 A_JumpIf(invoker.clipcount<=0,"AltRelease"); Goto AltHold; AltRelease: BIGF LMNOP 3; @@ -515,6 +506,7 @@ Class BigGun : UnrealWeapon Reload: BIGR A 0 { + A_ClearRefire(); A_Overlay(-9999,"Null"); UTMainHandler.DoSwing(self,(FRandom[BigGun](0.7,0.3),FRandom[BigGun](0.4,0.3)),3,0,10,SWING_Spring,70,0.8); } @@ -570,6 +562,9 @@ Class BigGun : UnrealWeapon BGMF A 2 Bright { let l = Spawn("SniperLight",pos); + l.args[0] = 255; + l.args[1] = 176; + l.args[2] = 16; l.target = self; } Stop; diff --git a/zscript/gatling.zsc b/zscript/gatling.zsc index bc649da..0259a5b 100644 --- a/zscript/gatling.zsc +++ b/zscript/gatling.zsc @@ -4,9 +4,9 @@ Class SMiniAmmo : Ammo { Inventory.Icon "I_SMini"; Inventory.Amount 20; - Inventory.MaxAmount 40; + Inventory.MaxAmount 30; Ammo.BackpackAmount 0; - Ammo.BackpackMaxAmount 80; + Ammo.BackpackMaxAmount 50; } override bool TryPickup( in out Actor toucher ) { @@ -22,8 +22,100 @@ Class SMiniAmmo : Ammo } } -Class SMiniBlast : Actor +Class SMiniXLight : PaletteLight { + Default + { + Args 0,0,0,50; + ReactionTime 15; + } +} + +Class SMiniShell : FastProjectile +{ + Default + { + Obituary "$O_EIGHTBALL"; + DamageType 'Shot'; + DamageFunction 150; + Radius 4; + Height 4; + Speed 200; + +SKYEXPLODE; + +EXPLODEONWATER; + +FORCERADIUSDMG; + +NODAMAGETHRUST; + +INTERPOLATEANGLES; + } + override void Tick() + { + Vector3 oldpos = pos; + Super.Tick(); + if ( isFrozen() || (CurState != FindState("Spawn")) ) return; + // spawn trail + Vector3 dir = level.Vec3Diff(oldpos,pos); + double dist = dir.length(); + dir /= dir.length(); + for ( double d=0; d