From c0dccaf87095239a48051991a05a6de0440ea4ef Mon Sep 17 00:00:00 2001 From: Marisa the Magician Date: Sat, 8 Oct 2022 01:51:06 +0200 Subject: [PATCH] Reimplement Hellblazer. Everything's working again. --- FuturePlans.md | 6 +- language.version | 4 +- modeldef.hellblazer | 757 +++++----------------------- modeldef.silverbullet | 2 +- zscript/utility/swwm_utility.zsc | 3 +- zscript/weapons/swwm_blazeit.zsc | 243 ++++----- zscript/weapons/swwm_blazeit_fx.zsc | 6 +- 7 files changed, 236 insertions(+), 785 deletions(-) diff --git a/FuturePlans.md b/FuturePlans.md index 31b4a984b..0027f1f8b 100644 --- a/FuturePlans.md +++ b/FuturePlans.md @@ -35,12 +35,12 @@ More weapons, because we need 'em. In addition, all the "easy to implement" mini - ✓ Buttslam lines * ☑ **Additional Collectibles:** - ✓ Saya's Mug -* ☐ ***"Trimming the fat"*:** +* ☑ ***"Trimming the fat"*:** - ✓ Remove all shell types except buckshot and golden shells - ✓ Spreadgun loads golden shells with altfire, like in IA3 - ✓ Wallbuster tops up buckshot one cylinder at a time until stopped - - Remove all missile types except blazers, and rewrite the absolute mess of code the Hellblazer currently is - - Remove fat chodes + - ✓ Remove all missile types except blazers, and rewrite the absolute mess of code the Hellblazer currently is + - ✓ Remove fat chodes ## 1.4 update *(Fine Refinements)*: diff --git a/language.version b/language.version index a38d5d971..e414d5a34 100644 --- a/language.version +++ b/language.version @@ -1,3 +1,3 @@ [default] -SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r547 \cu(Fri 7 Oct 20:14:38 CEST 2022)\c-"; -SWWM_SHORTVER="\cw1.3pre r547 \cu(2022-10-07 20:14:38)\c-"; +SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r548 \cu(Sat 8 Oct 01:51:06 CEST 2022)\c-"; +SWWM_SHORTVER="\cw1.3pre r548 \cu(2022-10-08 01:51:06)\c-"; diff --git a/modeldef.hellblazer b/modeldef.hellblazer index 93f7ecb87..27dbd3eb2 100644 --- a/modeldef.hellblazer +++ b/modeldef.hellblazer @@ -41,36 +41,6 @@ Model "Hellblazer" FrameIndex XZW1 A 0 0 } -// individual missiles for pickup model -Model "HellblazerXSub" -{ - Path "models" - - Model 0 "HellblazerPickup_d.3d" - Scale 0.11 0.11 0.11 - AngleOffset 180 - ZOffset 20 - ROTATING - - // Missiles - SurfaceSkin 0 6 "HellblazerMissile.png" - FrameIndex XZW1 A 0 0 - SurfaceSkin 0 6 "" - SurfaceSkin 0 7 "HellblazerMissile.png" - FrameIndex XZW1 B 0 0 - SurfaceSkin 0 7 "" - SurfaceSkin 0 8 "HellblazerMissile.png" - FrameIndex XZW1 C 0 0 - SurfaceSkin 0 8 "" - SurfaceSkin 0 9 "HellblazerMissile.png" - FrameIndex XZW1 D 0 0 - SurfaceSkin 0 9 "" - SurfaceSkin 0 10 "HellblazerMissile.png" - FrameIndex XZW1 E 0 0 - SurfaceSkin 0 10 "" - SurfaceSkin 0 11 "HellblazerMissile.png" - FrameIndex XZW1 F 0 0 -} Model "HellblazerX" { Path "models" @@ -87,7 +57,7 @@ Model "HellblazerX" } // translucent part -/*Model "Hellblazer" +Model "Hellblazer" { Path "models" @@ -99,167 +69,148 @@ Model "HellblazerX" Offset -2 2 1 // Still / Deselect - FrameIndex XZWL S 2 0 - FrameIndex XZWL T 2 1 - FrameIndex XZWL U 2 2 - FrameIndex XZWL V 2 3 - FrameIndex XZWL W 2 4 - FrameIndex XZWL X 2 5 - FrameIndex XZWL Y 2 6 - FrameIndex XZWL Z 2 7 - FrameIndex XZWM A 2 8 // Select - FrameIndex XZWM B 2 9 - FrameIndex XZWM C 2 10 - FrameIndex XZWM D 2 11 - FrameIndex XZWM E 2 12 - FrameIndex XZWM F 2 13 - FrameIndex XZWM G 2 14 - FrameIndex XZWM H 2 15 + FrameIndex XZW7 A 2 0 + FrameIndex XZW7 B 2 1 + FrameIndex XZW7 C 2 2 + FrameIndex XZW7 D 2 3 + FrameIndex XZW7 E 2 4 + FrameIndex XZW7 F 2 5 + FrameIndex XZW7 G 2 6 + FrameIndex XZW7 H 2 7 + FrameIndex XZW7 I 2 8 // Select + FrameIndex XZW7 J 2 9 + FrameIndex XZW7 K 2 10 + FrameIndex XZW7 L 2 11 + FrameIndex XZW7 M 2 12 + FrameIndex XZW7 N 2 13 + FrameIndex XZW7 O 2 14 + FrameIndex XZW7 P 2 15 // Fire - FrameIndex XZWM I 2 17 - FrameIndex XZWM J 2 18 - FrameIndex XZWM K 2 19 - FrameIndex XZWM L 2 20 - FrameIndex XZWM M 2 21 - FrameIndex XZWM N 2 22 - FrameIndex XZWM O 2 23 + FrameIndex XZW7 Q 2 17 + FrameIndex XZW7 R 2 18 + FrameIndex XZW7 S 2 19 + FrameIndex XZW7 T 2 20 + FrameIndex XZW7 U 2 21 + FrameIndex XZW7 V 2 22 + FrameIndex XZW7 W 2 23 // AltFire - FrameIndex XZWM P 2 25 - FrameIndex XZWM Q 2 26 - FrameIndex XZWM R 2 27 - FrameIndex XZWM S 2 28 - FrameIndex XZWM T 2 29 - FrameIndex XZWM U 2 30 - FrameIndex XZWM V 2 31 + FrameIndex XZW7 X 2 25 + FrameIndex XZW7 Y 2 26 + FrameIndex XZW7 Z 2 27 + FrameIndex XZW8 A 2 28 + FrameIndex XZW8 B 2 29 + FrameIndex XZW8 C 2 30 + FrameIndex XZW8 D 2 31 // CycleStart/End - FrameIndex XZWM W 2 33 + FrameIndex XZW8 E 2 33 // Cycle1 - FrameIndex XZWM X 2 37 - FrameIndex XZWM Y 2 38 - FrameIndex XZWM Z 2 39 - FrameIndex XZWN A 2 40 - // Cycle2 - FrameIndex XZWN B 2 41 - FrameIndex XZWN C 2 42 - FrameIndex XZWN D 2 43 - FrameIndex XZWN E 2 44 - FrameIndex XZWN F 2 45 - FrameIndex XZWN G 2 46 - FrameIndex XZWN H 2 47 - // Cycle3 - FrameIndex XZWN I 2 48 - FrameIndex XZWN J 2 49 - FrameIndex XZWN K 2 50 - FrameIndex XZWN L 2 51 - FrameIndex XZWN M 2 52 - FrameIndex XZWN N 2 53 - FrameIndex XZWN O 2 54 - FrameIndex XZWN P 2 55 - FrameIndex XZWN Q 2 56 - FrameIndex XZWN R 2 57 + FrameIndex XZW8 F 2 37 + FrameIndex XZW8 G 2 38 + FrameIndex XZW8 H 2 39 + FrameIndex XZW8 I 2 40 // Unload - FrameIndex XZWN S 2 59 - FrameIndex XZWN T 2 60 - FrameIndex XZWN U 2 61 - FrameIndex XZWN V 2 62 - FrameIndex XZWN W 2 63 - FrameIndex XZWN X 2 64 - FrameIndex XZWN Y 2 65 - FrameIndex XZWN Z 2 66 - FrameIndex XZWO A 2 67 - FrameIndex XZWO B 2 68 - FrameIndex XZWO C 2 69 - FrameIndex XZWO D 2 70 - FrameIndex XZWO E 2 71 - FrameIndex XZWO F 2 72 - FrameIndex XZWO G 2 73 - FrameIndex XZWO H 2 74 - FrameIndex XZWO I 2 75 - FrameIndex XZWO J 2 76 - FrameIndex XZWO K 2 77 - FrameIndex XZWO L 2 78 - FrameIndex XZWO M 2 79 - FrameIndex XZWO N 2 80 - FrameIndex XZWO O 2 81 - FrameIndex XZWO P 2 82 - FrameIndex XZWO Q 2 83 - FrameIndex XZWO R 2 84 + FrameIndex XZW8 J 2 59 + FrameIndex XZW8 K 2 60 + FrameIndex XZW8 L 2 61 + FrameIndex XZW8 M 2 62 + FrameIndex XZW8 N 2 63 + FrameIndex XZW8 O 2 64 + FrameIndex XZW8 P 2 65 + FrameIndex XZW8 Q 2 66 + FrameIndex XZW8 R 2 67 + FrameIndex XZW8 S 2 68 + FrameIndex XZW8 T 2 69 + FrameIndex XZW8 U 2 70 + FrameIndex XZW8 V 2 71 + FrameIndex XZW8 W 2 72 + FrameIndex XZW8 X 2 73 + FrameIndex XZW8 Y 2 74 + FrameIndex XZW8 Z 2 75 + FrameIndex XZW9 A 2 76 + FrameIndex XZW9 B 2 77 + FrameIndex XZW9 C 2 78 + FrameIndex XZW9 D 2 79 + FrameIndex XZW9 E 2 80 + FrameIndex XZW9 F 2 81 + FrameIndex XZW9 G 2 82 + FrameIndex XZW9 H 2 83 + FrameIndex XZW9 I 2 84 // Load - FrameIndex XZWO S 2 85 - FrameIndex XZWO T 2 86 - FrameIndex XZWO U 2 87 - FrameIndex XZWO V 2 88 - FrameIndex XZWO W 2 89 - FrameIndex XZWO X 2 90 - FrameIndex XZWO Y 2 91 - FrameIndex XZWO Z 2 92 - FrameIndex XZWP A 2 93 - FrameIndex XZWP B 2 94 - FrameIndex XZWP C 2 95 - FrameIndex XZWP D 2 96 - FrameIndex XZWP E 2 97 - FrameIndex XZWP F 2 98 - FrameIndex XZWP G 2 99 - FrameIndex XZWP H 2 100 - FrameIndex XZWP I 2 101 - FrameIndex XZWP J 2 102 - FrameIndex XZWP K 2 103 - FrameIndex XZWP L 2 104 - FrameIndex XZWP M 2 105 - FrameIndex XZWP N 2 106 - FrameIndex XZWP O 2 107 - FrameIndex XZWP P 2 108 - FrameIndex XZWP Q 2 109 - FrameIndex XZWP R 2 110 - FrameIndex XZWP S 2 111 + FrameIndex XZW9 J 2 85 + FrameIndex XZW9 K 2 86 + FrameIndex XZW9 L 2 87 + FrameIndex XZW9 M 2 88 + FrameIndex XZW9 N 2 89 + FrameIndex XZW9 O 2 90 + FrameIndex XZW9 P 2 91 + FrameIndex XZW9 Q 2 92 + FrameIndex XZW9 R 2 93 + FrameIndex XZW9 S 2 94 + FrameIndex XZW9 T 2 95 + FrameIndex XZW9 U 2 96 + FrameIndex XZW9 V 2 97 + FrameIndex XZW9 W 2 98 + FrameIndex XZW9 X 2 99 + FrameIndex XZW9 Y 2 100 + FrameIndex XZW9 Z 2 101 + FrameIndex XZWA A 2 102 + FrameIndex XZWA B 2 103 + FrameIndex XZWA C 2 104 + FrameIndex XZWA D 2 105 + FrameIndex XZWA E 2 106 + FrameIndex XZWA F 2 107 + FrameIndex XZWA G 2 108 + FrameIndex XZWA H 2 109 + FrameIndex XZWA I 2 110 + FrameIndex XZWA J 2 111 // Idle - FrameIndex XZWP T 2 113 - FrameIndex XZWP U 2 114 - FrameIndex XZWP V 2 115 - FrameIndex XZWP W 2 116 - FrameIndex XZWP X 2 117 - FrameIndex XZWP Y 2 118 - FrameIndex XZWP Z 2 119 - FrameIndex XZWQ A 2 120 - FrameIndex XZWQ B 2 121 - FrameIndex XZWQ C 2 122 - FrameIndex XZWQ D 2 123 - FrameIndex XZWQ E 2 124 - FrameIndex XZWQ F 2 125 - FrameIndex XZWQ G 2 126 - FrameIndex XZWQ H 2 127 - FrameIndex XZWQ I 2 128 - FrameIndex XZWQ J 2 129 + FrameIndex XZWA K 2 113 + FrameIndex XZWA L 2 114 + FrameIndex XZWA M 2 115 + FrameIndex XZWA N 2 116 + FrameIndex XZWA O 2 117 + FrameIndex XZWA P 2 118 + FrameIndex XZWA Q 2 119 + FrameIndex XZWA R 2 120 + FrameIndex XZWA S 2 121 + FrameIndex XZWA T 2 122 + FrameIndex XZWA U 2 123 + FrameIndex XZWA V 2 124 + FrameIndex XZWA W 2 125 + FrameIndex XZWA X 2 126 + FrameIndex XZWA Y 2 127 + FrameIndex XZWA Z 2 128 + FrameIndex XZWB A 2 129 // Melee - FrameIndex XZWQ K 2 131 - FrameIndex XZWQ L 2 132 - FrameIndex XZWQ M 2 133 - FrameIndex XZWQ N 2 134 - FrameIndex XZWQ O 2 135 - FrameIndex XZWQ P 2 136 - FrameIndex XZWQ Q 2 137 - FrameIndex XZWQ R 2 138 - FrameIndex XZWQ S 2 139 - FrameIndex XZWQ T 2 140 - FrameIndex XZWQ U 2 141 - FrameIndex XZWQ V 2 142 - FrameIndex XZWQ W 2 143 - FrameIndex XZWQ X 2 144 - FrameIndex XZWQ Y 2 145 - FrameIndex XZWQ Z 2 146 - FrameIndex XZWR A 2 147 - FrameIndex XZWR B 2 148 - FrameIndex XZWR C 2 149 - FrameIndex XZWR D 2 150 + FrameIndex XZWB B 2 131 + FrameIndex XZWB C 2 132 + FrameIndex XZWB D 2 133 + FrameIndex XZWB E 2 134 + FrameIndex XZWB F 2 135 + FrameIndex XZWB G 2 136 + FrameIndex XZWB H 2 137 + FrameIndex XZWB I 2 138 + FrameIndex XZWB J 2 139 + FrameIndex XZWB K 2 140 + FrameIndex XZWB L 2 141 + FrameIndex XZWB M 2 142 + FrameIndex XZWB N 2 143 + FrameIndex XZWB O 2 144 + FrameIndex XZWB P 2 145 + FrameIndex XZWB Q 2 146 + FrameIndex XZWB R 2 147 + FrameIndex XZWB S 2 148 + FrameIndex XZWB T 2 149 + FrameIndex XZWB U 2 150 // ReloadInter - FrameIndex XZWR E 2 153 - FrameIndex XZWR F 2 154 - FrameIndex XZWR G 2 155 - FrameIndex XZWR H 2 156 - FrameIndex XZWR I 2 157 -}*/ + FrameIndex XZWB V 2 153 + FrameIndex XZWB W 2 154 + FrameIndex XZWB X 2 155 + FrameIndex XZWB Y 2 156 + FrameIndex XZWB Z 2 157 +} -/*Model "Hellblazer" +Model "Hellblazer" { Path "models" @@ -273,7 +224,6 @@ Model "HellblazerX" Scale -0.005 0.0025 0.005 Offset -2 2 1 - ////// MISSILES SurfaceSkin 1 5 "HellblazerAmmo.png" SurfaceSkin 1 6 "HellblazerAmmo.png" SurfaceSkin 1 7 "HellblazerAmmo.png" @@ -412,443 +362,14 @@ Model "HellblazerX" FrameIndex XZW6 S 1 148 FrameIndex XZW6 T 1 149 FrameIndex XZW6 U 1 150 - ////// CRACKSHOTS - SurfaceSkin 1 5 "HellblazerAmmo_Cluster.png" - SurfaceSkin 1 6 "" - SurfaceSkin 1 7 "HellblazerAmmo_Cluster.png" - SurfaceSkin 1 8 "" - // Still / Deselect - FrameIndex XZW6 V 1 0 - FrameIndex XZW6 W 1 1 - FrameIndex XZW6 X 1 2 - FrameIndex XZW6 Y 1 3 - FrameIndex XZW6 Z 1 4 - FrameIndex XZW7 A 1 5 - FrameIndex XZW7 B 1 6 - FrameIndex XZW7 C 1 7 - FrameIndex XZW7 D 1 8 // Select - FrameIndex XZW7 E 1 9 - FrameIndex XZW7 F 1 10 - FrameIndex XZW7 G 1 11 - FrameIndex XZW7 H 1 12 - FrameIndex XZW7 I 1 13 - FrameIndex XZW7 J 1 14 - FrameIndex XZW7 K 1 15 - // Fire - FrameIndex XZW7 L 1 17 - FrameIndex XZW7 M 1 18 - FrameIndex XZW7 N 1 19 - FrameIndex XZW7 O 1 20 - FrameIndex XZW7 P 1 21 - FrameIndex XZW7 Q 1 22 - FrameIndex XZW7 R 1 23 - // AltFire - FrameIndex XZW7 S 1 25 - FrameIndex XZW7 T 1 26 - FrameIndex XZW7 U 1 27 - FrameIndex XZW7 V 1 28 - FrameIndex XZW7 W 1 29 - FrameIndex XZW7 X 1 30 - FrameIndex XZW7 Y 1 31 - // CycleStart/End - FrameIndex XZW7 Z 1 33 - // Cycle2 - FrameIndex XZW8 A 1 41 - FrameIndex XZW8 B 1 42 - FrameIndex XZW8 C 1 43 - FrameIndex XZW8 D 1 44 - FrameIndex XZW8 E 1 45 - FrameIndex XZW8 F 1 46 - FrameIndex XZW8 G 1 47 - // Unload - FrameIndex XZW8 H 1 59 - FrameIndex XZW8 I 1 60 - FrameIndex XZW8 J 1 61 - FrameIndex XZW8 K 1 62 - FrameIndex XZW8 L 1 63 - FrameIndex XZW8 M 1 64 - FrameIndex XZW8 N 1 65 - FrameIndex XZW8 O 1 66 - FrameIndex XZW8 P 1 67 - FrameIndex XZW8 Q 1 68 - FrameIndex XZW8 R 1 69 - FrameIndex XZW8 S 1 70 - FrameIndex XZW8 T 1 71 - FrameIndex XZW8 U 1 72 - FrameIndex XZW8 V 1 73 - FrameIndex XZW8 W 1 74 - FrameIndex XZW8 X 1 75 - FrameIndex XZW8 Y 1 76 - FrameIndex XZW8 Z 1 77 - FrameIndex XZW9 A 1 78 - FrameIndex XZW9 B 1 79 - FrameIndex XZW9 C 1 80 - FrameIndex XZW9 D 1 81 - FrameIndex XZW9 E 1 82 - FrameIndex XZW9 F 1 83 - FrameIndex XZW9 G 1 84 - // Load - FrameIndex XZW9 H 1 85 - FrameIndex XZW9 I 1 86 - FrameIndex XZW9 J 1 87 - FrameIndex XZW9 K 1 88 - FrameIndex XZW9 L 1 89 - FrameIndex XZW9 M 1 90 - FrameIndex XZW9 N 1 91 - FrameIndex XZW9 O 1 92 - FrameIndex XZW9 P 1 93 - FrameIndex XZW9 Q 1 94 - FrameIndex XZW9 R 1 95 - FrameIndex XZW9 S 1 96 - FrameIndex XZW9 T 1 97 - FrameIndex XZW9 U 1 98 - FrameIndex XZW9 V 1 99 - FrameIndex XZW9 W 1 100 - FrameIndex XZW9 X 1 101 - FrameIndex XZW9 Y 1 102 - FrameIndex XZW9 Z 1 103 - FrameIndex XZWA A 1 104 - FrameIndex XZWA B 1 105 - FrameIndex XZWA C 1 106 - FrameIndex XZWA D 1 107 - FrameIndex XZWA E 1 108 - FrameIndex XZWA F 1 109 - FrameIndex XZWA G 1 110 - FrameIndex XZWA H 1 111 - // Idle - FrameIndex XZWA I 1 113 - FrameIndex XZWA J 1 114 - FrameIndex XZWA K 1 115 - FrameIndex XZWA L 1 116 - FrameIndex XZWA M 1 117 - FrameIndex XZWA N 1 118 - FrameIndex XZWA O 1 119 - FrameIndex XZWA P 1 120 - FrameIndex XZWA Q 1 121 - FrameIndex XZWA R 1 122 - FrameIndex XZWA S 1 123 - FrameIndex XZWA T 1 124 - FrameIndex XZWA U 1 125 - FrameIndex XZWA V 1 126 - FrameIndex XZWA W 1 127 - FrameIndex XZWA X 1 128 - FrameIndex XZWA Y 1 129 - // Melee - FrameIndex XZWA Z 1 131 - FrameIndex XZWB A 1 132 - FrameIndex XZWB B 1 133 - FrameIndex XZWB C 1 134 - FrameIndex XZWB D 1 135 - FrameIndex XZWB E 1 136 - FrameIndex XZWB F 1 137 - FrameIndex XZWB G 1 138 - FrameIndex XZWB H 1 139 - FrameIndex XZWB I 1 140 - FrameIndex XZWB J 1 141 - FrameIndex XZWB K 1 142 - FrameIndex XZWB L 1 143 - FrameIndex XZWB M 1 144 - FrameIndex XZWB N 1 145 - FrameIndex XZWB O 1 146 - FrameIndex XZWB P 1 147 - FrameIndex XZWB Q 1 148 - FrameIndex XZWB R 1 149 - FrameIndex XZWB S 1 150 - ////// RAVAGERS - SurfaceSkin 1 5 "HellblazerAmmo_Fire.png" - SurfaceSkin 1 6 "" - SurfaceSkin 1 7 "HellblazerAmmo_Fire.png" - SurfaceSkin 1 8 "" - // Still / Deselect - FrameIndex XZWB T 1 0 - FrameIndex XZWB U 1 1 - FrameIndex XZWB V 1 2 - FrameIndex XZWB W 1 3 - FrameIndex XZWB X 1 4 - FrameIndex XZWB Y 1 5 - FrameIndex XZWB Z 1 6 - FrameIndex XZWC A 1 7 - FrameIndex XZWC B 1 8 // Select - FrameIndex XZWC C 1 9 - FrameIndex XZWC D 1 10 - FrameIndex XZWC E 1 11 - FrameIndex XZWC F 1 12 - FrameIndex XZWC G 1 13 - FrameIndex XZWC H 1 14 - FrameIndex XZWC I 1 15 - // Fire - FrameIndex XZWC J 1 17 - FrameIndex XZWC K 1 18 - FrameIndex XZWC L 1 19 - FrameIndex XZWC M 1 20 - FrameIndex XZWC N 1 21 - FrameIndex XZWC O 1 22 - FrameIndex XZWC P 1 23 - // AltFire - FrameIndex XZWC Q 1 25 - FrameIndex XZWC R 1 26 - FrameIndex XZWC S 1 27 - FrameIndex XZWC T 1 28 - FrameIndex XZWC U 1 29 - FrameIndex XZWC V 1 30 - FrameIndex XZWC W 1 31 - // CycleStart/End - FrameIndex XZWC X 1 33 - // Cycle2 - FrameIndex XZWC Y 1 41 - FrameIndex XZWC Z 1 42 - FrameIndex XZWD A 1 43 - FrameIndex XZWD B 1 44 - FrameIndex XZWD C 1 45 - FrameIndex XZWD D 1 46 - FrameIndex XZWD E 1 47 - // Unload - FrameIndex XZWD F 1 59 - FrameIndex XZWD G 1 60 - FrameIndex XZWD H 1 61 - FrameIndex XZWD I 1 62 - FrameIndex XZWD J 1 63 - FrameIndex XZWD K 1 64 - FrameIndex XZWD L 1 65 - FrameIndex XZWD M 1 66 - FrameIndex XZWD N 1 67 - FrameIndex XZWD O 1 68 - FrameIndex XZWD P 1 69 - FrameIndex XZWD Q 1 70 - FrameIndex XZWD R 1 71 - FrameIndex XZWD S 1 72 - FrameIndex XZWD T 1 73 - FrameIndex XZWD U 1 74 - FrameIndex XZWD V 1 75 - FrameIndex XZWD W 1 76 - FrameIndex XZWD X 1 77 - FrameIndex XZWD Y 1 78 - FrameIndex XZWD Z 1 79 - FrameIndex XZWE A 1 80 - FrameIndex XZWE B 1 81 - FrameIndex XZWE C 1 82 - FrameIndex XZWE D 1 83 - FrameIndex XZWE E 1 84 - // Load - FrameIndex XZWE F 1 85 - FrameIndex XZWE G 1 86 - FrameIndex XZWE H 1 87 - FrameIndex XZWE I 1 88 - FrameIndex XZWE J 1 89 - FrameIndex XZWE K 1 90 - FrameIndex XZWE L 1 91 - FrameIndex XZWE M 1 92 - FrameIndex XZWE N 1 93 - FrameIndex XZWE O 1 94 - FrameIndex XZWE P 1 95 - FrameIndex XZWE Q 1 96 - FrameIndex XZWE R 1 97 - FrameIndex XZWE S 1 98 - FrameIndex XZWE T 1 99 - FrameIndex XZWE U 1 100 - FrameIndex XZWE V 1 101 - FrameIndex XZWE W 1 102 - FrameIndex XZWE X 1 103 - FrameIndex XZWE Y 1 104 - FrameIndex XZWE Z 1 105 - FrameIndex XZWF A 1 106 - FrameIndex XZWF B 1 107 - FrameIndex XZWF C 1 108 - FrameIndex XZWF D 1 109 - FrameIndex XZWF E 1 110 - FrameIndex XZWF F 1 111 - // Idle - FrameIndex XZWF G 1 113 - FrameIndex XZWF H 1 114 - FrameIndex XZWF I 1 115 - FrameIndex XZWF J 1 116 - FrameIndex XZWF K 1 117 - FrameIndex XZWF L 1 118 - FrameIndex XZWF M 1 119 - FrameIndex XZWF N 1 120 - FrameIndex XZWF O 1 121 - FrameIndex XZWF P 1 122 - FrameIndex XZWF Q 1 123 - FrameIndex XZWF R 1 124 - FrameIndex XZWF S 1 125 - FrameIndex XZWF T 1 126 - FrameIndex XZWF U 1 127 - FrameIndex XZWF V 1 128 - FrameIndex XZWF W 1 129 - // Melee - FrameIndex XZWF X 1 131 - FrameIndex XZWF Y 1 132 - FrameIndex XZWF Z 1 133 - FrameIndex XZWG A 1 134 - FrameIndex XZWG B 1 135 - FrameIndex XZWG C 1 136 - FrameIndex XZWG D 1 137 - FrameIndex XZWG E 1 138 - FrameIndex XZWG F 1 139 - FrameIndex XZWG G 1 140 - FrameIndex XZWG H 1 141 - FrameIndex XZWG I 1 142 - FrameIndex XZWG J 1 143 - FrameIndex XZWG K 1 144 - FrameIndex XZWG L 1 145 - FrameIndex XZWG M 1 146 - FrameIndex XZWG N 1 147 - FrameIndex XZWG O 1 148 - FrameIndex XZWG P 1 149 - FrameIndex XZWG Q 1 150 - ////// WARHEADS - SurfaceSkin 1 5 "HellblazerAmmo_Nuke.png" - SurfaceSkin 1 6 "" - SurfaceSkin 1 7 "" - SurfaceSkin 1 8 "HellblazerAmmo_Nuke.png" - // Still / Deselect - FrameIndex XZWG R 1 0 - FrameIndex XZWG S 1 1 - FrameIndex XZWG T 1 2 - FrameIndex XZWG U 1 3 - FrameIndex XZWG V 1 4 - FrameIndex XZWG W 1 5 - FrameIndex XZWG X 1 6 - FrameIndex XZWG Y 1 7 - FrameIndex XZWG Z 1 8 // Select - FrameIndex XZWH A 1 9 - FrameIndex XZWH B 1 10 - FrameIndex XZWH C 1 11 - FrameIndex XZWH D 1 12 - FrameIndex XZWH E 1 13 - FrameIndex XZWH F 1 14 - FrameIndex XZWH G 1 15 - // Fire - FrameIndex XZWH H 1 17 - FrameIndex XZWH I 1 18 - FrameIndex XZWH J 1 19 - FrameIndex XZWH K 1 20 - FrameIndex XZWH L 1 21 - FrameIndex XZWH M 1 22 - FrameIndex XZWH N 1 23 - // AltFire - FrameIndex XZWH O 1 25 - FrameIndex XZWH P 1 26 - FrameIndex XZWH Q 1 27 - FrameIndex XZWH R 1 28 - FrameIndex XZWH S 1 29 - FrameIndex XZWH T 1 30 - FrameIndex XZWH U 1 31 - // CycleStart/End - FrameIndex XZWH V 1 33 - // Cycle3 - FrameIndex XZWH W 1 48 - FrameIndex XZWH X 1 49 - FrameIndex XZWH Y 1 50 - FrameIndex XZWH Z 1 51 - FrameIndex XZWI A 1 52 - FrameIndex XZWI B 1 53 - FrameIndex XZWI C 1 54 - FrameIndex XZWI D 1 55 - FrameIndex XZWI E 1 56 - FrameIndex XZWI F 1 57 - // Unload - FrameIndex XZWI G 1 59 - FrameIndex XZWI H 1 60 - FrameIndex XZWI I 1 61 - FrameIndex XZWI J 1 62 - FrameIndex XZWI K 1 63 - FrameIndex XZWI L 1 64 - FrameIndex XZWI M 1 65 - FrameIndex XZWI N 1 66 - FrameIndex XZWI O 1 67 - FrameIndex XZWI P 1 68 - FrameIndex XZWI Q 1 69 - FrameIndex XZWI R 1 70 - FrameIndex XZWI S 1 71 - FrameIndex XZWI T 1 72 - FrameIndex XZWI U 1 73 - FrameIndex XZWI V 1 74 - FrameIndex XZWI W 1 75 - FrameIndex XZWI X 1 76 - FrameIndex XZWI Y 1 77 - FrameIndex XZWI Z 1 78 - FrameIndex XZWJ A 1 79 - FrameIndex XZWJ B 1 80 - FrameIndex XZWJ C 1 81 - FrameIndex XZWJ D 1 82 - FrameIndex XZWJ E 1 83 - FrameIndex XZWJ F 1 84 - // Load - FrameIndex XZWJ G 1 85 - FrameIndex XZWJ H 1 86 - FrameIndex XZWJ I 1 87 - FrameIndex XZWJ J 1 88 - FrameIndex XZWJ K 1 89 - FrameIndex XZWJ L 1 90 - FrameIndex XZWJ M 1 91 - FrameIndex XZWJ N 1 92 - FrameIndex XZWJ O 1 93 - FrameIndex XZWJ P 1 94 - FrameIndex XZWJ Q 1 95 - FrameIndex XZWJ R 1 96 - FrameIndex XZWJ S 1 97 - FrameIndex XZWJ T 1 98 - FrameIndex XZWJ U 1 99 - FrameIndex XZWJ V 1 100 - FrameIndex XZWJ W 1 101 - FrameIndex XZWJ X 1 102 - FrameIndex XZWJ Y 1 103 - FrameIndex XZWJ Z 1 104 - FrameIndex XZWK A 1 105 - FrameIndex XZWK B 1 106 - FrameIndex XZWK C 1 107 - FrameIndex XZWK D 1 108 - FrameIndex XZWK E 1 109 - FrameIndex XZWK F 1 110 - FrameIndex XZWK G 1 111 - // Idle - FrameIndex XZWK H 1 113 - FrameIndex XZWK I 1 114 - FrameIndex XZWK J 1 115 - FrameIndex XZWK K 1 116 - FrameIndex XZWK L 1 117 - FrameIndex XZWK M 1 118 - FrameIndex XZWK N 1 119 - FrameIndex XZWK O 1 120 - FrameIndex XZWK P 1 121 - FrameIndex XZWK Q 1 122 - FrameIndex XZWK R 1 123 - FrameIndex XZWK S 1 124 - FrameIndex XZWK T 1 125 - FrameIndex XZWK U 1 126 - FrameIndex XZWK V 1 127 - FrameIndex XZWK W 1 128 - FrameIndex XZWK X 1 129 - // Melee - FrameIndex XZWK Y 1 131 - FrameIndex XZWK Z 1 132 - FrameIndex XZWL A 1 133 - FrameIndex XZWL B 1 134 - FrameIndex XZWL C 1 135 - FrameIndex XZWL D 1 136 - FrameIndex XZWL E 1 137 - FrameIndex XZWL F 1 138 - FrameIndex XZWL G 1 139 - FrameIndex XZWL H 1 140 - FrameIndex XZWL I 1 141 - FrameIndex XZWL J 1 142 - FrameIndex XZWL K 1 143 - FrameIndex XZWL L 1 144 - FrameIndex XZWL M 1 145 - FrameIndex XZWL N 1 146 - FrameIndex XZWL O 1 147 - FrameIndex XZWL P 1 148 - FrameIndex XZWL Q 1 149 - FrameIndex XZWL R 1 150 // ReloadInter SurfaceSkin 1 5 "" SurfaceSkin 1 6 "" SurfaceSkin 1 7 "" SurfaceSkin 1 8 "" - FrameIndex XZWR J 1 153 - FrameIndex XZWR K 1 154 - FrameIndex XZWR L 1 155 - FrameIndex XZWR M 1 156 - FrameIndex XZWR N 1 157 -}*/ + FrameIndex XZW6 V 1 153 + FrameIndex XZW6 W 1 154 + FrameIndex XZW6 X 1 155 + FrameIndex XZW6 Y 1 156 + FrameIndex XZW6 Z 1 157 +} diff --git a/modeldef.silverbullet b/modeldef.silverbullet index c4a72e45d..cce211ced 100644 --- a/modeldef.silverbullet +++ b/modeldef.silverbullet @@ -18,7 +18,7 @@ Model "SilverBulletMag" Path "models" Model 0 "SilverbulletMag_d.3d" - Skin 0 "SilverbulletAmmo_EmptyMag.png" + Skin 0 "SilverbulletAmmo_Empty.png" Scale 0.2 0.2 0.2 USEACTORPITCH USEACTORROLL diff --git a/zscript/utility/swwm_utility.zsc b/zscript/utility/swwm_utility.zsc index 7e534d0e5..0bdd1d141 100644 --- a/zscript/utility/swwm_utility.zsc +++ b/zscript/utility/swwm_utility.zsc @@ -2246,8 +2246,7 @@ Class SWWMUtility // rocket launcher spawn static Class PickSWWMSlot6() { - return PickPair('Quadravol','Hellblazer'); // temporarily swapped until Hellblazer is re-implemented - //return PickPair('Hellblazer','Quadravol'); + return PickPair('Hellblazer','Quadravol'); } // first plasma rifle spawn static Class PickSWWMSlot7() diff --git a/zscript/weapons/swwm_blazeit.zsc b/zscript/weapons/swwm_blazeit.zsc index 506f18922..9b3aa82c5 100644 --- a/zscript/weapons/swwm_blazeit.zsc +++ b/zscript/weapons/swwm_blazeit.zsc @@ -11,49 +11,12 @@ Class HellblazerX : GhostArtifactX } } -// I'll do this properly in 1.4, for now it's gross-looking -Class HellblazerXSub : GhostArtifactX -{ - Hellblazer weap; - int ridx; - - Default - { - RenderStyle "Normal"; - } - void UpdateMe() - { - if ( !weap.bInitialized ) - { - // not initialized, default to 3 loaded rockets - if ( ridx < 3 ) SetState(SpawnState+1+ridx); - else Setstate(SpawnState); - return; - } - int idx = ridx-weap.magpos; - if ( idx > 5 ) idx -= 6; - else if ( idx < 0 ) idx += 6; - if ( weap.magstate[ridx] ) SetState(SpawnState); - else SetState(SpawnState+1+idx); - } - States - { - Spawn: - TNT1 A -1; - Stop; - Missiles: - XZW1 ABCDEF -1; - Stop; - } -} - Class Hellblazer : SWWMWeapon { int clipcount; bool magstate[6]; // true: rocket was spent int magpos; // current rotation int spinskipped; - HellblazerXSub pickuprockets[6]; int preload; // additional loaded missiles (up to 2) Actor seektarget[3]; int seekcnt; @@ -62,7 +25,7 @@ Class Hellblazer : SWWMWeapon transient ui SWWMProjectionData projdata; ui TextureID LockIcon; - /*override void RenderUnderlay( RenderEvent e ) + override void RenderUnderlay( RenderEvent e ) { Super.RenderUnderlay(e); if ( !LockIcon ) LockIcon = TexMan.CheckForTexture("graphics/HUD/HellblazerMissileLock.png"); @@ -158,9 +121,8 @@ Class Hellblazer : SWWMWeapon A_OverlayRenderStyle(PSP_WEAPON+1,STYLE_Add); } - action state A_JumpX( StateLabel a, StateLabel g, StateLabel o = null ) + action state A_JumpX( StateLabel a, StateLabel g ) { - A_Overlay(-9999,o); A_GlassOverlay(g); return invoker.FindState(a); } @@ -207,7 +169,7 @@ Class Hellblazer : SWWMWeapon int takeamt = invoker.LoadedCapacity()-invoker.clipcount; invoker.clipcount = invoker.LoadedCapacity(); if ( !sv_infiniteammo && !FindInventory('PowerInfiniteAmmo',true) ) - Ammo1.Amount = max(0,Ammo1.Amount-takeamt); + invoker.Ammo1.Amount = max(0,invoker.Ammo1.Amount-takeamt); invoker.magpos = 0; for ( int i=0; i<6; i++ ) invoker.magstate[i] = !(invoker.clipcount > i); @@ -218,7 +180,7 @@ Class Hellblazer : SWWMWeapon { int flg = WRF_ALLOWRELOAD|WRF_ALLOWZOOM|WRF_ALLOWUSER1; // can we fire? - bool canfire = (invoker.clipcount > 0) || (Ammo1.Amount > 0); + bool canfire = (invoker.clipcount > 0) || (invoker.Ammo1.Amount > 0); if ( !canfire ) flg |= WRF_NOPRIMARY|WRF_NOSECONDARY; A_WeaponReady(flg); if ( player.cmd.buttons&(BT_ATTACK|BT_ALTATTACK) ) @@ -235,26 +197,28 @@ Class Hellblazer : SWWMWeapon // do the spin invoker.magpos = (invoker.magpos+invoker.spinskipped)%6; invoker.spinskipped = 0; - }*/ + } action void A_UpdatePickup() { for ( int i=0; i<6; i++ ) { - if ( !invoker.pickuprockets[i] ) + if ( !invoker.bInitialized ) { - invoker.pickuprockets[i] = HellblazerXSub(Spawn("HellblazerXSub",pos)); - invoker.pickuprockets[i].angle = angle; - invoker.pickuprockets[i].target = invoker; - invoker.pickuprockets[i].weap = invoker; - invoker.pickuprockets[i].FloatBobPhase = FloatBobPhase; - invoker.pickuprockets[i].ridx = i; + // not initialized, default to 3 loaded rockets + if ( i < 3 ) A_ChangeModel("",0,"","",6+i,"models","HellblazerMissile.png",CMDL_USESURFACESKIN,-1); + else A_ChangeModel("",0,"","",6+i,"models","",CMDL_USESURFACESKIN,-1); + continue; } - invoker.pickuprockets[i].UpdateMe(); + int idx = i-invoker.magpos; + if ( idx > 5 ) idx -= 6; + else if ( idx < 0 ) idx += 6; + if ( invoker.magstate[i] ) A_ChangeModel("",0,"","",6+idx,"models","",CMDL_USESURFACESKIN,-1); + else A_ChangeModel("",0,"","",6+idx,"models","HellblazerMissile.png",CMDL_USESURFACESKIN,-1); } } - /*action void A_CheckLockOn() + action void A_CheckLockOn() { if ( invoker.seekcnt > invoker.preload ) return; Vector3 x, y, z, x2, y2, z2, dir; @@ -316,7 +280,7 @@ Class Hellblazer : SWWMWeapon invoker.seekcnt++; A_StartSound("hellblazer/lock",CHAN_WEAPON,CHANF_OVERLAP); } - }*/ + } override void PreTravelled() { @@ -393,7 +357,7 @@ Class Hellblazer : SWWMWeapon Spawn: XZW1 A -1 NoDelay A_UpdatePickup(); Stop; - /*Select: + Select: XZW2 I 2 { A_CheckSpinSkip(); @@ -403,7 +367,7 @@ Class Hellblazer : SWWMWeapon XZW2 JKLMNOP 2; Goto Ready; Select_G: - XZWM ABCDEFGH 2; + XZW7 IJKLMNOP 2; Goto Ready_G; Deselect: XZW2 A 2 @@ -415,15 +379,14 @@ Class Hellblazer : SWWMWeapon XZW2 I -1 A_FullLower(); Stop; Deselect_G: - XZWL STUVWXYZ 2; - XZWM A 2; + XZW7 ABCDEFGHI 2; Stop; Ready: XZW2 A 0 A_GlassOverlay("Ready_G"); XZW2 A 1 A_HellblazerReady(); Wait; Ready_G: - XZWL S 1; + XZW7 A 1; Wait; Fire: #### # 0 @@ -434,29 +397,23 @@ Class Hellblazer : SWWMWeapon #### # 1 { if ( invoker.clipcount <= 0 ) - { - A_GlassOverlay("Unload_G"); - return ResolveState("Unload"); - } + return A_JumpX("Unload","Unload_G"); if ( player.cmd.buttons&BT_ATTACK ) { invoker.preloadcnt++; if ( (player.cmd.buttons&BT_ALTATTACK) || ((invoker.clipcount < 2) && (invoker.preloadcnt >= 10)) ) { invoker.preloadcnt = 0; - A_GlassOverlay("Ready_G"); - return ResolveState("PreFire"); + return A_JumpX("PreFire","Ready_G"); } if ( invoker.preloadcnt >= 10 ) { invoker.preloadcnt = 0; - A_GlassOverlay("Ready_G"); - return ResolveState("PreLoad"); + return A_JumpX("PreLoad","Ready_G"); } return ResolveState(null); } - A_GlassOverlay("DoFire_G"); - return ResolveState("DoFire"); + return A_JumpX("DoFire","DoFire_G"); } Wait; DoFire: @@ -469,15 +426,14 @@ Class Hellblazer : SWWMWeapon { invoker.preload--; invoker.spinskipped--; - A_GlassOverlay("DoFire_G"); - return ResolveState("DoFire"); + return A_JumpX("DoFire","DoFire_G"); } return ResolveState(null); } Goto Cycle; DoFire_G: - XZWL S 1; - XZWM IJKLMNO 2; + XZW7 A 1; + XZW7 QRSTUVW 2; Goto Ready_G; // state jump to cycling is done elsewhere AltFire: #### # 0 @@ -488,29 +444,23 @@ Class Hellblazer : SWWMWeapon #### # 1 { if ( invoker.clipcount <= 0 ) - { - A_GlassOverlay("Unload_G"); - return ResolveState("Unload"); - } + return A_JumpX("Unload","Unload_G"); if ( player.cmd.buttons&BT_ALTATTACK ) { invoker.preloadcnt++; if ( (player.cmd.buttons&BT_ATTACK) || ((invoker.clipcount < 2) && (invoker.preloadcnt >= 10)) ) { invoker.preloadcnt = 0; - A_GlassOverlay("Ready_G"); - return ResolveState("PreAltFire"); + return A_JumpX("PreAltFire","Ready_G"); } if ( invoker.preloadcnt >= 10 ) { invoker.preloadcnt = 0; - A_GlassOverlay("Ready_G"); - return ResolveState("PreAltLoad"); + return A_JumpX("PreAltLoad","Ready_G"); } return ResolveState(null); } - A_GlassOverlay("DoAltFire_G"); - return ResolveState("DoAltFire"); + return A_JumpX("DoAltFire","DoAltFire_G"); } Wait; DoAltFire: @@ -524,14 +474,15 @@ Class Hellblazer : SWWMWeapon { invoker.preload--; invoker.spinskipped--; - return A_JumpByAmmoType("AltFire_1","AltFire_2","AltFire_3","AltFire_4","AltFire_G"); + return A_JumpX("AltFire","AltFire_G"); } return ResolveState(null); } Goto Cycle; DoAltFire_G: - XZWL S 1; - XZWM PQRSTUV 2; + XZW7 A 1; + XZW7 XYZ 2; + XZW8 ABCD 2; Goto Ready_G; // state jump to cycling is done elsewhere PreLoad: XZW2 A 10 A_StartSound("hellblazer/preload",CHAN_WEAPON,CHANF_OVERLAP); @@ -548,16 +499,10 @@ Class Hellblazer : SWWMWeapon XZW2 A 1 { if ( !(player.cmd.buttons&BT_ATTACK) ) - { - A_GlassOverlay("DoFire_G"); - return ResolveState("DoFire"); - } + return A_JumpX("DoFire","DoFire_G"); if ( (player.cmd.buttons&BT_ALTATTACK) || (invoker.preload >= min(invoker.clipcount-1,2)) ) - { - A_GlassOverlay("Ready_G"); - return ResolveState("PreFire"); - } - return ResolveState("PreLoad"); + return A_JumpX("PreFire","Ready_G"); + return A_JumpX("PreLoad","Ready_G"); } Wait; PreAltLoad: @@ -575,16 +520,10 @@ Class Hellblazer : SWWMWeapon XZW2 A 1 { if ( !(player.cmd.buttons&BT_ALTATTACK) ) - { - A_GlassOverlay("DoAltFire_G"); - return ResolveState("DoAltFire"); - } + return A_JumpX("DoAltFire","DoAltFire_G"); if ( (player.cmd.buttons&BT_ATTACK) || (invoker.preload >= min(invoker.clipcount-1,2)) ) - { - A_GlassOverlay("Ready_G"); - return ResolveState("PreAltFire"); - } - return ResolveState("PreAltLoad"); + return A_JumpX("PreAltFire","Ready_G"); + return A_JumpX("PreAltLoad","Ready_G"); } Wait; PreFire: @@ -596,10 +535,7 @@ Class Hellblazer : SWWMWeapon XZW2 A 1 { if ( !(player.cmd.buttons&BT_ATTACK) ) - { - A_GlassOverlay("DoFire_G"); - return ResolveState("DoFire"); - } + return A_JumpX("DoFire","DoFire_G"); A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH); if ( (player.cmd.buttons&BT_ZOOM) && !(player.oldbuttons&BT_ZOOM) ) A_CheckLockOn(); @@ -621,10 +557,7 @@ Class Hellblazer : SWWMWeapon XZW2 A 1 { if ( !(player.cmd.buttons&BT_ALTATTACK) ) - { - A_GlassOverlay("DoAltFire_G"); - return ResolveState("DoAltFire"); - } + return A_JumpX("DoAltFire","DoAltFire_G"); A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH); if ( (player.cmd.buttons&BT_ZOOM) && !(player.oldbuttons&BT_ZOOM) ) A_CheckLockOn(); @@ -650,55 +583,53 @@ Class Hellblazer : SWWMWeapon XZW3 FE 2; Goto Ready; Cycle_G: - XZWL S 2 A_StartSound("hellblazer/shift",CHAN_WEAPON,CHANF_OVERLAP); - XZWM W 2; - XZWM X 2 A_StartSound("hellblazer/spin",CHAN_WEAPON,CHANF_OVERLAP); - XZWM YZ 2; - XZWN A 2; - XZWN A 0 A_StartSound("hellblazer/shift",CHAN_WEAPON,CHANF_OVERLAP); - XZWM XW 2; + XZW7 A 2 A_StartSound("hellblazer/shift",CHAN_WEAPON,CHANF_OVERLAP); + XZW8 E 2; + XZW8 F 2 A_StartSound("hellblazer/spin",CHAN_WEAPON,CHANF_OVERLAP); + XZW8 GH 2; + XZW8 I 2; + XZW8 I 0 A_StartSound("hellblazer/shift",CHAN_WEAPON,CHANF_OVERLAP); + XZW8 FE 2; Goto Ready_G; Reload: XZW2 A 2 { if ( invoker.clipcount >= invoker.LoadedCapacity() ) - { - A_GlassOverlay("Zoom_G"); - return ResolveState("Zoom"); - } - A_GlassOverlay("Unload_G"); - return ResolveState("Unload"); + return A_JumpX("Zoom","Zoom_G"); + return A_JumpX("Unload","Unload_G"); } Goto Ready; Unload: XZW2 A 2; XZW3 JKLMNOPQRSTUVWXYZ 2; XZW4 ABCDEFGHIJ 2; - XZWR JKLMN 3; + XZW6 VWXYZ 3; + XZW4 J 0 A_SwapAmmo(); Goto Load; Unload_G: - XZWL S 2 A_StartSound("hellblazer/meleestart",CHAN_WEAPON,CHANF_OVERLAP); - XZWN STU 2; - XZWN V 2 A_StartSound("hellblazer/open",CHAN_WEAPON,CHANF_OVERLAP); - XZWN WXYZ 2; - XZWO ABCDEFGH 2; - XZWO I 2 A_StartSound("hellblazer/magout",CHAN_WEAPON,CHANF_OVERLAP); - XZWO JKLMNOPQRS 2; - XZWR EFGHI 3; + XZW7 A 2 A_StartSound("hellblazer/meleestart",CHAN_WEAPON,CHANF_OVERLAP); + XZW8 JKL 2; + XZW8 M 2 A_StartSound("hellblazer/open",CHAN_WEAPON,CHANF_OVERLAP); + XZW8 NOPQ 2; + XZW8 RSTUVWXY 2; + XZW8 Z 2 A_StartSound("hellblazer/magout",CHAN_WEAPON,CHANF_OVERLAP); + XZW9 ABCDEFGHIJ 2; + XZWB VWXYZ 3; Goto Load_G; Load: XZW4 JKLMNOPQRSTUVWXYZ 2; XZW5 ABCDEFGHIJ 2; Goto Ready; Load_G: - XZWO S 2 A_PlayerReload(); - XZWO TUVWXY 2; - XZWO Z 2 A_StartSound("hellblazer/magin",CHAN_WEAPON,CHANF_OVERLAP); - XZWP ABCDEFG 2; - XZWP H 2 A_StartSound("hellblazer/close",CHAN_WEAPON,CHANF_OVERLAP); - XZWP IJKL 2; - XZWP M 2 A_StartSound("hellblazer/meleestop",CHAN_WEAPON,CHANF_OVERLAP); - XZWP NOPQRS 2; + XZW9 J 2 A_PlayerReload(); + XZW9 KLMNOP 2; + XZW9 Q 2 A_StartSound("hellblazer/magin",CHAN_WEAPON,CHANF_OVERLAP); + XZW9 RSTUVWX 2; + XZW9 Y 2 A_StartSound("hellblazer/close",CHAN_WEAPON,CHANF_OVERLAP); + XZW9 Z 2; + XZWA ABC 2; + XZWA D 2 A_StartSound("hellblazer/meleestop",CHAN_WEAPON,CHANF_OVERLAP); + XZWA EFGHIJ 2; Goto Ready_G; Zoom: XZW2 A 2 A_GlassOverlay("Zoom_G"); @@ -706,15 +637,16 @@ Class Hellblazer : SWWMWeapon XZW6 A 2; Goto Ready; Zoom_G: - XZWL S 2 + XZW7 A 2 { A_StartSound("hellblazer/idle",CHAN_WEAPON,CHANF_OVERLAP); A_PlayerCheckGun(); } - XZWP TUVWX 2; - XZWP Y 2 A_StartSound("hellblazer/dustoff",CHAN_WEAPON,CHANF_OVERLAP); - XZWP Z 2; - XZWQ ABCDEFGHIJ 2; + XZWA KLMNO 2; + XZWA P 2 A_StartSound("hellblazer/dustoff",CHAN_WEAPON,CHANF_OVERLAP); + XZWA Q 2; + XZWA RSTUVWXYZ 2; + XZWB A 2; Goto Ready_G; User1: XZW2 A 2 A_GlassOverlay("User_G"); @@ -724,20 +656,19 @@ Class Hellblazer : SWWMWeapon XZW6 LMNOPQRSTU 2; Goto Ready; User1_G: - XZWL S 2 + XZW7 A 2 { A_StartSound("hellblazer/meleestart",CHAN_WEAPON,CHANF_OVERLAP); A_StartSound("demolitionist/wswing",CHAN_WEAPON,CHANF_OVERLAP); A_PlayerMelee(); } - XZWQ KLM 2; - XZWQ N 2 A_Parry(9); - XZWQ OP 1; - XZWQ Q 1 A_Melee(75,"demolitionist/whitl",1.05,1.2,1.2); - XZWQ RSTUV 2; - XZWQ W 2 A_StartSound("hellblazer/meleeend",CHAN_WEAPON,CHANF_OVERLAP); - XZWQ XYZ 2; - XZWR ABCD 2; - Goto Ready_G;*/ + XZWB BCD 2; + XZWB E 2 A_Parry(9); + XZWB FG 1; + XZWB H 1 A_Melee(75,"demolitionist/whitl",1.05,1.2,1.2); + XZWB IJKLM 2; + XZWB N 2 A_StartSound("hellblazer/meleeend",CHAN_WEAPON,CHANF_OVERLAP); + XZWB OPQRSTU 2; + Goto Ready_G; } } diff --git a/zscript/weapons/swwm_blazeit_fx.zsc b/zscript/weapons/swwm_blazeit_fx.zsc index 365a9bad6..9fe9fbd07 100644 --- a/zscript/weapons/swwm_blazeit_fx.zsc +++ b/zscript/weapons/swwm_blazeit_fx.zsc @@ -151,7 +151,7 @@ Class HellblazerArm : Actor TNT1 A 1 { Spawn("HellblazerArmTrail",pos); - SWWMUtility.DoExplosion(self,5+reactiontime/2,300+50*reactiontime,60+4*reactiontime); + SWWMUtility.DoExplosion(self,12+reactiontime,3000+500*reactiontime,80+10*reactiontime); Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](1,5); let s = Spawn("SWWMHalfSmoke",pos); s.vel = pvel+vel*.2; @@ -358,7 +358,7 @@ Class HellblazerMissile : Actor A_SetRenderStyle(1.0,STYLE_Add); A_SprayDecal("BigRocketBlast",50); A_SetScale(4.5); - SWWMUtility.DoExplosion(self,320,320000,200,90); + SWWMUtility.DoExplosion(self,300,320000,150,100); A_NoGravity(); A_QuakeEx(5,5,5,15,0,1500,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,falloff:500,rollIntensity:.8); A_StopSound(CHAN_BODY); @@ -398,7 +398,7 @@ Class HellblazerMissile : Actor void A_SubExpl( double xscale = 1. ) { - if ( special1 < 8 ) SWWMUtility.DoExplosion(self,80-special1*10,30000-special1*3000,180+special1*15,damagetype:'Fire'); + if ( special1 < 15 ) SWWMUtility.DoExplosion(self,100-special1*5,30000-special1*2000,100+special1*10,damagetype:'Fire'); special1++; if ( (special1 <= 8) && !(special1%2) ) {