1 ACTOR IsQuickKickingFist : Inventory {
3 +Inventory.k8AllowConsoleGive
7 ACTOR Fists : Weapon replaces Fist {
14 Inventory.PickupMessage "Got a nice pair of fists there..."
15 Inventory.PickupSound "none"
17 Weapon.SelectionOrder 13
21 //AttackSound "Weapons/AxeSwing"
22 //Inventory.Icon "AXEIA0"
23 Obituary "%o was beaten to death by %k."
24 // the two following flags turns on "reset 'NoExtremeDeath' if Target has Berserker" k8vavoom hack
30 TNT1 A 0 A_TakeInventory("ZanPerformQuickKick") // just in case
31 //TNT1 A 0 A_TakeInventory("QuickKickRage") -- this will be taken out by the projectile
32 TNT1 A 0 A_TakeInventory("QuickKickDisabled")
35 TNT1 A 1 Offset(10000, 10032) A_WeaponReady
39 stateinclude "QuickKick/QuickKickOnSelectDeselect.txt"
42 A_TakeInventory("IsQuickKickingFist");
43 A_GiveInventory("HoldingFists", 1);
44 if (GetCVarB('k8ZanMod_CustomCrosshairs')) A_SetCrosshair(1);
50 stateinclude "QuickKick/QuickKickOnSelectDeselect.txt"
53 A_TakeInventory("IsQuickKickingFist");
54 A_TakeInventory("HoldingFists", 1);
59 TNT1 A 1 A_Lower(666) // was zero duration
64 TNT1 A 0 A_JumpIfInventory("FistSwinging", 2, "Swing1")
65 TNT1 A 0 A_JumpIfInventory("FistSwinging", 1, "Swing2")
66 TNT1 A 0 A_SetAngle(1.0+angle)
67 WFIF A 1 A_SetPitch(-0.8+pitch)
68 WFIF B 1 //A_PlayWeaponSound("Weapons/AxeSwing")
69 WFIF C 2 A_SetPitch(-0.8+pitch)
72 A_GiveInventory("FistSwinging", 1);
73 A_CustomPunch(3*(IsPlayerRunning() ? random(10, 14) : random(7, 10)), 1, CPF_NOTURN|CPF_SETTRACER,
74 "FistHitPuff", 78, 0, 0, "ArmorBonus", "Weapons/FistsHit", "Weapons/FistsMiss",
75 berserkerMult:(IsPlayerRunning() ? 5 : 4));
76 A_SetAngle(1.0+angle);
77 // if the monster was killed by direct swing, arm Hellclaw
78 if ((IsMonster(AAPTR_TRACER) != 0) && (GetHealth(AAPTR_TRACER) <= 0) && (CountInv("Hellclaw") > 0)) {
79 //A_k8ConLog(va("%C: Killed %C, Health=%s (%s), Master=%C, Target=%C", GetSelf, GetTracer, GetHealth(AAPTR_TRACER), GetSpawnHealth(AAPTR_TRACER), GetMaster, GetTarget));
80 A_GiveInventory("HellEnergy", random(max(4, GetSpawnHealth(AAPTR_TRACER)/20), max(1, GetSpawnHealth(AAPTR_TRACER)/16+6))*(HasBerserk(AAPTR_TARGET) ? 2 : 1));
83 WFIF B 1 A_SetPitch(0.8+pitch)
84 WFIF A 1 A_SetPitch(0.8+pitch)
85 TNT1 A 2 A_WeaponReady
86 TNT1 A 1 A_TakeInventory("FistSwinging", 2)
92 WFIF D 0 A_SetPitch(-0.8+pitch)
93 WFIF E 0 //A_PlayWeaponSound("Weapons/AxeSwing")
96 A_GiveInventory("FistSwinging", 1);
97 A_SetAngle(-1.0+angle);
99 WFIF D 1 A_SetPitch(-0.4+pitch)
100 WFIF E 1 A_SetPitch(-0.4+pitch)
103 A_CustomPunch(3*(IsPlayerRunning() ? random(9, 14) : random(6, 10)), 1, CPF_NOTURN|CPF_SETTRACER,
104 "FistHitPuff", 80, 0, 0, "ArmorBonus", "Weapons/FistsHit", "Weapons/FistsMiss",
105 berserkerMult:(IsPlayerRunning() ? 5 : 4));
106 // if the monster was killed by direct swing, arm Hellclaw
107 if ((IsMonster(AAPTR_TRACER) != 0) && (GetHealth(AAPTR_TRACER) <= 0) && (CountInv("Hellclaw") > 0)) {
108 //A_k8ConLog(va("%C: Killed %C, Health=%s (%s), Master=%C, Target=%C", GetSelf, GetTracer, GetHealth(AAPTR_TRACER), GetSpawnHealth(AAPTR_TRACER), GetMaster, GetTarget));
109 A_GiveInventory("HellEnergy", random(max(4, GetSpawnHealth(AAPTR_TRACER)/20), max(1, GetSpawnHealth(AAPTR_TRACER)/16+6))*(HasBerserk(AAPTR_TARGET) ? 2 : 1));
112 WFIF F 1 A_SetAngle(-1.0+angle)
113 WFIF E 1 A_SetPitch(0.8+pitch)
114 WFIF D 1 A_SetPitch(0.8+pitch)
115 TNT1 A 3 A_WeaponReady
116 TNT1 A 1 A_TakeInventory("FistSwinging", 2)
122 TNT1 A 0 A_SetAngle(1.0+angle)
123 WFIF A 1 A_TakeInventory("FistSwinging", 1)
124 WFIF B 1 A_SetPitch(-0.8+pitch)
125 WFIF C 1 A_SetPitch(-0.8+pitch)
128 A_CustomPunch(3*(IsPlayerRunning() ? random(10, 14) : random(7, 10)), 1, CPF_NOTURN|CPF_SETTRACER,
129 "FistHitPuff", 78, 0, 0, "ArmorBonus", "Weapons/FistsHit", "Weapons/FistsMiss",
130 berserkerMult:(IsPlayerRunning() ? 5 : 4));
131 // if the monster was killed by direct swing, arm Hellclaw
132 if ((IsMonster(AAPTR_TRACER) != 0) && (GetHealth(AAPTR_TRACER) <= 0) && (CountInv("Hellclaw") > 0)) {
133 //A_k8ConLog(va("%C: Killed %C, Health=%s (%s), Master=%C, Target=%C", GetSelf, GetTracer, GetHealth(AAPTR_TRACER), GetSpawnHealth(AAPTR_TRACER), GetMaster, GetTarget));
134 A_GiveInventory("HellEnergy", random(max(4, GetSpawnHealth(AAPTR_TRACER)/20), max(1, GetSpawnHealth(AAPTR_TRACER)/16+6))*(HasBerserk(AAPTR_TARGET) ? 2 : 1));
137 TNT1 A 0 A_SetAngle(1.0+angle)
138 WFIF B 1 A_SetPitch(0.8+pitch)
139 WFIF A 1 A_SetPitch(0.8+pitch)
140 TNT1 A 2 A_WeaponReady
141 TNT1 A 1 A_TakeInventory("FistSwinging", 2)
146 TNT1 A 0 A_JumpIfInventory("QuickKickInProgress", 1, "AltfireCompleteNoTake")
147 TNT1 A 0 A_JumpIfInventory("QuickKickDisabled", 1, "AltfireCompleteNoTake")
148 TNT1 A 0 A_GiveInventory("IsQuickKickingFist")
150 stateinclude "QuickKick/QuickKickIncludeCommon.txt"
151 TNT1 A 0 A_JumpIfInventory("IsQuickKickingFist", 1, "AltfireComplete")
152 Goto DisplayOverlayBack
154 // A_WeaponReady is done in quickkick code
155 TNT1 A 0 A_TakeInventory("IsQuickKickingFist")
157 AltfireCompleteNoTake:
158 TNT1 A 8 A_WeaponReady(WRF_NOSECONDARY)
162 TNT1 A 0 A_JumpIfNotInventory("ZanStartQuickKick", +2)
163 TNT1 A 0 A_GiveInventory("ZanPerformQuickKick")
165 TNT1 A 0 A_JumpIfInventory("ZanPerformQuickKick", 1, "QuickKickReadyFist")
169 TNT1 A 1 A_TakeInventory("ZanPerformQuickKick")
170 TNT1 A 0 A_JumpIfInventory("QuickKickInProgress", 1, "DisplayOverlayBack")
171 TNT1 A 0 A_JumpIfInventory("QuickKickDisabled", 1, "DisplayOverlayBack")
172 TNT1 A 0 A_TakeInventory("IsQuickKickingFist") // just in case
173 Goto AltfireQuickKick
178 ACTOR FistSwinging : Ammo {
179 +INVENTORY.IGNORESKILL
180 Inventory.MaxAmount 2
181 Ammo.BackpackAmount 0
182 Ammo.BackpackMaxAmount 0
187 AttackSound "Weapons/FistsHit"