ACTOR HereticWeapon : Weapon { Weapon.Kickback 150 } // Staff -------------------------------------------------------------------- ACTOR Staff : HereticWeapon { Weapon.SelectionOrder 3800 +THRUGHOST +WIMPY_WEAPON +MELEEWEAPON Weapon.sisterweapon "StaffPowered" Obituary "$OB_MPSTAFF" Tag "$TAG_STAFF" action native A_StaffAttack (int damage, class<Actor> puff); States { Ready: STFF A 1 A_WeaponReady Loop Deselect: STFF A 1 A_Lower Loop Select: STFF A 1 A_Raise Loop Fire: STFF B 6 STFF C 8 A_StaffAttack(random[StaffAttack](5, 20), "StaffPuff") STFF B 8 A_ReFire Goto Ready } } ACTOR StaffPowered : Staff { Weapon.sisterweapon "Staff" Weapon.ReadySound "weapons/staffcrackle" +WEAPON.POWERED_UP +WEAPON.READYSNDHALF +WEAPON.STAFF2_KICKBACK Obituary "$OB_MPPSTAFF" Tag "$TAG_STAFFP" States { Ready: STFF DEF 4 A_WeaponReady Loop Deselect: STFF D 1 A_Lower Loop Select: STFF D 1 A_Raise Loop Fire: STFF G 6 STFF H 8 A_StaffAttack(random[StaffAttack](18, 81), "StaffPuff2") STFF G 8 A_ReFire Goto Ready } } // Staff puff --------------------------------------------------------------- ACTOR StaffPuff { RenderStyle Translucent Alpha 0.4 VSpeed 1 +NOBLOCKMAP +NOGRAVITY +PUFFONACTORS AttackSound "weapons/staffhit" States { Spawn: PUF3 A 4 BRIGHT PUF3 BCD 4 Stop } } // Staff puff 2 ------------------------------------------------------------- ACTOR StaffPuff2 { RenderStyle Add +NOBLOCKMAP +NOGRAVITY +PUFFONACTORS AttackSound "weapons/staffpowerhit" States { Spawn: PUF4 ABCDEF 4 BRIGHT Stop } } // Gold wand ---------------------------------------------------------------- ACTOR GoldWand : HereticWeapon { +BLOODSPLATTER Weapon.SelectionOrder 2000 Weapon.AmmoGive 25 Weapon.AmmoUse 1 Weapon.AmmoType "GoldWandAmmo" Weapon.SisterWeapon "GoldWandPowered" Weapon.YAdjust 5 Inventory.PickupMessage "$TXT_WPNGOLDWAND" Obituary "$OB_MPGOLDWAND" Tag "$TAG_GOLDWAND" action native A_FireGoldWandPL1 (); States { Spawn: GWAN A -1 Stop Ready: GWND A 1 A_WeaponReady Loop Deselect: GWND A 1 A_Lower Loop Select: GWND A 1 A_Raise Loop Fire: GWND B 3 GWND C 5 A_FireGoldWandPL1 GWND D 3 GWND D 0 A_ReFire Goto Ready } } ACTOR GoldWandPowered : GoldWand { +WEAPON.POWERED_UP Weapon.AmmoGive 0 Weapon.SisterWeapon "GoldWand" Obituary "$OB_MPPGOLDWAND" Tag "$TAG_GOLDWANDP" action native A_FireGoldWandPL2 (); States { Fire: GWND B 3 GWND C 4 A_FireGoldWandPL2 GWND D 3 GWND D 0 A_ReFire Goto Ready } } // Gold wand FX1 ------------------------------------------------------------ ACTOR GoldWandFX1 { Radius 10 Height 6 Speed 22 Damage 2 Projectile RenderStyle Add DeathSound "weapons/wandhit" Obituary "$OB_MPPGOLDWAND" States { Spawn: FX01 AB 6 BRIGHT Loop Death: FX01 EFGH 3 BRIGHT Stop } } // Gold wand FX2 ------------------------------------------------------------ ACTOR GoldWandFX2 : GoldWandFX1 { Speed 18 Damage 1 DeathSound "" States { Spawn: FX01 CD 6 BRIGHT Loop } } // Gold wand puff 1 --------------------------------------------------------- ACTOR GoldWandPuff1 { +NOBLOCKMAP +NOGRAVITY +PUFFONACTORS RenderStyle Add States { Spawn: PUF2 ABCDE 3 BRIGHT Stop } } // Gold wand puff 2 --------------------------------------------------------- ACTOR GoldWandPuff2 : GoldWandFX1 { Skip_Super +NOBLOCKMAP +NOGRAVITY +PUFFONACTORS States { Spawn: Goto Super::Death } } // Crossbow ----------------------------------------------------------------- ACTOR Crossbow : HereticWeapon { Weapon.SelectionOrder 800 Weapon.AmmoUse 1 Weapon.AmmoGive 10 Weapon.AmmoType "CrossbowAmmo" Weapon.SisterWeapon "CrossbowPowered" Weapon.YAdjust 15 Inventory.PickupMessage "$TXT_WPNCROSSBOW" Tag "$TAG_CROSSBOW" action native A_FireCrossbowPL1 (); States { Spawn: WBOW A -1 Stop Ready: CRBW AAAAAABBBBBBCCCCCC 1 A_WeaponReady Loop Deselect: CRBW A 1 A_Lower Loop Select: CRBW A 1 A_Raise Loop Fire: CRBW D 6 A_FireCrossbowPL1 CRBW EFGH 3 CRBW AB 4 CRBW C 5 A_ReFire Goto Ready } } ACTOR CrossbowPowered : Crossbow { +WEAPON.POWERED_UP Weapon.AmmoGive 0 Weapon.SisterWeapon "Crossbow" Tag "$TAG_CROSSBOWP" action native A_FireCrossbowPL2(); States { Fire: CRBW D 5 A_FireCrossbowPL2 CRBW E 3 CRBW F 2 CRBW G 3 CRBW H 2 CRBW A 3 CRBW B 3 CRBW C 4 A_ReFire Goto Ready } } // Crossbow FX1 ------------------------------------------------------------- ACTOR CrossbowFX1 { Radius 11 Height 8 Speed 30 Damage 10 Projectile RenderStyle Add SeeSound "weapons/bowshoot" DeathSound "weapons/bowhit" Obituary "$OB_MPCROSSBOW" States { Spawn: FX03 B 1 BRIGHT Loop Death: FX03 HIJ 8 BRIGHT Stop } } // Crossbow FX2 ------------------------------------------------------------- ACTOR CrossbowFX2 : CrossbowFX1 { Speed 32 Damage 6 Obituary "$OB_MPPCROSSBOW" States { Spawn: FX03 B 1 BRIGHT A_SpawnItemEx("CrossbowFX4", random2[BoltSpark]()*0.015625, random2[BoltSpark]()*0.015625, 0, 0,0,0,0,SXF_ABSOLUTEPOSITION, 50) Loop } } // Crossbow FX3 ------------------------------------------------------------- ACTOR CrossbowFX3 : CrossbowFX1 { Speed 20 Damage 2 SeeSound "" -NOBLOCKMAP +WINDTHRUST +THRUGHOST States { Spawn: FX03 A 1 BRIGHT Loop Death: FX03 CDE 8 BRIGHT Stop } } // Crossbow FX4 ------------------------------------------------------------- ACTOR CrossbowFX4 { +NOBLOCKMAP Gravity 0.125 RenderStyle Add States { Spawn: FX03 FG 8 BRIGHT Stop } } // Gauntlets ---------------------------------------------------------------- ACTOR Gauntlets : Weapon { +BLOODSPLATTER Weapon.SelectionOrder 2300 +WEAPON.WIMPY_WEAPON +WEAPON.MELEEWEAPON Weapon.Kickback 0 Weapon.YAdjust 15 Weapon.UpSound "weapons/gauntletsactivate" Weapon.SisterWeapon "GauntletsPowered" Inventory.PickupMessage "$TXT_WPNGAUNTLETS" Tag "$TAG_GAUNTLETS" Obituary "$OB_MPGAUNTLETS" action native A_GauntletAttack (int power); States { Spawn: WGNT A -1 Stop Ready: GAUN A 1 A_WeaponReady Loop Deselect: GAUN A 1 A_Lower Loop Select: GAUN A 1 A_Raise Loop Fire: GAUN B 4 A_PlayWeaponSound("weapons/gauntletsuse") GAUN C 4 Hold: GAUN DEF 4 BRIGHT A_GauntletAttack(0) GAUN C 4 A_ReFire GAUN B 4 A_Light0 Goto Ready } } ACTOR GauntletsPowered : Gauntlets { +POWERED_UP Tag "$TAG_GAUNTLETSP" Obituary "$OB_MPPGAUNTLETS" Weapon.SisterWeapon "Gauntlets" States { Ready: GAUN GHI 4 A_WeaponReady Loop Deselect: GAUN G 1 A_Lower Loop Select: GAUN G 1 A_Raise Loop Fire: GAUN J 4 A_PlayWeaponSound("weapons/gauntletsuse") GAUN K 4 Hold: GAUN LMN 4 BRIGHT A_GauntletAttack(1) GAUN K 4 A_ReFire GAUN J 4 A_Light0 Goto Ready } } // Gauntlet puff 1 ---------------------------------------------------------- ACTOR GauntletPuff1 { +NOBLOCKMAP +NOGRAVITY +PUFFONACTORS RenderStyle Translucent Alpha 0.4 VSpeed 0.8 States { Spawn: PUF1 ABCD 4 BRIGHT Stop } } // Gauntlet puff 2 --------------------------------------------------------- ACTOR GauntletPuff2 : GauntletPuff1 { States { Spawn: PUF1 EFGH 4 BRIGHT Stop } } // The mace itself ---------------------------------------------------------- ACTOR Mace : HereticWeapon { Weapon.SelectionOrder 1400 Weapon.AmmoUse 1 Weapon.AmmoGive1 50 Weapon.YAdjust 15 Weapon.AmmoType "MaceAmmo" Weapon.SisterWeapon "MacePowered" Inventory.PickupMessage "$TXT_WPNMACE" Tag "$TAG_MACE" action native A_FireMacePL1(); States { Spawn: WMCE A -1 Stop Ready: MACE A 1 A_WeaponReady Loop Deselect: MACE A 1 A_Lower Loop Select: MACE A 1 A_Raise Loop Fire: MACE B 4 Hold: MACE CDEF 3 A_FireMacePL1 MACE C 4 A_ReFire MACE DEFB 4 Goto Ready } } ACTOR MacePowered : Mace { +WEAPON.POWERED_UP Weapon.AmmoUse 5 Weapon.AmmoGive 0 Weapon.SisterWeapon "Mace" Tag "$TAG_MACEP" action native A_FireMacePL2(); States { Fire: Hold: MACE B 4 MACE D 4 A_FireMacePL2 MACE B 4 MACE A 8 A_ReFire Goto Ready } } // Mace FX1 ----------------------------------------------------------------- ACTOR MaceFX1 { Radius 8 Height 6 Speed 20 Damage 2 Projectile +THRUGHOST BounceType "HereticCompat" SeeSound "weapons/maceshoot" Obituary "$OB_MPMACE" action native A_MacePL1Check(); action native A_MaceBallImpact(); States { Spawn: FX02 AB 4 A_MacePL1Check Loop Death: FX02 F 4 BRIGHT A_MaceBallImpact FX02 GHIJ 4 BRIGHT Stop } } // Mace FX2 ----------------------------------------------------------------- ACTOR MaceFX2 : MaceFX1 { Speed 10 Damage 6 Gravity 0.125 -NOGRAVITY SeeSound "" action native A_MaceBallImpact2(); States { Spawn: FX02 CD 4 Loop Death: FX02 F 4 A_MaceBallImpact2 goto Super::Death+1 } } // Mace FX3 ----------------------------------------------------------------- ACTOR MaceFX3 : MaceFX1 { Speed 7 Damage 4 -NOGRAVITY Gravity 0.125 States { Spawn: FX02 AB 4 Loop } } // Mace FX4 ----------------------------------------------------------------- ACTOR MaceFX4 native { Radius 8 Height 6 Speed 7 Damage 18 Gravity 0.125 Projectile -NOGRAVITY +TELESTOMP +THRUGHOST -NOTELEPORT BounceType "HereticCompat" SeeSound "" Obituary "$OB_MPPMACE" action native A_DeathBallImpact(); States { Spawn: FX02 E 99 Loop Death: FX02 C 4 A_DeathBallImpact FX02 GHIJ 4 BRIGHT Stop } } // Mace spawn spot ---------------------------------------------------------- ACTOR MaceSpawner : SpecialSpot { +NOSECTOR +NOBLOCKMAP States { Spawn: TNT1 A 1 TNT1 A -1 A_SpawnSingleItem("Mace", 64, 64, 0) Stop } } // Blaster ------------------------------------------------------------------ ACTOR Blaster : HereticWeapon { +BLOODSPLATTER Weapon.SelectionOrder 500 Weapon.AmmoUse 1 Weapon.AmmoGive 30 Weapon.YAdjust 15 Weapon.AmmoType "BlasterAmmo" Weapon.SisterWeapon "BlasterPowered" Inventory.PickupMessage "$TXT_WPNBLASTER" Tag "$TAG_BLASTER" Obituary "$OB_MPBLASTER" action native A_FireBlasterPL1(); States { Spawn: WBLS A -1 Stop Ready: BLSR A 1 A_WeaponReady Loop Deselect: BLSR A 1 A_Lower Loop Select: BLSR A 1 A_Raise Loop Fire: BLSR BC 3 Hold: BLSR D 2 A_FireBlasterPL1 BLSR CB 2 BLSR A 0 A_ReFire Goto Ready } } ACTOR BlasterPowered : Blaster { +WEAPON.POWERED_UP Weapon.AmmoUse 5 Weapon.AmmoGive 0 Weapon.SisterWeapon "Blaster" Tag "$TAG_BLASTERP" States { Fire: BLSR BC 0 Hold: BLSR D 3 A_FireCustomMissile("BlasterFX1") BLSR CB 4 BLSR A 0 A_ReFire Goto Ready } } // Blaster FX 1 ------------------------------------------------------------- ACTOR BlasterFX1 : FastProjectile native { Radius 12 Height 8 Speed 184 Damage 2 SeeSound "weapons/blastershoot" DeathSound "weapons/blasterhit" +SPAWNSOUNDSOURCE Obituary "$OB_MPPBLASTER" action native A_SpawnRippers(); States { Spawn: ACLO E 200 Loop Death: FX18 A 3 BRIGHT A_SpawnRippers FX18 B 3 BRIGHT FX18 CDEFG 4 BRIGHT Stop } } // Blaster smoke ------------------------------------------------------------ ACTOR BlasterSmoke { +NOBLOCKMAP +NOGRAVITY +NOTELEPORT +CANNOTPUSH RenderStyle Translucent Alpha 0.4 States { Spawn: FX18 HIJKL 4 Stop } } // Ripper ------------------------------------------------------------------- ACTOR Ripper native { Radius 8 Height 6 Speed 14 Damage 1 Projectile +RIPPER DeathSound "weapons/blasterpowhit" Obituary "$OB_MPPBLASTER" States { Spawn: FX18 M 4 FX18 N 5 Loop Death: FX18 OPQRS 4 BRIGHT Stop } } // Blaster Puff ------------------------------------------------------------- ACTOR BlasterPuff { +NOBLOCKMAP +NOGRAVITY +PUFFONACTORS RenderStyle Add SeeSound "weapons/blasterhit" States { Crash: FX17 ABCDE 4 BRIGHT Stop Spawn: FX17 FG 3 BRIGHT FX17 HIJKL 4 BRIGHT Stop } } // Skull (Horn) Rod --------------------------------------------------------- ACTOR SkullRod : HereticWeapon { Weapon.SelectionOrder 200 Weapon.AmmoUse1 1 Weapon.AmmoGive1 50 Weapon.YAdjust 15 Weapon.AmmoType1 "SkullRodAmmo" Weapon.SisterWeapon "SkullRodPowered" Inventory.PickupMessage "$TXT_WPNSKULLROD" Tag "$TAG_SKULLROD" action native A_FireSkullRodPL1(); States { Spawn: WSKL A -1 Stop Ready: HROD A 1 A_WeaponReady Loop Deselect: HROD A 1 A_Lower Loop Select: HROD A 1 A_Raise Loop Fire: HROD AB 4 A_FireSkullRodPL1 HROD B 0 A_ReFire Goto Ready } } ACTOR SkullRodPowered : SkullRod { +WEAPON.POWERED_UP Weapon.AmmoUse1 5 Weapon.AmmoGive1 0 Weapon.SisterWeapon "SkullRod" Tag "$TAG_SKULLRODP" action native A_FireSkullRodPL2(); States { Fire: HROD C 2 HROD D 3 HROD E 2 HROD F 3 HROD G 4 A_FireSkullRodPL2 HROD F 2 HROD E 3 HROD D 2 HROD C 2 A_ReFire Goto Ready } } // Horn Rod FX 1 ------------------------------------------------------------ ACTOR HornRodFX1 { Radius 12 Height 8 Speed 22 Damage 3 Projectile +WINDTHRUST -NOBLOCKMAP RenderStyle Add SeeSound "weapons/hornrodshoot" DeathSound "weapons/hornrodhit" Obituary "$OB_MPSKULLROD" States { Spawn: FX00 AB 6 BRIGHT Loop Death: FX00 HI 5 BRIGHT FX00 JK 4 BRIGHT FX00 LM 3 BRIGHT Stop } } // Horn Rod FX 2 ------------------------------------------------------------ ACTOR HornRodFX2 native { Radius 12 Height 8 Speed 22 Damage 10 Health 140 Projectile RenderStyle Add SeeSound "weapons/hornrodpowshoot" DeathSound "weapons/hornrodpowhit" Obituary "$OB_MPPSKULLROD" action native A_AddPlayerRain(); action native A_HideInCeiling(); action native A_SkullRodStorm(); States { Spawn: FX00 C 3 BRIGHT FX00 D 3 BRIGHT A_SeekerMissile(10, 30) FX00 E 3 BRIGHT FX00 F 3 BRIGHT A_SeekerMissile(10, 30) Loop Death: FX00 H 5 BRIGHT A_AddPlayerRain FX00 I 5 BRIGHT FX00 J 4 BRIGHT FX00 KLM 3 BRIGHT FX00 G 1 A_HideInCeiling FX00 G 1 A_SkullRodStorm Wait } } // Rain pillar 1 ------------------------------------------------------------ ACTOR RainPillar native { Radius 5 Height 12 Speed 12 Damage 5 Mass 5 Projectile -ACTIVATEPCROSS -ACTIVATEIMPACT RenderStyle Add Obituary "$OB_MPPSKULLROD" action native A_RainImpact(); States { Spawn: FX22 A -1 BRIGHT Stop Death: FX22 B 4 BRIGHT A_RainImpact FX22 CDEF 4 BRIGHT Stop NotFloor: FX22 GHI 4 BRIGHT Stop } } // Rain tracker "inventory" item -------------------------------------------- ACTOR RainTracker : Inventory native { +INVENTORY.UNDROPPABLE } // Phoenix Rod -------------------------------------------------------------- ACTOR PhoenixRod : Weapon native { +WEAPON.NOAUTOFIRE Weapon.SelectionOrder 2600 Weapon.Kickback 150 Weapon.YAdjust 15 Weapon.AmmoUse 1 Weapon.AmmoGive 2 Weapon.AmmoType "PhoenixRodAmmo" Weapon.Sisterweapon "PhoenixRodPowered" Inventory.PickupMessage "$TXT_WPNPHOENIxROD" Tag "$TAG_PHOENIxROD" action native A_FirePhoenixPL1(); States { Spawn: WPHX A -1 Stop Ready: PHNX A 1 A_WeaponReady Loop Deselect: PHNX A 1 A_Lower Loop Select: PHNX A 1 A_Raise Loop Fire: PHNX B 5 PHNX C 7 A_FirePhoenixPL1 PHNX DB 4 PHNX B 0 A_ReFire Goto Ready } } ACTOR PhoenixRodPowered : PhoenixRod native { +WEAPON.POWERED_UP +WEAPON.MELEEWEAPON Weapon.SisterWeapon "PhoenixRod" Weapon.AmmoGive 0 Tag "$TAG_PHOENIxRODP" action native A_InitPhoenixPL2(); action native A_FirePhoenixPL2(); action native A_ShutdownPhoenixPL2(); States { Fire: PHNX B 3 A_InitPhoenixPL2 Hold: PHNX C 1 A_FirePhoenixPL2 PHNX B 4 A_ReFire Powerdown: PHNX B 4 A_ShutdownPhoenixPL2 Goto Ready } } // Phoenix FX 1 ------------------------------------------------------------- ACTOR PhoenixFX1 native { Radius 11 Height 8 Speed 20 Damage 20 DamageType Fire Projectile +THRUGHOST +SPECIALFIREDAMAGE SeeSound "weapons/phoenixshoot" DeathSound "weapons/phoenixhit" Obituary "$OB_MPPHOENIXROD" action native A_PhoenixPuff(); States { Spawn: FX04 A 4 BRIGHT A_PhoenixPuff Loop Death: FX08 A 6 BRIGHT A_Explode FX08 BC 5 BRIGHT FX08 DEFGH 4 BRIGHT Stop } } // Phoenix puff ------------------------------------------------------------- ACTOR PhoenixPuff { +NOBLOCKMAP +NOGRAVITY +NOTELEPORT +CANNOTPUSH RenderStyle Translucent Alpha 0.4 States { Spawn: FX04 BCDEF 4 Stop } } // Phoenix FX 2 ------------------------------------------------------------- ACTOR PhoenixFX2 native { Radius 6 Height 8 Speed 10 Damage 2 DamageType Fire Projectile RenderStyle Add Obituary "$OB_MPPPHOENIXROD" action native A_FlameEnd(); action native A_FloatPuff(); States { Spawn: FX09 ABABA 2 BRIGHT FX09 B 2 BRIGHT A_FlameEnd FX09 CDEF 2 BRIGHT Stop Death: FX09 G 3 BRIGHT FX09 H 3 BRIGHT A_FloatPuff FX09 I 4 BRIGHT FX09 JK 5 BRIGHT Stop } }