diff --git a/src/scripting/codegeneration/codegen.cpp b/src/scripting/codegeneration/codegen.cpp index d7a3a56b0..f56735797 100644 --- a/src/scripting/codegeneration/codegen.cpp +++ b/src/scripting/codegeneration/codegen.cpp @@ -4297,7 +4297,6 @@ FxExpression *FxFunctionCall::Resolve(FCompileContext& ctx) // Note that for all builtins the used arguments have to be nulled in the ArgList so that they won't get deleted before they get used. FxExpression *func = nullptr; - Printf("Resolving %s with %d args\n", MethodName.GetChars(), ArgList->Size()); switch (MethodName) { case NAME_Random: diff --git a/wadsrc/static/actors/heretic/beast.txt b/wadsrc/static/actors/heretic/beast.txt deleted file mode 100644 index 73eb630ec..000000000 --- a/wadsrc/static/actors/heretic/beast.txt +++ /dev/null @@ -1,109 +0,0 @@ - -// Beast -------------------------------------------------------------------- - -ACTOR Beast -{ - Health 220 - Radius 32 - Height 74 - Mass 200 - Speed 14 - Painchance 100 - Monster - +FLOORCLIP - SeeSound "beast/sight" - AttackSound "beast/attack" - PainSound "beast/pain" - DeathSound "beast/death" - ActiveSound "beast/active" - Obituary "$OB_BEAST" - DropItem "CrossbowAmmo", 84, 10 - States - { - Spawn: - BEAS AB 10 A_Look - Loop - See: - BEAS ABCDEF 3 A_Chase - Loop - Missile: - BEAS H 10 A_FaceTarget - BEAS I 10 A_CustomComboAttack("BeastBall", 32, random[BeastAttack](1,8)*3, "beast/attack") - Goto See - Pain: - BEAS G 3 - BEAS G 3 A_Pain - Goto See - Death: - BEAS R 6 - BEAS S 6 A_Scream - BEAS TUV 6 - BEAS W 6 A_NoBlocking - BEAS XY 6 - BEAS Z -1 - Stop - XDeath: - BEAS J 5 - BEAS K 6 A_Scream - BEAS L 5 - BEAS M 6 - BEAS N 5 - BEAS O 6 A_NoBlocking - BEAS P 5 - BEAS Q -1 - Stop - } -} - -// Beast ball --------------------------------------------------------------- - -ACTOR BeastBall -{ - Radius 9 - Height 8 - Speed 12 - FastSpeed 20 - Damage 4 - Projectile - -ACTIVATEIMPACT - -ACTIVATEPCROSS - -NOBLOCKMAP - +WINDTHRUST - +SPAWNSOUNDSOURCE - RenderStyle Add - SeeSound "beast/attack" - States - { - Spawn: - FRB1 AABBCC 2 A_SpawnItemEx("Puffy", random2[BeastPuff]()*0.015625, random2[BeastPuff]()*0.015625, random2[BeastPuff]()*0.015625, - 0,0,0,0,SXF_ABSOLUTEPOSITION, 64) - Loop - Death: - FRB1 DEFGH 4 - Stop - } -} - -// Puffy -------------------------------------------------------------------- - -ACTOR Puffy -{ - Radius 6 - Height 8 - Speed 10 - +NOBLOCKMAP - +NOGRAVITY - +MISSILE - +NOTELEPORT - +DONTSPLASH - RenderStyle Add - States - { - Spawn: - FRB1 DEFGH 4 - Stop - } -} - - - diff --git a/wadsrc/static/actors/heretic/clink.txt b/wadsrc/static/actors/heretic/clink.txt deleted file mode 100644 index 7f3e4370d..000000000 --- a/wadsrc/static/actors/heretic/clink.txt +++ /dev/null @@ -1,46 +0,0 @@ - -ACTOR Clink -{ - Health 150 - Radius 20 - Height 64 - Mass 75 - Speed 14 - Painchance 32 - Monster - +NOBLOOD - +FLOORCLIP - SeeSound "clink/sight" - AttackSound "clink/attack" - PainSound "clink/pain" - DeathSound "clink/death" - ActiveSound "clink/active" - Obituary "$OB_CLINK" - DropItem "SkullRodAmmo", 84, 20 - States - { - Spawn: - CLNK AB 10 A_Look - Loop - See: - CLNK ABCD 3 A_Chase - Loop - Melee: - CLNK E 5 A_FaceTarget - CLNK F 4 A_FaceTarget - CLNK G 7 A_CustomMeleeAttack(random[ClinkAttack](3,9), "clink/attack", "clink/attack") - Goto See - Pain: - CLNK H 3 - CLNK H 3 A_Pain - Goto See - Death: - CLNK IJ 6 - CLNK K 5 A_Scream - CLNK L 5 A_NoBlocking - CLNK MN 5 - CLNK O -1 - Stop - } -} - diff --git a/wadsrc/static/actors/heretic/hereticimp.txt b/wadsrc/static/actors/heretic/hereticimp.txt deleted file mode 100644 index fdbdeb9b7..000000000 --- a/wadsrc/static/actors/heretic/hereticimp.txt +++ /dev/null @@ -1,156 +0,0 @@ - -// Heretic imp (as opposed to the Doom variety) ----------------------------- - -ACTOR HereticImp -{ - Health 40 - Radius 16 - Height 36 - Mass 50 - Speed 10 - Painchance 200 - Monster - +FLOAT - +NOGRAVITY - +SPAWNFLOAT - +DONTOVERLAP - +MISSILEMORE - SeeSound "himp/sight" - AttackSound "himp/attack" - PainSound "himp/pain" - DeathSound "himp/death" - ActiveSound "himp/active" - Obituary "$OB_HERETICIMP" - HitObituary "$OB_HERETICIMPHIT" - - action native A_ImpMsAttack(); - action native A_ImpDeath(); - action native A_ImpXDeath1(); - action native A_ImpExplode(); - - - States - { - Spawn: - IMPX ABCB 10 A_Look - Loop - See: - IMPX AABBCCBB 3 A_Chase - Loop - Melee: - IMPX DE 6 A_FaceTarget - IMPX F 6 A_CustomMeleeAttack(random[ImpMeAttack](5,12), "himp/attack", "himp/attack") - Goto See - Missile: - IMPX A 10 A_FaceTarget - IMPX B 6 A_ImpMsAttack - IMPX CBAB 6 - Goto Missile+2 - Pain: - IMPX G 3 - IMPX G 3 A_Pain - Goto See - Death: - IMPX G 4 A_ImpDeath - IMPX H 5 - Wait - XDeath: - IMPX S 5 A_ImpXDeath1 - IMPX TU 5 - IMPX V 5 A_Gravity - IMPX W 5 - Wait - Crash: - IMPX I 7 A_ImpExplode - IMPX J 7 A_Scream - IMPX K 7 - IMPX L -1 - Stop - XCrash: - IMPX X 7 - IMPX Y 7 - IMPX Z -1 - Stop - } -} - -// Heretic imp leader ------------------------------------------------------- - -ACTOR HereticImpLeader : HereticImp -{ - Species "HereticImpLeader" - Health 80 - -MISSILEMORE - AttackSound "himp/leaderattack" - States - { - Melee: - Stop - Missile: - IMPX DE 6 A_FaceTarget - IMPX F 6 A_CustomComboAttack("HereticImpBall", 32, random[ImpMsAttack2](5,12), "himp/leaderattack") - Goto See - } -} - -// Heretic imp chunk 1 ------------------------------------------------------ - -ACTOR HereticImpChunk1 -{ - Mass 5 - Radius 4 - +NOBLOCKMAP - +MOVEWITHSECTOR - States - { - Spawn: - IMPX M 5 - IMPX NO 700 - Stop - } -} - -// Heretic imp chunk 2 ------------------------------------------------------ - -ACTOR HereticImpChunk2 -{ - Mass 5 - Radius 4 - +NOBLOCKMAP - +MOVEWITHSECTOR - States - { - Spawn: - IMPX P 5 - IMPX QR 700 - Stop - } -} - -// Heretic imp ball --------------------------------------------------------- - -ACTOR HereticImpBall -{ - Radius 8 - Height 8 - Speed 10 - FastSpeed 20 - Damage 1 - Projectile - SeeSound "himp/leaderattack" - +SPAWNSOUNDSOURCE - -ACTIVATEPCROSS - -ACTIVATEIMPACT - RenderStyle Add - States - { - Spawn: - FX10 ABC 6 Bright - Loop - Death: - FX10 DEFG 5 Bright - Stop - } -} - - diff --git a/wadsrc/static/actors/heretic/hereticweaps.txt b/wadsrc/static/actors/heretic/hereticweaps.txt deleted file mode 100644 index 41461379a..000000000 --- a/wadsrc/static/actors/heretic/hereticweaps.txt +++ /dev/null @@ -1,1133 +0,0 @@ - -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 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 - } -} - diff --git a/wadsrc/static/actors/heretic/mummy.txt b/wadsrc/static/actors/heretic/mummy.txt deleted file mode 100644 index 331f315cd..000000000 --- a/wadsrc/static/actors/heretic/mummy.txt +++ /dev/null @@ -1,133 +0,0 @@ - -// Mummy -------------------------------------------------------------------- - -ACTOR Mummy -{ - Health 80 - Radius 22 - Height 62 - Mass 75 - Speed 12 - Painchance 128 - Monster - +FLOORCLIP - SeeSound "mummy/sight" - AttackSound "mummy/attack1" - PainSound "mummy/pain" - DeathSound "mummy/death" - ActiveSound "mummy/active" - HitObituary "$OB_MUMMY" - DropItem "GoldWandAmmo", 84, 3 - States - { - Spawn: - MUMM AB 10 A_Look - Loop - See: - MUMM ABCD 4 A_Chase - Loop - Melee: - MUMM E 6 A_FaceTarget - MUMM F 6 A_CustomMeleeAttack(random[MummyAttack](1,8)*2, "mummy/attack2", "mummy/attack") - MUMM G 6 - Goto See - Pain: - MUMM H 4 - MUMM H 4 A_Pain - Goto See - Death: - MUMM I 5 - MUMM J 5 A_Scream - MUMM K 5 A_SpawnItemEx("MummySoul", 0,0,10, 0,0,1) - MUMM L 5 - MUMM M 5 A_NoBlocking - MUMM NO 5 - MUMM P -1 - Stop - } -} - -// Mummy leader ------------------------------------------------------------- - -ACTOR MummyLeader : Mummy -{ - Species "MummyLeader" - Health 100 - Painchance 64 - Obituary "$OB_MUMMYLEADER" - States - { - Missile: - MUMM X 5 A_FaceTarget - MUMM Y 5 Bright A_FaceTarget - MUMM X 5 A_FaceTarget - MUMM Y 5 Bright A_FaceTarget - MUMM X 5 A_FaceTarget - MUMM Y 5 Bright A_CustomComboAttack("MummyFX1", 32, random[MummyAttack2](1,8)*2, "mummy/attack2") - Goto See - } -} - -// Mummy ghost -------------------------------------------------------------- - -ACTOR MummyGhost : Mummy -{ - +SHADOW - +GHOST - RenderStyle Translucent - Alpha 0.4 -} - -// Mummy leader ghost ------------------------------------------------------- - -ACTOR MummyLeaderGhost : MummyLeader -{ - Species "MummyLeaderGhost" - +SHADOW - +GHOST - RenderStyle Translucent - Alpha 0.4 -} - -// Mummy soul --------------------------------------------------------------- - -ACTOR MummySoul -{ - +NOBLOCKMAP - +NOGRAVITY - States - { - Spawn: - MUMM QRS 5 - MUMM TUVW 9 - Stop - } -} - -// Mummy FX 1 (flying head) ------------------------------------------------- - -ACTOR MummyFX1 -{ - Radius 8 - Height 14 - Speed 9 - FastSpeed 18 - Damage 4 - RenderStyle Add - Projectile - -ACTIVATEPCROSS - -ACTIVATEIMPACT - +SEEKERMISSILE - States - { - Spawn: - FX15 A 5 Bright A_PlaySound("mummy/head") - FX15 B 5 Bright A_SeekerMissile(10,20) - FX15 C 5 Bright - FX15 B 5 Bright A_SeekerMissile(10,20) - Loop - Death: - FX15 DEFG 5 Bright - Stop - } -} diff --git a/wadsrc/static/actors/heretic/snake.txt b/wadsrc/static/actors/heretic/snake.txt deleted file mode 100644 index bb9beb3dd..000000000 --- a/wadsrc/static/actors/heretic/snake.txt +++ /dev/null @@ -1,95 +0,0 @@ - -ACTOR Snake -{ - Health 280 - Radius 22 - Height 70 - Speed 10 - Painchance 48 - Monster - +FLOORCLIP - AttackSound "snake/attack" - SeeSound "snake/sight" - PainSound "snake/pain" - DeathSound "snake/death" - ActiveSound "snake/active" - Obituary "$OB_SNAKE" - DropItem "PhoenixRodAmmo", 84, 5 - States - { - Spawn: - SNKE AB 10 A_Look - Loop - See: - SNKE ABCD 4 A_Chase - Loop - Missile: - SNKE FF 5 A_FaceTarget - SNKE FFF 4 A_CustomMissile("SnakeProjA", 32, 0, 0, CMF_CHECKTARGETDEAD) - SNKE FFF 5 A_FaceTarget - SNKE F 4 A_CustomMissile("SnakeProjB", 32, 0, 0, CMF_CHECKTARGETDEAD) - Goto See - Pain: - SNKE E 3 - SNKE E 3 A_Pain - Goto See - Death: - SNKE G 5 - SNKE H 5 A_Scream - SNKE IJKL 5 - SNKE M 5 A_NoBlocking - SNKE NO 5 - SNKE P -1 - Stop - } -} - -// Snake projectile A ------------------------------------------------------- - -ACTOR SnakeProjA -{ - Radius 12 - Height 8 - Speed 14 - FastSpeed 20 - Damage 1 - Projectile - -NOBLOCKMAP - -ACTIVATEIMPACT - -ACTIVATEPCROSS - +WINDTHRUST - +SPAWNSOUNDSOURCE - RenderStyle Add - SeeSound "snake/attack" - States - { - Spawn: - SNFX ABCD 5 Bright - Loop - Death: - SNFX EF 5 Bright - SNFX G 4 Bright - SNFX HI 3 Bright - Stop - } -} - -// Snake projectile B ------------------------------------------------------- - -ACTOR SnakeProjB : SnakeProjA -{ - Damage 3 - +NOBLOCKMAP - -WINDTHRUST - States - { - Spawn: - SNFX JK 6 Bright - Loop - Death: - SNFX LM 5 Bright - SNFX N 4 Bright - SNFX O 3 Bright - Stop - } -} diff --git a/wadsrc/static/decorate.txt b/wadsrc/static/decorate.txt index 52906258c..69b2fbb55 100644 --- a/wadsrc/static/decorate.txt +++ b/wadsrc/static/decorate.txt @@ -1,9 +1,3 @@ -#include "actors/heretic/hereticweaps.txt" -#include "actors/heretic/mummy.txt" -#include "actors/heretic/clink.txt" -#include "actors/heretic/beast.txt" -#include "actors/heretic/snake.txt" -#include "actors/heretic/hereticimp.txt" #include "actors/heretic/knight.txt" #include "actors/heretic/wizard.txt" #include "actors/heretic/ironlich.txt" diff --git a/wadsrc/static/zscript.txt b/wadsrc/static/zscript.txt index bd7b914b5..e65e49fea 100644 --- a/wadsrc/static/zscript.txt +++ b/wadsrc/static/zscript.txt @@ -73,13 +73,13 @@ zscript/heretic/hereticartifacts.txt zscript/heretic/heretickeys.txt zscript/heretic/hereticdecorations.txt zscript/heretic/hereticmisc.txt -/* zscript/heretic/hereticweaps.txt zscript/heretic/mummy.txt zscript/heretic/clink.txt zscript/heretic/beast.txt zscript/heretic/snake.txt zscript/heretic/hereticimp.txt +/* zscript/heretic/knight.txt zscript/heretic/wizard.txt zscript/heretic/ironlich.txt diff --git a/wadsrc/static/zscript/heretic/clink.txt b/wadsrc/static/zscript/heretic/clink.txt new file mode 100644 index 000000000..7549ff097 --- /dev/null +++ b/wadsrc/static/zscript/heretic/clink.txt @@ -0,0 +1,48 @@ +class Clink : Actor +{ + Default + { + Health 150; + Radius 20; + Height 64; + Mass 75; + Speed 14; + Painchance 32; + Monster; + +NOBLOOD + +FLOORCLIP + SeeSound "clink/sight"; + AttackSound "clink/attack"; + PainSound "clink/pain"; + DeathSound "clink/death"; + ActiveSound "clink/active"; + Obituary "$OB_CLINK"; + DropItem "SkullRodAmmo", 84, 20; + } + States + { + Spawn: + CLNK AB 10 A_Look; + Loop; + See: + CLNK ABCD 3 A_Chase; + Loop; + Melee: + CLNK E 5 A_FaceTarget; + CLNK F 4 A_FaceTarget; + CLNK G 7 A_CustomMeleeAttack(random[ClinkAttack](3,9), "clink/attack", "clink/attack"); + Goto See; + Pain: + CLNK H 3; + CLNK H 3 A_Pain; + Goto See; + Death: + CLNK IJ 6; + CLNK K 5 A_Scream; + CLNK L 5 A_NoBlocking; + CLNK MN 5; + CLNK O -1; + Stop; + } +} + diff --git a/wadsrc/static/zscript/heretic/hereticimp.txt b/wadsrc/static/zscript/heretic/hereticimp.txt new file mode 100644 index 000000000..9f5c0a23e --- /dev/null +++ b/wadsrc/static/zscript/heretic/hereticimp.txt @@ -0,0 +1,171 @@ + +// Heretic imp (as opposed to the Doom variety) ----------------------------- + +class HereticImp : Actor +{ + Default + { + Health 40; + Radius 16; + Height 36; + Mass 50; + Speed 10; + Painchance 200; + Monster; + +FLOAT + +NOGRAVITY + +SPAWNFLOAT + +DONTOVERLAP + +MISSILEMORE + SeeSound "himp/sight"; + AttackSound "himp/attack"; + PainSound "himp/pain"; + DeathSound "himp/death"; + ActiveSound "himp/active"; + Obituary "$OB_HERETICIMP"; + HitObituary "$OB_HERETICIMPHIT"; + } + + action native void A_ImpMsAttack(); + action native void A_ImpDeath(); + action native void A_ImpXDeath1(); + action native void A_ImpExplode(); + + + States + { + Spawn: + IMPX ABCB 10 A_Look; + Loop; + See: + IMPX AABBCCBB 3 A_Chase; + Loop; + Melee: + IMPX DE 6 A_FaceTarget; + IMPX F 6 A_CustomMeleeAttack(random[ImpMeAttack](5,12), "himp/attack", "himp/attack"); + Goto See; + Missile: + IMPX A 10 A_FaceTarget; + IMPX B 6 A_ImpMsAttack; + IMPX CBAB 6; + Goto Missile+2; + Pain: + IMPX G 3; + IMPX G 3 A_Pain; + Goto See; + Death: + IMPX G 4 A_ImpDeath; + IMPX H 5; + Wait; + XDeath: + IMPX S 5 A_ImpXDeath1; + IMPX TU 5; + IMPX V 5 A_Gravity; + IMPX W 5; + Wait; + Crash: + IMPX I 7 A_ImpExplode; + IMPX J 7 A_Scream; + IMPX K 7; + IMPX L -1; + Stop; + XCrash: + IMPX X 7; + IMPX Y 7; + IMPX Z -1; + Stop; + } +} + +// Heretic imp leader ------------------------------------------------------- + +class HereticImpLeader : HereticImp +{ + Default + { + Species "HereticImpLeader"; + Health 80; + -MISSILEMORE + AttackSound "himp/leaderattack"; + } + States + { + Melee: + Stop; + Missile: + IMPX DE 6 A_FaceTarget; + IMPX F 6 A_CustomComboAttack("HereticImpBall", 32, random[ImpMsAttack2](5,12), "himp/leaderattack"); + Goto See; + } +} + +// Heretic imp chunk 1 ------------------------------------------------------ + +class HereticImpChunk1 : Actor +{ + Default + { + Mass 5; + Radius 4; + +NOBLOCKMAP + +MOVEWITHSECTOR + } + States + { + Spawn: + IMPX M 5; + IMPX NO 700; + Stop; + } +} + +// Heretic imp chunk 2 ------------------------------------------------------ + +class HereticImpChunk2 : Actor +{ + Default + { + Mass 5; + Radius 4; + +NOBLOCKMAP + +MOVEWITHSECTOR + } + States + { + Spawn: + IMPX P 5; + IMPX QR 700; + Stop; + } +} + +// Heretic imp ball --------------------------------------------------------- + +class HereticImpBall : Actor +{ + Default + { + Radius 8; + Height 8; + Speed 10; + FastSpeed 20; + Damage 1; + Projectile; + SeeSound "himp/leaderattack"; + +SPAWNSOUNDSOURCE + -ACTIVATEPCROSS + -ACTIVATEIMPACT + RenderStyle "Add"; + } + States + { + Spawn: + FX10 ABC 6 Bright; + Loop; + Death: + FX10 DEFG 5 Bright; + Stop; + } +} + + diff --git a/wadsrc/static/zscript/heretic/hereticweaps.txt b/wadsrc/static/zscript/heretic/hereticweaps.txt new file mode 100644 index 000000000..eabecd9d8 --- /dev/null +++ b/wadsrc/static/zscript/heretic/hereticweaps.txt @@ -0,0 +1,1286 @@ + +class HereticWeapon : Weapon +{ + Default + { + Weapon.Kickback 150; + } +} + + +// Staff -------------------------------------------------------------------- + +class Staff : HereticWeapon +{ + Default + { + Weapon.SelectionOrder 3800; + +THRUGHOST + +WEAPON.WIMPY_WEAPON + +WEAPON.MELEEWEAPON + Weapon.sisterweapon "StaffPowered"; + Obituary "$OB_MPSTAFF"; + Tag "$TAG_STAFF"; + } + + action native void A_StaffAttack (int damage, class 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; + } +} + +class StaffPowered : Staff +{ + Default + { + 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 --------------------------------------------------------------- + +class StaffPuff : Actor +{ + Default + { + 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 ------------------------------------------------------------- + +class StaffPuff2 : Actor +{ + Default + { + RenderStyle "Add"; + +NOBLOCKMAP + +NOGRAVITY + +PUFFONACTORS + AttackSound "weapons/staffpowerhit"; + } + + States + { + Spawn: + PUF4 ABCDEF 4 BRIGHT; + Stop; + } +} + + + +// Gold wand ---------------------------------------------------------------- + +class GoldWand : HereticWeapon +{ + Default + { + +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 void 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; + } +} + +class GoldWandPowered : GoldWand +{ + Default + { + +WEAPON.POWERED_UP + Weapon.AmmoGive 0; + Weapon.SisterWeapon "GoldWand"; + Obituary "$OB_MPPGOLDWAND"; + Tag "$TAG_GOLDWANDP"; + } + + action native void 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 ------------------------------------------------------------ + +class GoldWandFX1 : Actor +{ + Default + { + 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 ------------------------------------------------------------ + +class GoldWandFX2 : GoldWandFX1 +{ + Default + { + Speed 18; + Damage 1; + DeathSound ""; + } + + States + { + Spawn: + FX01 CD 6 BRIGHT; + Loop; + } +} + +// Gold wand puff 1 --------------------------------------------------------- + +class GoldWandPuff1 : Actor +{ + Default + { + +NOBLOCKMAP + +NOGRAVITY + +PUFFONACTORS + RenderStyle "Add"; + } + + States + { + Spawn: + PUF2 ABCDE 3 BRIGHT; + Stop; + } +} + +// Gold wand puff 2 --------------------------------------------------------- + +class GoldWandPuff2 : GoldWandFX1 +{ + Default + { + Skip_Super; + +NOBLOCKMAP + +NOGRAVITY + +PUFFONACTORS + } + + States + { + Spawn: + Goto Super::Death; + } +} + + +// Crossbow ----------------------------------------------------------------- + +class Crossbow : HereticWeapon +{ + Default + { + 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 void 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; + } +} + + +class CrossbowPowered : Crossbow +{ + Default + { + +WEAPON.POWERED_UP + Weapon.AmmoGive 0; + Weapon.SisterWeapon "Crossbow"; + Tag "$TAG_CROSSBOWP"; + } + + action native void 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 ------------------------------------------------------------- + +class CrossbowFX1 : Actor +{ + Default + { + 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 ------------------------------------------------------------- + +class CrossbowFX2 : CrossbowFX1 +{ + Default + { + 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 ------------------------------------------------------------- + +class CrossbowFX3 : CrossbowFX1 +{ + Default + { + Speed 20; + Damage 2; + SeeSound ""; + -NOBLOCKMAP + +WINDTHRUST + +THRUGHOST + } + + States + { + Spawn: + FX03 A 1 BRIGHT; + Loop; + Death: + FX03 CDE 8 BRIGHT; + Stop; + } +} + +// Crossbow FX4 ------------------------------------------------------------- + +class CrossbowFX4 : Actor +{ + Default + { + +NOBLOCKMAP + Gravity 0.125; + RenderStyle "Add"; + } + + States + { + Spawn: + FX03 FG 8 BRIGHT; + Stop; + } +} + + + + +// Gauntlets ---------------------------------------------------------------- + +class Gauntlets : Weapon +{ + Default + { + +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 void 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; + } +} + + +class GauntletsPowered : Gauntlets +{ + Default + { + +WEAPON.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 ---------------------------------------------------------- + +class GauntletPuff1 : Actor +{ + Default + { + +NOBLOCKMAP + +NOGRAVITY + +PUFFONACTORS + RenderStyle "Translucent"; + Alpha 0.4; + VSpeed 0.8; + } + + States + { + Spawn: + PUF1 ABCD 4 BRIGHT; + Stop; + } +} + +// Gauntlet puff 2 --------------------------------------------------------- + +class GauntletPuff2 : GauntletPuff1 +{ + States + { + Spawn: + PUF1 EFGH 4 BRIGHT; + Stop; + } +} + + +// The mace itself ---------------------------------------------------------- + +class Mace : HereticWeapon +{ + Default + { + 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 void 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; + } +} + +class MacePowered : Mace +{ + Default + { + +WEAPON.POWERED_UP + Weapon.AmmoUse 5; + Weapon.AmmoGive 0; + Weapon.SisterWeapon "Mace"; + Tag "$TAG_MACEP"; + } + + action native void 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 ----------------------------------------------------------------- + +class MaceFX1 : Actor +{ + Default + { + Radius 8; + Height 6; + Speed 20; + Damage 2; + Projectile; + +THRUGHOST + BounceType "HereticCompat"; + SeeSound "weapons/maceshoot"; + Obituary "$OB_MPMACE"; + } + + action native void A_MacePL1Check(); + action native void A_MaceBallImpact(); + + States + { + Spawn: + FX02 AB 4 A_MacePL1Check; + Loop; + Death: + FX02 F 4 BRIGHT A_MaceBallImpact; + FX02 GHIJ 4 BRIGHT; + Stop; + } +} + +// Mace FX2 ----------------------------------------------------------------- + +class MaceFX2 : MaceFX1 +{ + Default + { + Speed 10; + Damage 6; + Gravity 0.125; + -NOGRAVITY + SeeSound ""; + } + + action native void A_MaceBallImpact2(); + + States + { + Spawn: + FX02 CD 4; + Loop; + Death: + FX02 F 4 A_MaceBallImpact2; + goto Super::Death+1; + } +} + +// Mace FX3 ----------------------------------------------------------------- + +class MaceFX3 : MaceFX1 +{ + Default + { + Speed 7; + Damage 4; + -NOGRAVITY; + Gravity 0.125; + } + + States + { + Spawn: + FX02 AB 4; + Loop; + } +} + + +// Mace FX4 ----------------------------------------------------------------- + +class MaceFX4 : Actor native +{ + Default + { + Radius 8; + Height 6; + Speed 7; + Damage 18; + Gravity 0.125; + Projectile; + -NOGRAVITY + +TELESTOMP + +THRUGHOST + -NOTELEPORT + BounceType "HereticCompat"; + SeeSound ""; + Obituary "$OB_MPPMACE"; + } + + action native void A_DeathBallImpact(); + + States + { + Spawn: + FX02 E 99; + Loop; + Death: + FX02 C 4 A_DeathBallImpact; + FX02 GHIJ 4 BRIGHT; + Stop; + } +} + + +// Mace spawn spot ---------------------------------------------------------- + +class MaceSpawner : SpecialSpot +{ + Default + { + +NOSECTOR + +NOBLOCKMAP + } + + States + { + Spawn: + TNT1 A 1; + TNT1 A -1 A_SpawnSingleItem("Mace", 64, 64, 0); + Stop; + } +} + + +// Blaster ------------------------------------------------------------------ + +class Blaster : HereticWeapon +{ + Default + { + +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 void 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; + } +} + +class BlasterPowered : Blaster +{ + Default + { + +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 ------------------------------------------------------------- + +class BlasterFX1 : FastProjectile native +{ + Default + { + Radius 12; + Height 8; + Speed 184; + Damage 2; + SeeSound "weapons/blastershoot"; + DeathSound "weapons/blasterhit"; + +SPAWNSOUNDSOURCE + Obituary "$OB_MPPBLASTER"; + } + + action native void 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 ------------------------------------------------------------ + +class BlasterSmoke : Actor +{ + Default + { + +NOBLOCKMAP + +NOGRAVITY + +NOTELEPORT + +CANNOTPUSH + RenderStyle "Translucent"; + Alpha 0.4; + } + + States + { + Spawn: + FX18 HIJKL 4; + Stop; + } +} + +// Ripper ------------------------------------------------------------------- + +class Ripper : Actor native +{ + Default + { + 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 ------------------------------------------------------------- + +class BlasterPuff : Actor +{ + Default + { + +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 --------------------------------------------------------- + +class SkullRod : HereticWeapon +{ + Default + { + 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 void 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; + } +} + +class SkullRodPowered : SkullRod +{ + Default + { + +WEAPON.POWERED_UP + Weapon.AmmoUse1 5; + Weapon.AmmoGive1 0; + Weapon.SisterWeapon "SkullRod"; + Tag "$TAG_SKULLRODP"; + } + + action native void 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 ------------------------------------------------------------ + +class HornRodFX1 : Actor +{ + Default + { + 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 ------------------------------------------------------------ + +class HornRodFX2 : Actor native +{ + Default + { + Radius 12; + Height 8; + Speed 22; + Damage 10; + Health 140; + Projectile; + RenderStyle "Add"; + SeeSound "weapons/hornrodpowshoot"; + DeathSound "weapons/hornrodpowhit"; + Obituary "$OB_MPPSKULLROD"; + } + + action native void A_AddPlayerRain(); + action native void A_HideInCeiling(); + action native void 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 ------------------------------------------------------------ + +class RainPillar : Actor native +{ + Default + { + Radius 5; + Height 12; + Speed 12; + Damage 5; + Mass 5; + Projectile; + -ACTIVATEPCROSS + -ACTIVATEIMPACT + RenderStyle "Add"; + Obituary "$OB_MPPSKULLROD"; + } + + action native void 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 -------------------------------------------- + +class RainTracker : Inventory native +{ + Default + { + +INVENTORY.UNDROPPABLE + } +} + + +// Phoenix Rod -------------------------------------------------------------- + +class PhoenixRod : Weapon native +{ + Default + { + +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 void 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; + } +} + +class PhoenixRodPowered : PhoenixRod native +{ + Default + { + +WEAPON.POWERED_UP + +WEAPON.MELEEWEAPON + Weapon.SisterWeapon "PhoenixRod"; + Weapon.AmmoGive 0; + Tag "$TAG_PHOENIXRODP"; + } + + action native void A_InitPhoenixPL2(); + action native void A_FirePhoenixPL2(); + action native void 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 ------------------------------------------------------------- + +class PhoenixFX1 : Actor native +{ + Default + { + Radius 11; + Height 8; + Speed 20; + Damage 20; + DamageType "Fire"; + Projectile; + +THRUGHOST + +SPECIALFIREDAMAGE + SeeSound "weapons/phoenixshoot"; + DeathSound "weapons/phoenixhit"; + Obituary "$OB_MPPHOENIXROD"; + } + + action native void 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 ------------------------------------------------------------- + +class PhoenixPuff : Actor +{ + Default + { + +NOBLOCKMAP + +NOGRAVITY + +NOTELEPORT + +CANNOTPUSH + RenderStyle "Translucent"; + Alpha 0.4; + } + + States + { + Spawn: + FX04 BCDEF 4; + Stop; + } +} + +// Phoenix FX 2 ------------------------------------------------------------- + +class PhoenixFX2 : Actor native +{ + Default + { + Radius 6; + Height 8; + Speed 10; + Damage 2; + DamageType "Fire"; + Projectile; + RenderStyle "Add"; + Obituary "$OB_MPPPHOENIXROD"; + } + + action native void A_FlameEnd(); + action native void 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; + } +} + diff --git a/wadsrc/static/zscript/heretic/mummy.txt b/wadsrc/static/zscript/heretic/mummy.txt new file mode 100644 index 000000000..6d01fcea4 --- /dev/null +++ b/wadsrc/static/zscript/heretic/mummy.txt @@ -0,0 +1,151 @@ + +// Mummy -------------------------------------------------------------------- + +class Mummy : Actor +{ + Default + { + Health 80; + Radius 22; + Height 62; + Mass 75; + Speed 12; + Painchance 128; + Monster; + +FLOORCLIP + SeeSound "mummy/sight"; + AttackSound "mummy/attack1"; + PainSound "mummy/pain"; + DeathSound "mummy/death"; + ActiveSound "mummy/active"; + HitObituary "$OB_MUMMY"; + DropItem "GoldWandAmmo", 84, 3; + } + States + { + Spawn: + MUMM AB 10 A_Look; + Loop; + See: + MUMM ABCD 4 A_Chase; + Loop; + Melee: + MUMM E 6 A_FaceTarget; + MUMM F 6 A_CustomMeleeAttack(random[MummyAttack](1,8)*2, "mummy/attack2", "mummy/attack"); + MUMM G 6; + Goto See; + Pain: + MUMM H 4; + MUMM H 4 A_Pain; + Goto See; + Death: + MUMM I 5; + MUMM J 5 A_Scream; + MUMM K 5 A_SpawnItemEx("MummySoul", 0,0,10, 0,0,1); + MUMM L 5; + MUMM M 5 A_NoBlocking; + MUMM NO 5; + MUMM P -1; + Stop; + } +} + +// Mummy leader ------------------------------------------------------------- + +class MummyLeader : Mummy +{ + Default + { + Species "MummyLeader"; + Health 100; + Painchance 64; + Obituary "$OB_MUMMYLEADER"; + } + States + { + Missile: + MUMM X 5 A_FaceTarget; + MUMM Y 5 Bright A_FaceTarget; + MUMM X 5 A_FaceTarget; + MUMM Y 5 Bright A_FaceTarget; + MUMM X 5 A_FaceTarget; + MUMM Y 5 Bright A_CustomComboAttack("MummyFX1", 32, random[MummyAttack2](1,8)*2, "mummy/attack2"); + Goto See; + } +} + +// Mummy ghost -------------------------------------------------------------- + +class MummyGhost : Mummy +{ + Default + { + +SHADOW + +GHOST + RenderStyle "Translucent"; + Alpha 0.4; + } +} + +// Mummy leader ghost ------------------------------------------------------- + +class MummyLeaderGhost : MummyLeader +{ + Default + { + Species "MummyLeaderGhost"; + +SHADOW + +GHOST + RenderStyle "Translucent"; + Alpha 0.4; + } +} + +// Mummy soul --------------------------------------------------------------- + +class MummySoul : Actor +{ + Default + { + +NOBLOCKMAP + +NOGRAVITY + } + States + { + Spawn: + MUMM QRS 5; + MUMM TUVW 9; + Stop; + } +} + +// Mummy FX 1 (flying head) ------------------------------------------------- + +class MummyFX1 : Actor +{ + Default + { + Radius 8; + Height 14; + Speed 9; + FastSpeed 18; + Damage 4; + RenderStyle "Add"; + Projectile; + -ACTIVATEPCROSS + -ACTIVATEIMPACT + +SEEKERMISSILE + } + States + { + Spawn: + FX15 A 5 Bright A_PlaySound("mummy/head"); + FX15 B 5 Bright A_SeekerMissile(10,20); + FX15 C 5 Bright; + FX15 B 5 Bright A_SeekerMissile(10,20); + Loop; + Death: + FX15 DEFG 5 Bright; + Stop; + } +} diff --git a/wadsrc/static/zscript/heretic/snake.txt b/wadsrc/static/zscript/heretic/snake.txt new file mode 100644 index 000000000..613559a86 --- /dev/null +++ b/wadsrc/static/zscript/heretic/snake.txt @@ -0,0 +1,104 @@ + +class Snake : Actor +{ + Default + { + Health 280; + Radius 22; + Height 70; + Speed 10; + Painchance 48; + Monster; + +FLOORCLIP + AttackSound "snake/attack"; + SeeSound "snake/sight"; + PainSound "snake/pain"; + DeathSound "snake/death"; + ActiveSound "snake/active"; + Obituary "$OB_SNAKE"; + DropItem "PhoenixRodAmmo", 84, 5; + } + States + { + Spawn: + SNKE AB 10 A_Look; + Loop; + See: + SNKE ABCD 4 A_Chase; + Loop; + Missile: + SNKE FF 5 A_FaceTarget; + SNKE FFF 4 A_CustomMissile("SnakeProjA", 32, 0, 0, CMF_CHECKTARGETDEAD); + SNKE FFF 5 A_FaceTarget; + SNKE F 4 A_CustomMissile("SnakeProjB", 32, 0, 0, CMF_CHECKTARGETDEAD); + Goto See; + Pain: + SNKE E 3; + SNKE E 3 A_Pain; + Goto See; + Death: + SNKE G 5; + SNKE H 5 A_Scream; + SNKE IJKL 5; + SNKE M 5 A_NoBlocking; + SNKE NO 5; + SNKE P -1; + Stop; + } +} + +// Snake projectile A ------------------------------------------------------- + +class SnakeProjA : Actor +{ + Default + { + Radius 12; + Height 8; + Speed 14; + FastSpeed 20; + Damage 1; + Projectile; + -NOBLOCKMAP + -ACTIVATEIMPACT + -ACTIVATEPCROSS + +WINDTHRUST + +SPAWNSOUNDSOURCE + RenderStyle "Add"; + SeeSound "snake/attack"; + } + States + { + Spawn: + SNFX ABCD 5 Bright; + Loop; + Death: + SNFX EF 5 Bright; + SNFX G 4 Bright; + SNFX HI 3 Bright; + Stop; + } +} + +// Snake projectile B ------------------------------------------------------- + +class SnakeProjB : SnakeProjA +{ + Default + { + Damage 3; + +NOBLOCKMAP + -WINDTHRUST + } + States + { + Spawn: + SNFX JK 6 Bright; + Loop; + Death: + SNFX LM 5 Bright; + SNFX N 4 Bright; + SNFX O 3 Bright; + Stop; + } +}