diff --git a/language.version b/language.version index 7b4487726..cf9abb288 100644 --- a/language.version +++ b/language.version @@ -1,3 +1,3 @@ [default] -SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r294 \cu(Wed 10 Aug 22:54:07 CEST 2022)\c-"; -SWWM_SHORTVER="\cw1.3pre r294 \cu(2022-08-10 22:54:07)\c-"; +SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r295 \cu(Thu 11 Aug 01:54:40 CEST 2022)\c-"; +SWWM_SHORTVER="\cw1.3pre r295 \cu(2022-08-11 01:54:40)\c-"; diff --git a/modeldef.hammer b/modeldef.hammer index 6784abbd4..c9a70de2a 100644 --- a/modeldef.hammer +++ b/modeldef.hammer @@ -11,3 +11,224 @@ Model "ItamexHammer" FrameIndex XZW1 A 0 0 } + +Model "ItamexHammer" +{ + Path "models" + + Model 1 "CombatHammer1st_d.3d" + SurfaceSkin 1 0 "DemoTags.png" + SurfaceSkin 1 1 "DemoArms.png" + SurfaceSkin 1 2 "DemoSoft.png" + SurfaceSkin 1 3 "CombatHammer.png" + + AngleOffset -90 + Scale -0.01 0.005 0.01 + + // Still + FrameIndex XZW2 A 1 0 + // Deselect + FrameIndex XZW2 B 1 1 + FrameIndex XZW2 C 1 2 + FrameIndex XZW2 D 1 3 + FrameIndex XZW2 E 1 4 + FrameIndex XZW2 F 1 5 + FrameIndex XZW2 G 1 6 + FrameIndex XZW2 H 1 7 + FrameIndex XZW2 I 1 8 // Select + FrameIndex XZW2 J 1 9 + FrameIndex XZW2 K 1 10 + FrameIndex XZW2 L 1 11 + FrameIndex XZW2 M 1 12 + FrameIndex XZW2 N 1 13 + FrameIndex XZW2 O 1 14 + FrameIndex XZW2 P 1 15 + FrameIndex XZW2 Q 1 16 + FrameIndex XZW2 R 1 17 + FrameIndex XZW2 S 1 18 + FrameIndex XZW2 T 1 19 + // Swing + FrameIndex XZW2 U 1 20 + FrameIndex XZW2 V 1 21 + FrameIndex XZW2 W 1 22 + FrameIndex XZW2 X 1 23 + FrameIndex XZW2 Y 1 24 + FrameIndex XZW2 Z 1 25 + FrameIndex XZW3 A 1 26 + FrameIndex XZW3 B 1 27 + FrameIndex XZW3 C 1 28 + FrameIndex XZW3 D 1 29 + FrameIndex XZW3 E 1 30 + FrameIndex XZW3 F 1 31 // Melee / HitStop + FrameIndex XZW3 G 1 32 + FrameIndex XZW3 H 1 33 + FrameIndex XZW3 I 1 34 + FrameIndex XZW3 J 1 35 + FrameIndex XZW3 K 1 36 + FrameIndex XZW3 L 1 37 + FrameIndex XZW3 M 1 38 + FrameIndex XZW3 N 1 39 + FrameIndex XZW3 O 1 40 + FrameIndex XZW3 P 1 41 + FrameIndex XZW3 Q 1 42 + FrameIndex XZW3 R 1 43 + // SwingHit (jump from HitStop) + FrameIndex XZW3 S 1 46 + FrameIndex XZW3 T 1 47 + FrameIndex XZW3 U 1 48 + FrameIndex XZW3 V 1 49 + FrameIndex XZW3 W 1 50 + FrameIndex XZW3 X 1 51 + FrameIndex XZW3 Y 1 52 + FrameIndex XZW3 Z 1 53 + FrameIndex XZW4 A 1 54 + FrameIndex XZW4 B 1 55 + FrameIndex XZW4 C 1 56 + // AltPrepare + FrameIndex XZW4 D 1 58 + FrameIndex XZW4 E 1 59 + FrameIndex XZW4 F 1 60 + FrameIndex XZW4 G 1 61 + FrameIndex XZW4 H 1 62 + FrameIndex XZW4 I 1 63 + FrameIndex XZW4 J 1 64 + FrameIndex XZW4 K 1 65 + FrameIndex XZW4 L 1 66 + FrameIndex XZW4 M 1 67 + FrameIndex XZW4 N 1 68 + FrameIndex XZW4 O 1 69 + FrameIndex XZW4 P 1 70 + FrameIndex XZW4 Q 1 71 + FrameIndex XZW4 R 1 72 + FrameIndex XZW4 S 1 73 + FrameIndex XZW4 T 1 74 + FrameIndex XZW4 U 1 75 + // AltHold + FrameIndex XZW4 V 1 76 + // AltRelease + FrameIndex XZW4 W 1 77 + FrameIndex XZW4 X 1 78 + FrameIndex XZW4 Y 1 79 + FrameIndex XZW4 Z 1 80 + FrameIndex XZW5 A 1 81 + FrameIndex XZW5 B 1 82 + FrameIndex XZW5 C 1 83 + FrameIndex XZW5 D 1 84 + FrameIndex XZW5 E 1 85 + FrameIndex XZW5 F 1 86 + FrameIndex XZW5 G 1 87 + FrameIndex XZW5 H 1 88 + FrameIndex XZW5 I 1 89 + FrameIndex XZW5 J 1 90 + FrameIndex XZW5 K 1 91 + FrameIndex XZW5 L 1 92 + FrameIndex XZW5 M 1 93 + FrameIndex XZW5 N 1 94 + FrameIndex XZW5 O 1 95 + FrameIndex XZW5 P 1 96 + FrameIndex XZW5 Q 1 97 + FrameIndex XZW5 R 1 98 + FrameIndex XZW5 S 1 99 + FrameIndex XZW5 T 1 100 + FrameIndex XZW5 U 1 101 + FrameIndex XZW5 V 1 102 + FrameIndex XZW5 W 1 103 + // StartSpin + FrameIndex XZW5 X 1 105 + FrameIndex XZW5 Y 1 106 + FrameIndex XZW5 Z 1 107 + FrameIndex XZW6 A 1 108 + FrameIndex XZW6 B 1 109 + FrameIndex XZW6 C 1 110 + FrameIndex XZW6 D 1 111 + FrameIndex XZW6 E 1 112 + FrameIndex XZW6 F 1 113 + // SpinHold + FrameIndex XZW6 G 1 114 + // SpinRelease + FrameIndex XZW6 H 1 115 + FrameIndex XZW6 I 1 116 + FrameIndex XZW6 J 1 117 + FrameIndex XZW6 K 1 118 + FrameIndex XZW6 L 1 119 + FrameIndex XZW6 M 1 120 + FrameIndex XZW6 N 1 121 + FrameIndex XZW6 O 1 122 + FrameIndex XZW6 P 1 123 + FrameIndex XZW6 Q 1 124 + FrameIndex XZW6 R 1 125 + FrameIndex XZW6 S 1 126 + FrameIndex XZW6 T 1 127 + FrameIndex XZW6 U 1 128 + FrameIndex XZW6 V 1 129 + FrameIndex XZW6 W 1 130 + // Idle + FrameIndex XZW6 X 1 132 + FrameIndex XZW6 Y 1 133 + FrameIndex XZW6 Z 1 134 + FrameIndex XZW7 A 1 135 + FrameIndex XZW7 B 1 136 + FrameIndex XZW7 C 1 137 + FrameIndex XZW7 D 1 138 + FrameIndex XZW7 E 1 139 + FrameIndex XZW7 F 1 140 + FrameIndex XZW7 G 1 141 + FrameIndex XZW7 H 1 142 + FrameIndex XZW7 I 1 143 + FrameIndex XZW7 J 1 144 + FrameIndex XZW7 K 1 145 + FrameIndex XZW7 L 1 146 + FrameIndex XZW7 M 1 147 + FrameIndex XZW7 N 1 148 + FrameIndex XZW7 O 1 149 + FrameIndex XZW7 P 1 150 + FrameIndex XZW7 Q 1 151 + FrameIndex XZW7 R 1 152 + FrameIndex XZW7 S 1 153 + FrameIndex XZW7 T 1 154 + FrameIndex XZW7 U 1 155 + FrameIndex XZW7 V 1 156 + FrameIndex XZW7 W 1 157 + FrameIndex XZW7 X 1 158 + FrameIndex XZW7 Y 1 159 + FrameIndex XZW7 Z 1 160 + FrameIndex XZW8 A 1 161 + FrameIndex XZW8 B 1 162 + FrameIndex XZW8 C 1 163 + FrameIndex XZW8 D 1 164 + FrameIndex XZW8 E 1 165 + FrameIndex XZW8 F 1 166 + FrameIndex XZW8 G 1 167 + FrameIndex XZW8 H 1 168 + FrameIndex XZW8 I 1 169 + // Melee + FrameIndex XZW8 J 1 171 // MeleeStart + FrameIndex XZW8 K 1 172 + FrameIndex XZW8 L 1 173 + FrameIndex XZW8 M 1 174 + FrameIndex XZW8 N 1 175 + FrameIndex XZW8 O 1 176 + FrameIndex XZW8 P 1 177 + FrameIndex XZW8 Q 1 178 + FrameIndex XZW8 R 1 179 // Parry + FrameIndex XZW8 S 1 180 + FrameIndex XZW8 T 1 181 // Melee + FrameIndex XZW8 U 1 182 + FrameIndex XZW8 V 1 183 + FrameIndex XZW8 W 1 184 + FrameIndex XZW8 X 1 185 + FrameIndex XZW8 Y 1 186 + FrameIndex XZW8 Z 1 187 + FrameIndex XZW9 A 1 188 + FrameIndex XZW9 B 1 189 + FrameIndex XZW9 C 1 190 + FrameIndex XZW9 D 1 191 // MeleeEnd + FrameIndex XZW9 E 1 192 + FrameIndex XZW9 F 1 193 + FrameIndex XZW9 G 1 194 + FrameIndex XZW9 H 1 195 + FrameIndex XZW9 I 1 196 + FrameIndex XZW9 J 1 197 + FrameIndex XZW9 K 1 198 + FrameIndex XZW9 L 1 199 +} diff --git a/models/CombatHammer1st.blend b/models/CombatHammer1st.blend index f63f9aeae..f5ef49e53 100644 Binary files a/models/CombatHammer1st.blend and b/models/CombatHammer1st.blend differ diff --git a/models/CombatHammer1st_a.3d b/models/CombatHammer1st_a.3d new file mode 100644 index 000000000..383230787 Binary files /dev/null and b/models/CombatHammer1st_a.3d differ diff --git a/models/CombatHammer1st_d.3d b/models/CombatHammer1st_d.3d new file mode 100644 index 000000000..6852eab1b Binary files /dev/null and b/models/CombatHammer1st_d.3d differ diff --git a/sounds/dlc1/hammer/itamex_deselect.ogg b/sounds/dlc1/hammer/itamex_deselect.ogg index a06819bda..ab1c6f7f4 100644 Binary files a/sounds/dlc1/hammer/itamex_deselect.ogg and b/sounds/dlc1/hammer/itamex_deselect.ogg differ diff --git a/sounds/dlc1/hammer/itamex_drop.ogg b/sounds/dlc1/hammer/itamex_drop.ogg index b94a93484..157e2d986 100644 Binary files a/sounds/dlc1/hammer/itamex_drop.ogg and b/sounds/dlc1/hammer/itamex_drop.ogg differ diff --git a/sounds/dlc1/hammer/itamex_hit1.ogg b/sounds/dlc1/hammer/itamex_hit1.ogg index 735e19e27..77fab810c 100644 Binary files a/sounds/dlc1/hammer/itamex_hit1.ogg and b/sounds/dlc1/hammer/itamex_hit1.ogg differ diff --git a/sounds/dlc1/hammer/itamex_hit2.ogg b/sounds/dlc1/hammer/itamex_hit2.ogg index 291788433..dbc73f867 100644 Binary files a/sounds/dlc1/hammer/itamex_hit2.ogg and b/sounds/dlc1/hammer/itamex_hit2.ogg differ diff --git a/sounds/dlc1/hammer/itamex_hit3.ogg b/sounds/dlc1/hammer/itamex_hit3.ogg index b7f5873ea..b4f8ef932 100644 Binary files a/sounds/dlc1/hammer/itamex_hit3.ogg and b/sounds/dlc1/hammer/itamex_hit3.ogg differ diff --git a/sounds/dlc1/hammer/itamex_hitf1.ogg b/sounds/dlc1/hammer/itamex_hitf1.ogg index 1b34d12d5..e8074ae98 100644 Binary files a/sounds/dlc1/hammer/itamex_hitf1.ogg and b/sounds/dlc1/hammer/itamex_hitf1.ogg differ diff --git a/sounds/dlc1/hammer/itamex_hitf2.ogg b/sounds/dlc1/hammer/itamex_hitf2.ogg index 57d76423d..6adf3c338 100644 Binary files a/sounds/dlc1/hammer/itamex_hitf2.ogg and b/sounds/dlc1/hammer/itamex_hitf2.ogg differ diff --git a/sounds/dlc1/hammer/itamex_hitf3.ogg b/sounds/dlc1/hammer/itamex_hitf3.ogg index 541a5473a..ef0b9634a 100644 Binary files a/sounds/dlc1/hammer/itamex_hitf3.ogg and b/sounds/dlc1/hammer/itamex_hitf3.ogg differ diff --git a/sounds/dlc1/hammer/itamex_meleeend.ogg b/sounds/dlc1/hammer/itamex_meleeend.ogg index e3aa91b1c..cf5bed16d 100644 Binary files a/sounds/dlc1/hammer/itamex_meleeend.ogg and b/sounds/dlc1/hammer/itamex_meleeend.ogg differ diff --git a/sounds/dlc1/hammer/itamex_meleestart.ogg b/sounds/dlc1/hammer/itamex_meleestart.ogg index 1f9b76731..bbd99630c 100644 Binary files a/sounds/dlc1/hammer/itamex_meleestart.ogg and b/sounds/dlc1/hammer/itamex_meleestart.ogg differ diff --git a/sounds/dlc1/hammer/itamex_select.ogg b/sounds/dlc1/hammer/itamex_select.ogg index 78b09ce2c..747a9daf8 100644 Binary files a/sounds/dlc1/hammer/itamex_select.ogg and b/sounds/dlc1/hammer/itamex_select.ogg differ diff --git a/sounds/dlc1/hammer/itamex_swing1.ogg b/sounds/dlc1/hammer/itamex_swing1.ogg index e996720ce..c4b00cf04 100644 Binary files a/sounds/dlc1/hammer/itamex_swing1.ogg and b/sounds/dlc1/hammer/itamex_swing1.ogg differ diff --git a/sounds/dlc1/hammer/itamex_swing2.ogg b/sounds/dlc1/hammer/itamex_swing2.ogg index 2345de6f9..b670d7caf 100644 Binary files a/sounds/dlc1/hammer/itamex_swing2.ogg and b/sounds/dlc1/hammer/itamex_swing2.ogg differ diff --git a/sounds/dlc1/hammer/itamex_swing3.ogg b/sounds/dlc1/hammer/itamex_swing3.ogg index 74fb9b1ab..eb6ba5afe 100644 Binary files a/sounds/dlc1/hammer/itamex_swing3.ogg and b/sounds/dlc1/hammer/itamex_swing3.ogg differ diff --git a/zscript/dlc1/swwm_hammertime.zsc b/zscript/dlc1/swwm_hammertime.zsc index fe447feb7..4fbd7b9de 100644 --- a/zscript/dlc1/swwm_hammertime.zsc +++ b/zscript/dlc1/swwm_hammertime.zsc @@ -3,6 +3,25 @@ Class ItamexHammer : SWWMWeapon { + double charge; + + action State A_HammerHit() + { + Vector3 x, y, z; + [x, y, z] = swwm_CoordUtil.GetAxes(pitch,angle,roll); + SWWMUtility.DoKnockback(self,x,120000.); + if ( A_Melee(100,"itamex/hit",1.5,1.1,2.,MELEE_Rip|MELEE_FleshSound) ) + { + A_BumpFOV(.9); + A_QuakeEx(5,5,5,20,0,1,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.35); + A_AlertMonsters(swwm_uncapalert?0:800); + return ResolveState("FireHit"); + } + A_BumpFOV(.95); + A_QuakeEx(1,1,1,15,0,1,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.1); + return ResolveState(null); + } + Default { Tag "$T_HAMMER"; @@ -13,6 +32,7 @@ Class ItamexHammer : SWWMWeapon Weapon.SlotNumber 1; Weapon.SlotPriority 2.; Weapon.SelectionOrder 1200; + Weapon.UpSound "itamex/select"; Stamina 9000; +WEAPON.MELEEWEAPON; Radius 8; @@ -23,5 +43,42 @@ Class ItamexHammer : SWWMWeapon Spawn: XZW1 A -1; Stop; + Select: + XZW2 I 3 A_FullRaise(); + XZW2 JK 3; + XZW2 LMNO 2; + XZW2 PQRST 3; + Goto Ready; + Ready: + XZW2 A 1 A_WeaponReady(); + Wait; + Fire: + XZW2 A 2 A_StartSound("itamex/meleestart",CHAN_WEAPON,CHANF_OVERLAP); + XZW2 UVWXYZ 1; + XZW3 A 1 + { + A_StartSound("itamex/swing",CHAN_WEAPON,CHANF_OVERLAP); + A_PlayerMelee(); + } + XZW3 BCDE 1; + XZW3 F 1 A_HammerHit(); + XZW3 GHIJK 2; + XZW3 L 2 A_StartSound("itamex/meleeend",CHAN_WEAPON,CHANF_OVERLAP); + XZW3 MNOPQR 2; + Goto Ready; + FireHit: + XZW3 FF 2; + XZW3 STU 2; + XZW3 VWXYZ 1; + XZW4 A 2; + XZW4 B 2 A_StartSound("itamex/meleeend",CHAN_WEAPON,CHANF_OVERLAP,starttime:.42); + XZW4 C 2; + Goto Ready; + Deselect: + XZW2 A 3 A_StartSound("itamex/deselect",CHAN_WEAPON,CHANF_OVERLAP); + XZW2 BCD 3; + XZW2 EFGHI 2; + XZW2 J -1 A_FullLower(); + Stop; } }