1 ACTOR IsDraining : Inventory {
4 Inventory.InterHubAmount 0
15 ACTOR HellclawDrainKilled : Inventory {
23 ACTOR BearzerkHellclaw {
35 ACTOR HellEnergy : Ammo {
37 Inventory.MaxAmount 150
38 Ammo.BackpackAmount 60
39 Ammo.BackpackMaxAmount 360
40 Inventory.Icon "WHELB0"
50 ACTOR Hellclaw : Weapon replaces SuperShotgun {
54 +INVENTORY.UNDROPPABLE
56 //+WEAPON.NO_AUTO_SWITCH
58 //+WEAPON.ALT_USES_BOTH
59 Inventory.PickupMessage "Got a Hellclaw."
60 Inventory.PickupSound "Weapons/HellclawPick"
61 Inventory.Icon "WHELA0"
63 Weapon.SelectionOrder 4
64 //Weapon.MinSelectionAmmo1 0
65 //Weapon.MinSelectionAmmo2 0
66 Weapon.AmmoType1 "HellEnergy"
69 Weapon.AmmoType2 "none"
72 Weapon.SlotNumber 1 // was 4
73 Weapon.SlotPriority 0.5
81 stateinclude "QuickKick/QuickKickOnSelectDeselect.txt"
82 TNT1 A 0 A_GiveInventory("HoldingFists", 1)
83 TNT1 A 0 { if (GetCVarB('k8ZanMod_CustomCrosshairs')) A_SetCrosshair(13); }
88 stateinclude "QuickKick/QuickKickOnSelectDeselect.txt"
89 TNT1 A 0 A_TakeInventory("IsDraining", 1)
90 WHER A 1 Offset(-15, 40)
91 WHER A 1 Offset(-30, 50)
92 WHER A 1 Offset(-50, 65)
93 WHER A 1 Offset(-70, 80)
97 TNT1 A 0 A_TakeInventory("HoldingFists", 1)
103 TNT1 A 0 A_PlaySound("Weapons/HellclawReady", CHAN_WEAPON)
104 WHER A 1 Offset(-70, 80)
105 WHER A 1 Offset(-50, 65)
106 WHER A 1 Offset(-30, 50)
107 WHER A 1 Offset(-15, 40)
108 TNT1 A 0 A_TakeInventory("QuickKickDisabled")
112 WHER AAAA 17 A_WeaponReady(WRF_ALLOWRELOAD) // was one 70
113 WHER BCB 2 A_WeaponReady(WRF_NOFIRE)
114 WHER AA 17 A_WeaponReady(WRF_ALLOWRELOAD)
115 WHER B 4 A_WeaponReady(WRF_NOFIRE)
116 WHER AAAAAA 17 A_WeaponReady(WRF_ALLOWRELOAD) // was one 105
117 WHER BCB 2 A_WeaponReady(WRF_NOFIRE)
118 WHER A 16 A_WeaponReady(WRF_ALLOWRELOAD)
119 WHER B 4 A_WeaponReady(WRF_NOFIRE)
123 TNT1 A 0 A_JumpIfNoAmmo("Reload")
124 TNT1 A 0 A_JumpIfInventory("IsDraining", 1, "Reload")
127 A_PlaySound("Weapons/HellclawFire", CHAN_WEAPON);
128 A_SetPitch(-1.0+pitch);
134 A_SetPitch(-0.15+pitch);
135 A_PlaySound("Weapons/HellclawFire", CHAN_WEAPON);
138 //k8: do not horizontally ofsset spike shots, i want them to go through the crosshair
141 A_FireProjectile("HellBall", frandom(-0.5, 0.5), 1, /*5*/random(-1, 1), 0, FPF_NOAUTOAIM, frandom(-0.5, 0.5));
143 A_SetPitch(0.15+pitch);
145 WHEF D 2 A_AlertMonsters
146 TNT1 A 0 A_Refire("Firing")
147 TNT1 A 0 A_SetPitch(1.0+pitch)
148 WHEF CBA 3 A_WeaponReady
152 TNT1 A 0 A_JumpIfNoAmmo("Reload")
155 A_SetPitch(-0.15+pitch);
156 A_PlaySound("Weapons/HellclawFire", CHAN_WEAPON);
159 //k8: do not horizontally ofsset spike shots, i want them to go through the crosshair
162 A_FireProjectile("HellBall", frandom(-1.1, 1.1), 1, /*5*/random(-1, 1), 0, FPF_NOAUTOAIM, frandom(-1.1, 1.1));
164 A_SetPitch(0.15+pitch);
166 WHEF D 2 A_AlertMonsters
167 TNT1 A 0 A_Refire("Firing")
168 TNT1 A 0 A_SetPitch(1.0+pitch)
169 WHEF CBA 3 A_WeaponReady
173 TNT1 A 0 A_JumpIfInventory("IsDraining", 1, "Reload")
174 TNT1 A 0 A_JumpIf(CountInv("HellEnergy") < 10, "Reload")
177 A_k8ConLog(va("PITCH: %s; crouch=%s", pitch, GetCrouchFactor()));
178 // if Zan is crouching, and looking down, just plant a mine
179 if (pitch >= 20 && pitch <= 90 && GetCrouchFactor() <= 0.5) {
180 A_Jump(256, "LayMine");
182 A_PlaySound("Weapons/HellclawAltFire", CHAN_WEAPON);
183 A_AlertMonsters(128);
184 A_SetPitch(0.6+pitch);
190 A_SetPitch(0.6+pitch);
191 A_SetAngle(-1.0+angle);
194 TNT1 A 0 A_SetPitch(0.6+pitch)
198 A_SetPitch(0.6+pitch);
199 A_SetAngle(-1.0+angle);
202 TNT1 A 0 A_SetPitch(0.6+pitch)
207 A_SetPitch(0.6+pitch);
208 A_SetAngle(-1.0+angle);
214 A_SetPitch(-1.2+pitch);
215 A_SetAngle(1.0+angle);
220 A_SetPitch(-1.2+pitch);
221 A_SetAngle(1.0+angle);
222 //k8: do not horizontally ofsset spike shots, i want them to go through the crosshair
223 A_FireProjectile("HellMine", 0, 1, /*5*/random(-1, 1), -5, FPF_NOAUTOAIM, -10);
224 A_TakeInventory("HellEnergy", 10);
229 A_SetPitch(-1.2+pitch);
230 A_SetAngle(1.0+angle);
234 WHER A 8 A_WeaponReady(WRF_NOSECONDARY)
245 //A_k8ConLog(va("PITCH: %s; ofs=%s", pitch, 20*cos(pitch)));
246 A_SpawnItemEx("HellMineArmed", 40*cos(pitch), 0, 0, 0, 0, 0, 0, SXF_ORIGINATOR/*SXF_NOPOINTERS*/);
247 A_TakeInventory("HellEnergy", 10);
256 WHER A 8 A_WeaponReady(WRF_NOSECONDARY)
269 A_GiveInventory("IsDraining", 1);
270 A_PlaySound("Weapons/HellclawReload", CHAN_WEAPON);
271 A_SetPitch(-0.5+pitch);
276 A_SetPitch(-0.5+pitch);
282 A_SetPitch(0.5+pitch);
283 A_AlertMonsters(640);
284 A_CustomPunch(Random(20, 30), 1, CPF_PULLIN|CPF_SETTRACER, "HellclawPuff", 80, berserkerMult:6);
285 if (IsMonster(AAPTR_TRACER) && GetHealth(AAPTR_TRACER) <= 0) {
286 //A_k8ConLog(va("%C: Clawed %C, Health=%s (%s); hgt=%s (%s)", GetSelf, GetTracer, GetHealth(AAPTR_TRACER), GetSpawnHealth(AAPTR_TRACER), GetHeight(AAPTR_TRACER), GetDefaultHeight(AAPTR_TRACER)));
287 //A_GiveInventory("HellclawDrainKilled", 1, AAPTR_TRACER);
288 A_SpawnItemEx("HellEnergyGiver", 0, 0, max(6, GetDefaultHeight(AAPTR_TRACER)-6), 0, 0, 0, 0, SXF_NOCHECKPOSITION);
292 TNT1 A 0 A_SetPitch(0.5+pitch)
293 WHEF O 3 A_WeaponReady(WRF_ALLOWRELOAD)
294 WHEF N 3 A_TakeInventory("IsDraining", 1)
298 stateinclude "QuickKick/QuickKickInclude.txt"
309 ProjectileKickBack 40
310 Damage (3*random(8, 8))
311 DamageType "Hellclaw"
318 DeathSound "Projectile/HellBallDeath"
319 Obituary "%o was torn apart by %k's hell ball."
320 Decal "HellBallDecal"
341 Damage (1*random(15, 20))
342 DamageType "PoxBlunt"
344 ProjectileKickBack 150
360 WallBounceFactor 0.20
362 BounceSound "HellMine/Bounce"
363 //SeeSound "Weapons/FlameShot"
364 DeathSound "HellMine/Arm"
365 Obituary "%o got smacked by %k."
371 TNT1 A 0 A_AlertMonsters(320)
378 A_SpawnItemEx("HellMineArmed", 0, 0, 0, 0, 0, 0, 0, SXF_NOCHECKPOSITION, 0);
385 ACTOR HellMineArmed {
393 DamageFactor "Aggro", 0.0
394 DamageFactor "Drowning", 0.0
395 DamageFactor "Fire", 0.0
396 DamageFactor "Lava", 0.0
397 DamageFactor "Toxic", 0.0
398 DamageFactor "PoxToxic", 0.0
399 DamageFactor "ForcePull", 0.0
421 DeathSound "HellMine/Burst"
422 Obituary "%o was torn apart by a Hell Mine."
430 TNT1 A 0 A_PlaySound("HellMine/Ping", CHAN_AUTO, 0.4, 0, 3)
431 PHEM FFFFFF 1 Bright Light("ZanHellMineFlicker") A_Chase
432 TNT1 A 0 A_ClearTarget
433 PHEM GGGGGGGGGG 1 Bright Light("ZanHellMineFlicker") A_Chase
434 TNT1 A 0 A_ClearTarget
435 PHEM GGGGGGGGGG 1 Bright Light("ZanHellMineFlicker") A_Chase
436 TNT1 A 0 A_ClearTarget
440 PHEM F 1 Bright Light("ZanHellMineFlicker") A_Die
445 TNT1 A 0 A_AlertMonsters(1200)
446 PHEM E 1 Bright Light("ZanHellBallShot") A_ChangeVelocity(0, 0, 12, CVF_REPLACE)
447 TNT1 A 0 A_SpawnItemEx("DustPuffLarge", 0, 0, 0, 0, 0, 0, 0, SXF_NOCHECKPOSITION, 0)
448 PHEM E 12 Bright Light("ZanHellBallShot")
451 A_ChangeFlag("NOTONAUTOMAP", 1);
452 if (IsPlayer(AAPTR_TARGET)) {
453 A_Explode(150, 192, (GetCVarB('k8ZanMod_DamageSelfHellMine') ? XF_HURTSOURCE : 0), True, 160, 0, 0, " ", "Crushbow");
454 A_Explode(80, 192, (GetCVarB('k8ZanMod_DamageSelfHellMine') ? XF_HURTSOURCE : 0), True, 160, 0, 0, " ", "Hellclaw");
456 // here, `Target` is activator, and it's not a player
457 A_Explode(150, 192, XF_HURTSOURCE, True, 160, 0, 0, " ", "Crushbow");
458 A_Explode(80, 192, XF_HURTSOURCE, True, 160, 0, 0, " ", "Hellclaw");
460 A_JumpIf(WaterLevel>0, "WaterDeath");
461 A_SpawnItemEx("ExplosionLargeRed", 0, 0, 0, 0, 0, 0, 0, SXF_NOCHECKPOSITION, 0);
462 A_SpawnItemEx("HellclawBloodCloud", 0, 0, -15, 3, 3, random(-2, 2), 0, SXF_NOCHECKPOSITION, 0);
463 A_SpawnItemEx("HellclawBloodCloud", 0, 0, -15, -3, -3, random(-2, 2), 0, SXF_NOCHECKPOSITION, 0);
464 A_SpawnItemEx("HellclawBloodCloud", 0, 0, -15, 3, -3, random(-2, 2), 0, SXF_NOCHECKPOSITION, 0);
465 A_SpawnItemEx("HellclawBloodCloud", 0, 0, -15, -3, 3, random(-2, 2), 0, SXF_NOCHECKPOSITION, 0);
467 TNT1 A 30 A_Quake(3, 30, 0, 1200)
471 TNT1 AAAAAAAAAAAAAAA 0 A_SpawnItemEx("UnderwaterBubble", 0, 0, 0, random(-5, 5), random(-5, 5), random(1, 4), 0, SXF_NOCHECKPOSITION, 0)
477 ACTOR HellclawBloodCloud {
493 BCLO A 1 A_FadeOut(0.04, FTF_REMOVE)
494 TNT1 A 0 A_SetScale(scaleX+0.04, scaleY+0.04)
503 DamageType "HellclawDrain"
521 ACTOR HellEnergyGiver {
524 Renderstyle "Translucent"
525 DamageFactor "Aggro", 0.0
535 //ProjectileKickBack 0
561 DeathSound "Projectile/HellBallDeath"
570 PHEB BBCCDDAA 1 A_LookEx(0, 0, 0, 0, 360)
574 //TNT1 A 0 A_JumpIfInTargetInventory("HellclawDrainKilled", 1, "ClearTarget")
575 PHEB CCDDAABB 1 A_Chase
580 //TNT1 A 0 A_k8ConLog(va("%C: HellGiver Ignored %C, Health=%s (%s)", GetSelf, GetTarget, GetHealth(AAPTR_TARGET), GetSpawnHealth(AAPTR_TARGET)))
581 TNT1 A 0 A_ClearTarget
586 //TNT1 A 0 A_k8ConLog(va("%C: Draining %C, Health=%s (%s); hgt=%s (%s)", GetSelf, GetTarget, GetHealth(AAPTR_TARGET), GetSpawnHealth(AAPTR_TARGET), GetHeight(AAPTR_TARGET), GetDefaultHeight(AAPTR_TARGET)))
588 //TNT1 A 0 A_GiveInventory("HellEnergy", random(max(1, GetSpawnHealth(AAPTR_TRACER)/18), max(1, GetSpawnHealth(AAPTR_TRACER)/14+6)), AAPTR_TARGET)
591 local int amnt = random(max(2, GetHealth(AAPTR_TARGET)/18), max(1, GetHealth(AAPTR_TARGET)/14+6));
592 // give some Hell Energy
593 A_RadiusGive("HellEnergy", 128.0, RGF_PLAYERS, amnt);
595 A_DamageTarget(amnt, "HellclawDrain", DMSS_NOPROTECT, __default, src:AAPTR_NULL, inflict:AAPTR_NULL);
597 A_RadiusGive("__rgf_heal__", 128.0, RGF_PLAYERS, amnt); // "__rgf_overheal__"?
611 Actor (optional) Zan_GauntletsHellclaw : Hellclaw Replaces Gauntlets {}
612 Actor (optional) Zan_GauntletsPoweredHellclaw : Hellclaw Replaces GauntletsPowered {}
614 Actor (optional) Zan_TPH_TPHShotgun : Hellclaw Replaces TPHShotgun {} //SSG