// ========================================== // 1. THE IMPMON CLAWS WEAPON // ========================================== ACTOR ImpmonClaws : Weapon replaces Fist { // These properties define how the weapon behaves in the inventory Radius 20 Height 16 Weapon.SelectionOrder 1900 Weapon.SlotNumber 1 +WEAPON.MELEEWEAPON States { Ready: IMPF A 4 A_WeaponReady IMPF B 4 A_WeaponReady IMPF C 4 A_WeaponReady IMPF D 4 A_WeaponReady IMPF E 4 A_WeaponReady IMPF F 4 A_WeaponReady IMPF G 4 A_WeaponReady IMPF H 4 A_WeaponReady IMPF I 4 A_WeaponReady IMPF J 4 A_WeaponReady IMPF K 4 A_WeaponReady IMPF L 4 A_WeaponReady IMPF M 4 A_WeaponReady Loop Deselect: IMPF A 1 A_Lower Loop Select: IMPF A 1 A_Raise Loop Fire: IMPA A 2 // If the player has Berserk (PowerStrength), jump to the Berserk version IMPA A 0 A_JumpIfInventory("PowerStrength", 1, "FireBerserk") // ===== NORMAL FIRST PUNCH ===== IMPA B 2 IMPA C 2 IMPA D 2 IMPA E 2 A_Recoil(-3) IMPA F 2 A_CustomPunch(20, TRUE) // 20 Normal Damage IMPA G 2 // ===== NORMAL SECOND PUNCH ===== IMPA H 2 IMPA I 2 IMPA J 2 IMPA K 2 IMPA L 2 A_Recoil(-3) IMPA M 2 A_CustomPunch(20, TRUE) // 20 Normal Damage IMPA N 2 Goto Ready FireBerserk: // ===== BERSERK FIRST PUNCH ===== IMPA B 2 IMPA C 2 IMPA D 2 IMPA E 2 A_Recoil(-3) IMPA F 2 A_CustomPunch(200, TRUE) // 200 Berserk Damage! IMPA G 2 // ===== BERSERK SECOND PUNCH ===== IMPA H 2 IMPA I 2 IMPA J 2 IMPA K 2 IMPA L 2 A_Recoil(-3) IMPA M 2 A_CustomPunch(200, TRUE) // 200 Berserk Damage! IMPA N 2 Goto Ready AltFire: // ===== THE CHARGE / WIND-UP ===== IMPL A 3 IMPL B 3 IMPL C 3 IMPL D 3 // ===== THE LEAP (Zandronum-Compatible Arc) ===== IMPL E 4 A_ChangeVelocity(16, 0, 8, 1) // Check for Berserk mid-air before landing the slash IMPL E 0 A_JumpIfInventory("PowerStrength", 1, "AltFireBerserk") // ===== NORMAL SLASH WINDOW ===== IMPL F 2 A_CustomPunch(40, TRUE) IMPL G 2 A_CustomPunch(40, TRUE) Goto AltFireEnd AltFireBerserk: // ===== BERSERK SLASH WINDOW ===== IMPL F 2 A_CustomPunch(400, TRUE) // 400 Berserk Damage! IMPL G 2 A_CustomPunch(400, TRUE) // 400 Berserk Damage! Goto AltFireEnd AltFireEnd: // ===== COOL DOWN / LANDING ===== IMPL H 3 IMPL I 4 Goto Ready } } ACTOR ImpmonPlayer : DoomPlayer { Player.StartItem "ImpmonClaws" Player.WeaponSlot 1, "ImpmonClaws" }