From d66631478a47e7047d1e2e79d9ffaebe678f1b59 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Mon, 17 Oct 2016 23:27:34 +0200 Subject: [PATCH] - converted some Hexen stuff. --- wadsrc/static/actors/hexen/baseweapons.txt | 20 --- wadsrc/static/actors/hexen/clericplayer.txt | 103 ----------- wadsrc/static/actors/hexen/fighterplayer.txt | 126 ------------- wadsrc/static/actors/hexen/flame.txt | 106 ----------- wadsrc/static/actors/hexen/flies.txt | 27 --- wadsrc/static/actors/hexen/korax.txt | 124 ------------- wadsrc/static/actors/hexen/mageplayer.txt | 104 ----------- wadsrc/static/actors/hexen/pig.txt | 155 ---------------- wadsrc/static/decorate.txt | 8 - wadsrc/static/zscript.txt | 53 ++++++ wadsrc/static/zscript/hexen/baseweapons.txt | 29 +++ wadsrc/static/zscript/hexen/clericplayer.txt | 106 +++++++++++ wadsrc/static/zscript/hexen/fighterplayer.txt | 133 ++++++++++++++ wadsrc/static/zscript/hexen/flame.txt | 122 +++++++++++++ wadsrc/static/zscript/hexen/flies.txt | 30 ++++ wadsrc/static/zscript/hexen/korax.txt | 133 ++++++++++++++ wadsrc/static/zscript/hexen/mageplayer.txt | 107 +++++++++++ wadsrc/static/zscript/hexen/pig.txt | 170 ++++++++++++++++++ 18 files changed, 883 insertions(+), 773 deletions(-) delete mode 100644 wadsrc/static/actors/hexen/baseweapons.txt delete mode 100644 wadsrc/static/actors/hexen/clericplayer.txt delete mode 100644 wadsrc/static/actors/hexen/fighterplayer.txt delete mode 100644 wadsrc/static/actors/hexen/flame.txt delete mode 100644 wadsrc/static/actors/hexen/flies.txt delete mode 100644 wadsrc/static/actors/hexen/korax.txt delete mode 100644 wadsrc/static/actors/hexen/mageplayer.txt delete mode 100644 wadsrc/static/actors/hexen/pig.txt create mode 100644 wadsrc/static/zscript/hexen/baseweapons.txt create mode 100644 wadsrc/static/zscript/hexen/clericplayer.txt create mode 100644 wadsrc/static/zscript/hexen/fighterplayer.txt create mode 100644 wadsrc/static/zscript/hexen/flame.txt create mode 100644 wadsrc/static/zscript/hexen/flies.txt create mode 100644 wadsrc/static/zscript/hexen/korax.txt create mode 100644 wadsrc/static/zscript/hexen/mageplayer.txt create mode 100644 wadsrc/static/zscript/hexen/pig.txt diff --git a/wadsrc/static/actors/hexen/baseweapons.txt b/wadsrc/static/actors/hexen/baseweapons.txt deleted file mode 100644 index d40536316..000000000 --- a/wadsrc/static/actors/hexen/baseweapons.txt +++ /dev/null @@ -1,20 +0,0 @@ -// The Doom and Heretic players are not excluded from pickup in case -// somebody wants to use these weapons with either of those games. - -ACTOR FighterWeapon : Weapon native -{ - Weapon.Kickback 150 - Inventory.ForbiddenTo ClericPlayer, MagePlayer -} - -ACTOR ClericWeapon : Weapon native -{ - Weapon.Kickback 150 - Inventory.ForbiddenTo FighterPlayer, MagePlayer -} - -ACTOR MageWeapon : Weapon native -{ - Weapon.Kickback 150 - Inventory.ForbiddenTo FighterPlayer, ClericPlayer -} diff --git a/wadsrc/static/actors/hexen/clericplayer.txt b/wadsrc/static/actors/hexen/clericplayer.txt deleted file mode 100644 index 4b762af5d..000000000 --- a/wadsrc/static/actors/hexen/clericplayer.txt +++ /dev/null @@ -1,103 +0,0 @@ -// The cleric --------------------------------------------------------------- - -ACTOR ClericPlayer : PlayerPawn -{ - Health 100 - ReactionTime 0 - PainChance 255 - Radius 16 - Height 64 - Speed 1 - +NOSKIN - +NODAMAGETHRUST - +NOTHRUSTWHENINVUL - PainSound "PlayerClericPain" - RadiusDamageFactor 0.25 - Player.JumpZ 9 - Player.Viewheight 48 - Player.SpawnClass "Cleric" - Player.DisplayName "Cleric" - Player.SoundClass "cleric" - Player.ScoreIcon "CLERFACE" - Player.InvulnerabilityMode "Ghost" - Player.HealRadiusType "Health" - Player.Hexenarmor 10, 10, 25, 5, 20 - Player.StartItem "CWeapMace" - Player.Portrait "P_CWALK1" - Player.WeaponSlot 1, CWeapMace - Player.WeaponSlot 2, CWeapStaff - Player.WeaponSlot 3, CWeapFlame - Player.WeaponSlot 4, CWeapWraithverge - Player.FlechetteType "ArtiPoisonBag1" - - Player.ColorRange 146, 163 - Player.Colorset 0, "Blue", 146, 163, 161 - Player.ColorsetFile 1, "Red", "TRANTBL7", 0xB3 - Player.ColorsetFile 2, "Gold", "TRANTBL8", 0x8C - Player.ColorsetFile 3, "Dull Green", "TRANTBL9", 0x41 - Player.ColorsetFile 4, "Green", "TRANTBLA", 0xC9 - Player.ColorsetFile 5, "Gray", "TRANTBLB", 0x30 - Player.ColorsetFile 6, "Brown", "TRANTBLC", 0x72 - Player.ColorsetFile 7, "Purple", "TRANTBLD", 0xEE - - States - { - Spawn: - CLER A -1 - Stop - See: - CLER ABCD 4 - Loop - Pain: - CLER H 4 - CLER H 4 A_Pain - Goto Spawn - Missile: - Melee: - CLER EFG 6 - Goto Spawn - Death: - CLER I 6 - CLER J 6 A_PlayerScream - CLER KL 6 - CLER M 6 A_NoBlocking - CLER NOP 6 - CLER Q -1 - Stop - XDeath: - CLER R 5 A_PlayerScream - CLER S 5 - CLER T 5 A_NoBlocking - CLER UVWXYZ 5 - CLER [ -1 - Stop - Ice: - CLER "\" 5 A_FreezeDeath - CLER "\" 1 A_FreezeDeathChunks - Wait - Burn: - FDTH C 5 BRIGHT A_PlaySound("*burndeath") - FDTH D 4 BRIGHT - FDTH G 5 BRIGHT - FDTH H 4 BRIGHT A_PlayerScream - FDTH I 5 BRIGHT - FDTH J 4 BRIGHT - FDTH K 5 BRIGHT - FDTH L 4 BRIGHT - FDTH M 5 BRIGHT - FDTH N 4 BRIGHT - FDTH O 5 BRIGHT - FDTH P 4 BRIGHT - FDTH Q 5 BRIGHT - FDTH R 4 BRIGHT - FDTH S 5 BRIGHT A_NoBlocking - FDTH T 4 BRIGHT - FDTH U 5 BRIGHT - FDTH V 4 BRIGHT - ACLO E 35 A_CheckPlayerDone - Wait - ACLO E 8 - Stop - } -} - diff --git a/wadsrc/static/actors/hexen/fighterplayer.txt b/wadsrc/static/actors/hexen/fighterplayer.txt deleted file mode 100644 index 29de1f3a3..000000000 --- a/wadsrc/static/actors/hexen/fighterplayer.txt +++ /dev/null @@ -1,126 +0,0 @@ -// The fighter -------------------------------------------------------------- - -ACTOR FighterPlayer : PlayerPawn -{ - Health 100 - PainChance 255 - Radius 16 - Height 64 - Speed 1 - +NOSKIN - +NODAMAGETHRUST - +NOTHRUSTWHENINVUL - PainSound "PlayerFighterPain" - RadiusDamageFactor 0.25 - Player.JumpZ 9 - Player.Viewheight 48 - Player.SpawnClass "Fighter" - Player.DisplayName "Fighter" - Player.SoundClass "fighter" - Player.ScoreIcon "FITEFACE" - Player.HealRadiusType "Armor" - Player.Hexenarmor 15, 25, 20, 15, 5 - Player.StartItem "FWeapFist" - Player.ForwardMove 1.08, 1.2 - Player.SideMove 1.125, 1.475 - Player.Portrait "P_FWALK1" - Player.WeaponSlot 1, FWeapFist - Player.WeaponSlot 2, FWeapAxe - Player.WeaponSlot 3, FWeapHammer - Player.WeaponSlot 4, FWeapQuietus - - Player.ColorRange 246, 254 - Player.Colorset 0, "Gold", 246, 254, 253 - Player.ColorsetFile 1, "Red", "TRANTBL0", 0xAC - Player.ColorsetFile 2, "Blue", "TRANTBL1", 0x9D - Player.ColorsetFile 3, "Dull Green", "TRANTBL2", 0x3E - Player.ColorsetFile 4, "Green", "TRANTBL3", 0xC8 - Player.ColorsetFile 5, "Gray", "TRANTBL4", 0x2D - Player.ColorsetFile 6, "Brown", "TRANTBL5", 0x6F - Player.ColorsetFile 7, "Purple", "TRANTBL6", 0xEE - - States - { - Spawn: - PLAY A -1 - Stop - See: - PLAY ABCD 4 - Loop - Missile: - Melee: - PLAY EF 8 - Goto Spawn - Pain: - PLAY G 4 - PLAY G 4 A_Pain - Goto Spawn - Death: - PLAY H 6 - PLAY I 6 A_PlayerScream - PLAY JK 6 - PLAY L 6 A_NoBlocking - PLAY M 6 - PLAY N -1 - Stop - XDeath: - PLAY O 5 A_PlayerScream - PLAY P 5 A_SkullPop("BloodyFighterSkull") - PLAY R 5 A_NoBlocking - PLAY STUV 5 - PLAY W -1 - Stop - Ice: - PLAY X 5 A_FreezeDeath - PLAY X 1 A_FreezeDeathChunks - Wait - Burn: - FDTH A 5 BRIGHT A_PlaySound("*burndeath") - FDTH B 4 BRIGHT - FDTH G 5 BRIGHT - FDTH H 4 BRIGHT A_PlayerScream - FDTH I 5 BRIGHT - FDTH J 4 BRIGHT - FDTH K 5 BRIGHT - FDTH L 4 BRIGHT - FDTH M 5 BRIGHT - FDTH N 4 BRIGHT - FDTH O 5 BRIGHT - FDTH P 4 BRIGHT - FDTH Q 5 BRIGHT - FDTH R 4 BRIGHT - FDTH S 5 BRIGHT A_NoBlocking - FDTH T 4 BRIGHT - FDTH U 5 BRIGHT - FDTH V 4 BRIGHT - ACLO E 35 A_CheckPlayerDone - Wait - ACLO E 8 - Stop - } -} - -// The fighter's bloody skull -------------------------------------------------------------- - -Actor BloodyFighterSkull : PlayerChunk -{ - Radius 4 - Height 4 - +NOBLOCKMAP - +DROPOFF - +LOWGRAVITY - +CANNOTPUSH - +SKYEXPLODE - +NOBLOCKMONST - +NOSKIN - States - { - Spawn: - BSKL A 0 - BSKL ABCDFGH 5 A_CheckFloor("Hit") - Goto Spawn+1 - Hit: - BSKL I 16 A_CheckPlayerDone - Wait - } -} diff --git a/wadsrc/static/actors/hexen/flame.txt b/wadsrc/static/actors/hexen/flame.txt deleted file mode 100644 index b3e369a2e..000000000 --- a/wadsrc/static/actors/hexen/flame.txt +++ /dev/null @@ -1,106 +0,0 @@ -// Temp Small Flame -------------------------------------------------------- - -ACTOR FlameSmallTemp -{ - +NOTELEPORT - RenderStyle Add - States - { - Spawn: - FFSM AB 3 Bright - FFSM C 2 Bright A_CountdownArg(0) - FFSM C 2 Bright - FFSM D 3 Bright - FFSM E 3 Bright A_CountdownArg(0) - Loop - } -} - - -// Temp Large Flame --------------------------------------------------------- - -ACTOR FlameLargeTemp -{ - +NOTELEPORT - RenderStyle Add - States - { - Spawn: - FFLG A 4 Bright - FFLG B 4 Bright A_CountdownArg(0) - FFLG C 4 Bright - FFLG D 4 Bright A_CountdownArg(0) - FFLG E 4 Bright - FFLG F 4 Bright A_CountdownArg(0) - FFLG G 4 Bright - FFLG H 4 Bright A_CountdownArg(0) - FFLG I 4 Bright - FFLG J 4 Bright A_CountdownArg(0) - FFLG K 4 Bright - FFLG L 4 Bright A_CountdownArg(0) - FFLG M 4 Bright - FFLG N 4 Bright A_CountdownArg(0) - FFLG O 4 Bright - FFLG P 4 Bright A_CountdownArg(0) - Goto Spawn+4 - } -} - -// Small Flame -------------------------------------------------------------- - -ACTOR FlameSmall : SwitchableDecoration -{ - +NOTELEPORT - +INVISIBLE - Radius 15 - RenderStyle Add - States - { - Active: - FFSM A 0 Bright A_PlaySound("Ignite") - Spawn: - FFSM A 3 Bright - FFSM A 3 Bright A_UnHideThing - FFSM ABCDE 3 Bright - Goto Spawn+2 - Inactive: - FFSM A 2 - FFSM B 2 A_HideThing - FFSM C 200 - Wait - } -} - -ACTOR FlameSmall2 : FlameSmall -{ -} - -// Large Flame -------------------------------------------------------------- - -ACTOR FlameLarge : SwitchableDecoration -{ - +NOTELEPORT - +INVISIBLE - Radius 15 - RenderStyle Add - States - { - Active: - FFLG A 0 Bright A_PlaySound("Ignite") - Spawn: - FFLG A 2 Bright - FFLG A 2 Bright A_UnHideThing - FFLG ABCDEFGHIJKLMNOP 4 Bright - Goto Spawn+6 - Inactive: - FFLG DCB 2 - FFLG A 2 A_HideThing - FFLG A 200 - Wait - } -} - -ACTOR FlameLarge2 : FlameLarge -{ -} - diff --git a/wadsrc/static/actors/hexen/flies.txt b/wadsrc/static/actors/hexen/flies.txt deleted file mode 100644 index e297cc289..000000000 --- a/wadsrc/static/actors/hexen/flies.txt +++ /dev/null @@ -1,27 +0,0 @@ - -// Buzzy fly ---------------------------------------------------------------- - -ACTOR LittleFly -{ - +NOBLOCKMAP +NOGRAVITY - +CANPASS - - Speed 6 - Radius 5 - Height 5 - Mass 2 - ActiveSound "FlyBuzz" - - action native A_FlySearch(); - action native A_FlyBuzz(); - - States - { - Spawn: - TNT1 A 20 A_FlySearch // [RH] Invisible when not flying - Loop - Buzz: - AFLY ABCD 3 A_FlyBuzz - Loop - } -} diff --git a/wadsrc/static/actors/hexen/korax.txt b/wadsrc/static/actors/hexen/korax.txt deleted file mode 100644 index a35183ad6..000000000 --- a/wadsrc/static/actors/hexen/korax.txt +++ /dev/null @@ -1,124 +0,0 @@ -ACTOR Korax -{ - Health 5000 - Painchance 20 - Speed 10 - Radius 65 - Height 115 - Mass 2000 - Damage 15 - Monster - +BOSS - +FLOORCLIP - +TELESTOMP - +DONTMORPH - +NOTARGET - +NOICEDEATH - SeeSound "KoraxSight" - AttackSound "KoraxAttack" - PainSound "KoraxPain" - DeathSound "KoraxDeath" - ActiveSound "KoraxActive" - Obituary "$OB_KORAX" // "%o was swept from the board by Korax." - - action native A_KoraxChase(); - action native A_KoraxDecide(); - action native A_KoraxBonePop(); - action native A_KoraxMissile(); - action native A_KoraxCommand(); - - States - { - Spawn: - KORX A 5 A_Look - Loop - See: - KORX AAA 3 A_KoraxChase - KORX B 3 A_Chase - KORX BBB 3 A_KoraxChase - KORX C 0 A_PlaySound("KoraxStep") - KORX C 3 A_Chase - KORX CCC 3 A_KoraxChase - KORX D 3 A_Chase - KORX DDD 3 A_KoraxChase - KORX A 0 A_PlaySound("KoraxStep") - KORX A 3 A_Chase - Loop - Pain: - KORX H 5 A_Pain - KORX H 5 - Goto See - Missile: - KORX E 2 Bright A_FaceTarget - KORX E 5 Bright A_KoraxDecide - Wait - Death: - KORX I 5 - KORX J 5 A_FaceTarget - KORX K 5 A_Scream - KORX LMNOP 5 - KORX Q 10 - KORX R 5 A_KoraxBonePop - KORX S 5 A_NoBlocking - KORX TU 5 - KORX V -1 - Stop - Attack: - KORX E 4 Bright A_FaceTarget - KORX F 8 Bright A_KoraxMissile - KORX E 8 Bright - Goto See - Command: - KORX E 5 Bright A_FaceTarget - KORX W 10 Bright A_FaceTarget - KORX G 15 Bright A_KoraxCommand - KORX W 10 Bright - KORX E 5 Bright - Goto See - } -} - -ACTOR KoraxSpirit -{ - Speed 8 - Projectile - +NOCLIP - -ACTIVATEPCROSS - -ACTIVATEIMPACT - RenderStyle Translucent - Alpha 0.4 - - action native A_KSpiritRoam(); - - States - { - Spawn: - SPIR AB 5 A_KSpiritRoam - Loop - Death: - SPIR DEFGHI 5 - Stop - } -} - -ACTOR KoraxBolt -{ - Radius 15 - Height 35 - Projectile - -ACTIVATEPCROSS - -ACTIVATEIMPACT - RenderStyle Add - - action native A_KBolt(); - action native A_KBoltRaise(); - - States - { - Spawn: - MLFX I 2 Bright - MLFX J 2 Bright A_KBoltRaise - MLFX IJKLM 2 Bright A_KBolt - Stop - } -} diff --git a/wadsrc/static/actors/hexen/mageplayer.txt b/wadsrc/static/actors/hexen/mageplayer.txt deleted file mode 100644 index 9cf4117a5..000000000 --- a/wadsrc/static/actors/hexen/mageplayer.txt +++ /dev/null @@ -1,104 +0,0 @@ -// The mage ----------------------------------------------------------------- - -ACTOR MagePlayer : PlayerPawn -{ - Health 100 - ReactionTime 0 - PainChance 255 - Radius 16 - Height 64 - Speed 1 - +NOSKIN - +NODAMAGETHRUST - +NOTHRUSTWHENINVUL - PainSound "PlayerMagePain" - RadiusDamageFactor 0.25 - Player.JumpZ 9 - Player.Viewheight 48 - Player.SpawnClass "Mage" - Player.DisplayName "Mage" - Player.SoundClass "mage" - Player.ScoreIcon "MAGEFACE" - Player.InvulnerabilityMode "Reflective" - Player.HealRadiusType "Mana" - Player.Hexenarmor 5, 5, 15, 10, 25 - Player.StartItem "MWeapWand" - Player.ForwardMove 0.88, 0.92 - Player.SideMove 0.875, 0.925 - Player.Portrait "P_MWALK1" - Player.WeaponSlot 1, MWeapWand - Player.WeaponSlot 2, MWeapFrost - Player.WeaponSlot 3, MWeapLightning - Player.WeaponSlot 4, MWeapBloodscourge - Player.FlechetteType "ArtiPoisonBag2" - - Player.ColorRange 146, 163 - Player.Colorset 0, "Blue", 146, 163, 161 - Player.ColorsetFile 1, "Red", "TRANTBL7", 0xB3 - Player.ColorsetFile 2, "Gold", "TRANTBL8", 0x8C - Player.ColorsetFile 3, "Dull Green", "TRANTBL9", 0x41 - Player.ColorsetFile 4, "Green", "TRANTBLA", 0xC9 - Player.ColorsetFile 5, "Gray", "TRANTBLB", 0x30 - Player.ColorsetFile 6, "Brown", "TRANTBLC", 0x72 - Player.ColorsetFile 7, "Purple", "TRANTBLD", 0xEE - - States - { - Spawn: - MAGE A -1 - Stop - See: - MAGE ABCD 4 - Loop - Missile: - Melee: - MAGE EF 8 - Goto Spawn - Pain: - MAGE G 4 - MAGE G 4 A_Pain - Goto Spawn - Death: - MAGE H 6 - MAGE I 6 A_PlayerScream - MAGE JK 6 - MAGE L 6 A_NoBlocking - MAGE M 6 - MAGE N -1 - Stop - XDeath: - MAGE O 5 A_PlayerScream - MAGE P 5 - MAGE R 5 A_NoBlocking - MAGE STUVW 5 - MAGE X -1 - Stop - Ice: - MAGE Y 5 A_FreezeDeath - MAGE Y 1 A_FreezeDeathChunks - Wait - Burn: - FDTH E 5 BRIGHT A_PlaySound("*burndeath") - FDTH F 4 BRIGHT - FDTH G 5 BRIGHT - FDTH H 4 BRIGHT A_PlayerScream - FDTH I 5 BRIGHT - FDTH J 4 BRIGHT - FDTH K 5 BRIGHT - FDTH L 4 BRIGHT - FDTH M 5 BRIGHT - FDTH N 4 BRIGHT - FDTH O 5 BRIGHT - FDTH P 4 BRIGHT - FDTH Q 5 BRIGHT - FDTH R 4 BRIGHT - FDTH S 5 BRIGHT A_NoBlocking - FDTH T 4 BRIGHT - FDTH U 5 BRIGHT - FDTH V 4 BRIGHT - ACLO E 35 A_CheckPlayerDone - Wait - ACLO E 8 - Stop - } -} diff --git a/wadsrc/static/actors/hexen/pig.txt b/wadsrc/static/actors/hexen/pig.txt deleted file mode 100644 index 9d986e7eb..000000000 --- a/wadsrc/static/actors/hexen/pig.txt +++ /dev/null @@ -1,155 +0,0 @@ - - -// Snout puff --------------------------------------------------------------- - -ACTOR SnoutPuff -{ - +NOBLOCKMAP - +NOGRAVITY - Renderstyle Translucent - Alpha 0.6 - States - { - Spawn: - FHFX STUVW 4 - Stop - } -} - - -// Snout -------------------------------------------------------------------- - -ACTOR Snout : Weapon -{ - Weapon.SelectionOrder 10000 - +WEAPON.DONTBOB - +WEAPON.MELEEWEAPON - Weapon.Kickback 150 - Weapon.YAdjust 10 - - action native A_SnoutAttack (); - - States - { - Ready: - WPIG A 1 A_WeaponReady - Loop - Deselect: - WPIG A 1 A_Lower - Loop - Select: - WPIG A 1 A_Raise - Fire: - WPIG A 4 A_SnoutAttack - WPIG B 8 A_SnoutAttack - Goto Ready - Grunt: - WPIG B 8 - Goto Ready - } -} - - -// Pig player --------------------------------------------------------------- - -ACTOR PigPlayer : PlayerPawn native -{ - Health 30 - ReactionTime 0 - PainChance 255 - Radius 16 - Height 24 - Speed 1 - +WINDTHRUST - +NOSKIN - -PICKUP - PainSound "PigPain" - DeathSound "PigDeath" - Player.JumpZ 6 - Player.Viewheight 28 - Player.ForwardMove 0.96, 0.98 - Player.SideMove 0.95833333, 0.975 - Player.SpawnClass "Pig" - Player.SoundClass "Pig" - Player.DisplayName "Pig" - Player.MorphWeapon "Snout" - States - { - Spawn: - PIGY A -1 - Stop - See: - PIGY ABCD 3 - Loop - Pain: - PIGY D 4 A_PigPain - Goto Spawn - Melee: - Missile: - PIGY A 12 - Goto Spawn - Death: - PIGY E 4 A_Scream - PIGY F 3 A_NoBlocking - PIGY G 4 - PIGY H 3 - PIGY IJK 4 - PIGY L -1 - Stop - Ice: - PIGY M 5 A_FreezeDeath - PIGY M 1 A_FreezeDeathChunks - Wait - } -} - - - -// Pig (non-player) --------------------------------------------------------- - -ACTOR Pig : MorphedMonster -{ - Health 25 - Painchance 128 - Speed 10 - Radius 12 - Height 22 - Mass 60 - Monster - -COUNTKILL - +WINDTHRUST - +DONTMORPH - SeeSound "PigActive1" - PainSound "PigPain" - DeathSound "PigDeath" - ActiveSound "PigActive1" - States - { - Spawn: - PIGY B 10 A_Look - Loop - See: - PIGY ABCD 3 A_Chase - Loop - Pain: - PIGY D 4 A_PigPain - Goto See - Melee: - PIGY A 5 A_FaceTarget - PIGY A 10 A_CustomMeleeAttack(random[PigAttack](2,3), "PigAttack") - Goto See - Death: - PIGY E 4 A_Scream - PIGY F 3 A_NoBlocking - PIGY G 4 A_QueueCorpse - PIGY H 3 - PIGY IJK 4 - PIGY L -1 - Stop - Ice: - PIGY M 5 A_FreezeDeath - PIGY M 1 A_FreezeDeathChunks - Wait - } -} - diff --git a/wadsrc/static/decorate.txt b/wadsrc/static/decorate.txt index b8586d3ee..450cc37a7 100644 --- a/wadsrc/static/decorate.txt +++ b/wadsrc/static/decorate.txt @@ -1,11 +1,3 @@ -#include "actors/hexen/baseweapons.txt" -#include "actors/hexen/korax.txt" -#include "actors/hexen/fighterplayer.txt" -#include "actors/hexen/clericplayer.txt" -#include "actors/hexen/mageplayer.txt" -#include "actors/hexen/pig.txt" -#include "actors/hexen/flame.txt" -#include "actors/hexen/flies.txt" #include "actors/hexen/hexenarmor.txt" #include "actors/hexen/hexendecorations.txt" #include "actors/hexen/hexenkeys.txt" diff --git a/wadsrc/static/zscript.txt b/wadsrc/static/zscript.txt index 8fef6819a..787cb661f 100644 --- a/wadsrc/static/zscript.txt +++ b/wadsrc/static/zscript.txt @@ -84,3 +84,56 @@ zscript/heretic/wizard.txt zscript/heretic/ironlich.txt zscript/heretic/dsparil.txt zscript/heretic/chicken.txt + +zscript/hexen/baseweapons.txt +zscript/hexen/korax.txt +zscript/hexen/fighterplayer.txt +zscript/hexen/clericplayer.txt +zscript/hexen/mageplayer.txt +zscript/hexen/pig.txt +zscript/hexen/flame.txt +zscript/hexen/flies.txt +/* +zscript/hexen/hexenarmor.txt +zscript/hexen/hexendecorations.txt +zscript/hexen/hexenkeys.txt +zscript/hexen/hexenspecialdecs.txt +zscript/hexen/mana.txt +zscript/hexen/puzzleitems.txt +zscript/hexen/scriptprojectiles.txt +zscript/hexen/speedboots.txt +zscript/hexen/ettin.txt +zscript/hexen/centaur.txt +zscript/hexen/demons.txt +zscript/hexen/firedemon.txt +zscript/hexen/fog.txt +zscript/hexen/summon.txt +zscript/hexen/flechette.txt +zscript/hexen/clericboss.txt +zscript/hexen/fighterboss.txt +zscript/hexen/mageboss.txt +zscript/hexen/bats.txt +zscript/hexen/bishop.txt +zscript/hexen/blastradius.txt +zscript/hexen/boostarmor.txt +zscript/hexen/clericmace.txt +zscript/hexen/clericflame.txt +zscript/hexen/clericholy.txt +zscript/hexen/clericstaff.txt +zscript/hexen/magewand.txt +zscript/hexen/magecone.txt +zscript/hexen/magelightning.txt +zscript/hexen/magestaff.txt +zscript/hexen/fighterfist.txt +zscript/hexen/fighteraxe.txt +zscript/hexen/fighterhammer.txt +zscript/hexen/fighterquietus.txt +zscript/hexen/dragon.txt +zscript/hexen/healingradius.txt +zscript/hexen/teleportother.txt +zscript/hexen/iceguy.txt +zscript/hexen/serpent.txt +zscript/hexen/spike.txt +zscript/hexen/wraith.txt +zscript/hexen/heresiarch.txt +*/ \ No newline at end of file diff --git a/wadsrc/static/zscript/hexen/baseweapons.txt b/wadsrc/static/zscript/hexen/baseweapons.txt new file mode 100644 index 000000000..eb685a873 --- /dev/null +++ b/wadsrc/static/zscript/hexen/baseweapons.txt @@ -0,0 +1,29 @@ +// The Doom and Heretic players are not excluded from pickup in case +// somebody wants to use these weapons with either of those games. + +class FighterWeapon : Weapon native +{ + Default + { + Weapon.Kickback 150; + Inventory.ForbiddenTo "ClericPlayer", "MagePlayer"; + } +} + +class ClericWeapon : Weapon native +{ + Default + { + Weapon.Kickback 150; + Inventory.ForbiddenTo "FighterPlayer", "MagePlayer"; + } +} + +class MageWeapon : Weapon native +{ + Default + { + Weapon.Kickback 150; + Inventory.ForbiddenTo "FighterPlayer", "ClericPlayer"; + } +} diff --git a/wadsrc/static/zscript/hexen/clericplayer.txt b/wadsrc/static/zscript/hexen/clericplayer.txt new file mode 100644 index 000000000..1b47ad3f5 --- /dev/null +++ b/wadsrc/static/zscript/hexen/clericplayer.txt @@ -0,0 +1,106 @@ +// The cleric --------------------------------------------------------------- + +class ClericPlayer : PlayerPawn +{ + Default + { + Health 100; + ReactionTime 0; + PainChance 255; + Radius 16; + Height 64; + Speed 1; + +NOSKIN + +NODAMAGETHRUST + +PLAYERPAWN.NOTHRUSTWHENINVUL + PainSound "PlayerClericPain"; + RadiusDamageFactor 0.25; + Player.JumpZ 9; + Player.Viewheight 48; + Player.SpawnClass "Cleric"; + Player.DisplayName "Cleric"; + Player.SoundClass "cleric"; + Player.ScoreIcon "CLERFACE"; + Player.InvulnerabilityMode "Ghost"; + Player.HealRadiusType "Health"; + Player.Hexenarmor 10, 10, 25, 5, 20; + Player.StartItem "CWeapMace"; + Player.Portrait "P_CWALK1"; + Player.WeaponSlot 1, "CWeapMace"; + Player.WeaponSlot 2, "CWeapStaff"; + Player.WeaponSlot 3, "CWeapFlame"; + Player.WeaponSlot 4, "CWeapWraithverge"; + Player.FlechetteType "ArtiPoisonBag1"; + + Player.ColorRange 146, 163; + Player.Colorset 0, "Blue", 146, 163, 161; + Player.ColorsetFile 1, "Red", "TRANTBL7", 0xB3; + Player.ColorsetFile 2, "Gold", "TRANTBL8", 0x8C; + Player.ColorsetFile 3, "Dull Green", "TRANTBL9", 0x41; + Player.ColorsetFile 4, "Green", "TRANTBLA", 0xC9; + Player.ColorsetFile 5, "Gray", "TRANTBLB", 0x30; + Player.ColorsetFile 6, "Brown", "TRANTBLC", 0x72; + Player.ColorsetFile 7, "Purple", "TRANTBLD", 0xEE; + } + + States + { + Spawn: + CLER A -1; + Stop; + See: + CLER ABCD 4; + Loop; + Pain: + CLER H 4; + CLER H 4 A_Pain; + Goto Spawn; + Missile: + Melee: + CLER EFG 6; + Goto Spawn; + Death: + CLER I 6; + CLER J 6 A_PlayerScream; + CLER KL 6; + CLER M 6 A_NoBlocking; + CLER NOP 6; + CLER Q -1; + Stop; + XDeath: + CLER R 5 A_PlayerScream; + CLER S 5; + CLER T 5 A_NoBlocking; + CLER UVWXYZ 5; + CLER [ -1; + Stop; + Ice: + CLER \ 5 A_FreezeDeath; + CLER \ 1 A_FreezeDeathChunks; + Wait; + Burn: + FDTH C 5 BRIGHT A_PlaySound("*burndeath"); + FDTH D 4 BRIGHT; + FDTH G 5 BRIGHT; + FDTH H 4 BRIGHT A_PlayerScream; + FDTH I 5 BRIGHT; + FDTH J 4 BRIGHT; + FDTH K 5 BRIGHT; + FDTH L 4 BRIGHT; + FDTH M 5 BRIGHT; + FDTH N 4 BRIGHT; + FDTH O 5 BRIGHT; + FDTH P 4 BRIGHT; + FDTH Q 5 BRIGHT; + FDTH R 4 BRIGHT; + FDTH S 5 BRIGHT A_NoBlocking; + FDTH T 4 BRIGHT; + FDTH U 5 BRIGHT; + FDTH V 4 BRIGHT; + ACLO E 35 A_CheckPlayerDone; + Wait; + ACLO E 8; + Stop; + } +} + diff --git a/wadsrc/static/zscript/hexen/fighterplayer.txt b/wadsrc/static/zscript/hexen/fighterplayer.txt new file mode 100644 index 000000000..3aa5607d3 --- /dev/null +++ b/wadsrc/static/zscript/hexen/fighterplayer.txt @@ -0,0 +1,133 @@ +// The fighter -------------------------------------------------------------- + +class FighterPlayer : PlayerPawn +{ + Default + { + Health 100; + PainChance 255; + Radius 16; + Height 64; + Speed 1; + +NOSKIN + +NODAMAGETHRUST + +PLAYERPAWN.NOTHRUSTWHENINVUL + PainSound "PlayerFighterPain"; + RadiusDamageFactor 0.25; + Player.JumpZ 9; + Player.Viewheight 48; + Player.SpawnClass "Fighter"; + Player.DisplayName "Fighter"; + Player.SoundClass "fighter"; + Player.ScoreIcon "FITEFACE"; + Player.HealRadiusType "Armor"; + Player.Hexenarmor 15, 25, 20, 15, 5; + Player.StartItem "FWeapFist"; + Player.ForwardMove 1.08, 1.2; + Player.SideMove 1.125, 1.475; + Player.Portrait "P_FWALK1"; + Player.WeaponSlot 1, "FWeapFist"; + Player.WeaponSlot 2, "FWeapAxe"; + Player.WeaponSlot 3, "FWeapHammer"; + Player.WeaponSlot 4, "FWeapQuietus"; + + Player.ColorRange 246, 254; + Player.Colorset 0, "Gold", 246, 254, 253; + Player.ColorsetFile 1, "Red", "TRANTBL0", 0xAC; + Player.ColorsetFile 2, "Blue", "TRANTBL1", 0x9D; + Player.ColorsetFile 3, "Dull Green", "TRANTBL2", 0x3E; + Player.ColorsetFile 4, "Green", "TRANTBL3", 0xC8; + Player.ColorsetFile 5, "Gray", "TRANTBL4", 0x2D; + Player.ColorsetFile 6, "Brown", "TRANTBL5", 0x6F; + Player.ColorsetFile 7, "Purple", "TRANTBL6", 0xEE; + } + + States + { + Spawn: + PLAY A -1; + Stop; + See: + PLAY ABCD 4; + Loop; + Missile: + Melee: + PLAY EF 8; + Goto Spawn; + Pain: + PLAY G 4; + PLAY G 4 A_Pain; + Goto Spawn; + Death: + PLAY H 6; + PLAY I 6 A_PlayerScream; + PLAY JK 6; + PLAY L 6 A_NoBlocking; + PLAY M 6; + PLAY N -1; + Stop; + XDeath: + PLAY O 5 A_PlayerScream; + PLAY P 5 A_SkullPop("BloodyFighterSkull"); + PLAY R 5 A_NoBlocking; + PLAY STUV 5; + PLAY W -1; + Stop; + Ice: + PLAY X 5 A_FreezeDeath; + PLAY X 1 A_FreezeDeathChunks; + Wait; + Burn: + FDTH A 5 BRIGHT A_PlaySound("*burndeath"); + FDTH B 4 BRIGHT; + FDTH G 5 BRIGHT; + FDTH H 4 BRIGHT A_PlayerScream; + FDTH I 5 BRIGHT; + FDTH J 4 BRIGHT; + FDTH K 5 BRIGHT; + FDTH L 4 BRIGHT; + FDTH M 5 BRIGHT; + FDTH N 4 BRIGHT; + FDTH O 5 BRIGHT; + FDTH P 4 BRIGHT; + FDTH Q 5 BRIGHT; + FDTH R 4 BRIGHT; + FDTH S 5 BRIGHT A_NoBlocking; + FDTH T 4 BRIGHT; + FDTH U 5 BRIGHT; + FDTH V 4 BRIGHT; + ACLO E 35 A_CheckPlayerDone; + Wait; + ACLO E 8; + Stop; + } +} + +// The fighter's bloody skull -------------------------------------------------------------- + +class BloodyFighterSkull : PlayerChunk +{ + Default + { + Radius 4; + Height 4; + Gravity 0.125; + +NOBLOCKMAP + +DROPOFF + +CANNOTPUSH + +SKYEXPLODE + +NOBLOCKMONST + +NOSKIN + } + + States + { + Spawn: + BSKL A 0; + BSKL ABCDFGH 5 A_CheckFloor("Hit"); + Goto Spawn+1; + Hit: + BSKL I 16 A_CheckPlayerDone; + Wait; + } +} diff --git a/wadsrc/static/zscript/hexen/flame.txt b/wadsrc/static/zscript/hexen/flame.txt new file mode 100644 index 000000000..4eab6c6d3 --- /dev/null +++ b/wadsrc/static/zscript/hexen/flame.txt @@ -0,0 +1,122 @@ +// Temp Small Flame -------------------------------------------------------- + +class FlameSmallTemp : Actor +{ + Default + { + +NOTELEPORT + RenderStyle "Add"; + } + + States + { + Spawn: + FFSM AB 3 Bright; + FFSM C 2 Bright A_CountdownArg(0); + FFSM C 2 Bright; + FFSM D 3 Bright; + FFSM E 3 Bright A_CountdownArg(0); + Loop; + } +} + + +// Temp Large Flame --------------------------------------------------------- + +class FlameLargeTemp : Actor +{ + Default + { + +NOTELEPORT + RenderStyle "Add"; + } + + States + { + Spawn: + FFLG A 4 Bright; + FFLG B 4 Bright A_CountdownArg(0); + FFLG C 4 Bright; + FFLG D 4 Bright A_CountdownArg(0); + FFLG E 4 Bright; + FFLG F 4 Bright A_CountdownArg(0); + FFLG G 4 Bright; + FFLG H 4 Bright A_CountdownArg(0); + FFLG I 4 Bright; + FFLG J 4 Bright A_CountdownArg(0); + FFLG K 4 Bright; + FFLG L 4 Bright A_CountdownArg(0); + FFLG M 4 Bright; + FFLG N 4 Bright A_CountdownArg(0); + FFLG O 4 Bright; + FFLG P 4 Bright A_CountdownArg(0); + Goto Spawn+4; + } +} + +// Small Flame -------------------------------------------------------------- + +class FlameSmall : SwitchableDecoration +{ + Default + { + +NOTELEPORT + +INVISIBLE + Radius 15; + RenderStyle "Add"; + } + + States + { + Active: + FFSM A 0 Bright A_PlaySound("Ignite"); + Spawn: + FFSM A 3 Bright; + FFSM A 3 Bright A_UnHideThing; + FFSM ABCDE 3 Bright; + Goto Spawn+2; + Inactive: + FFSM A 2; + FFSM B 2 A_HideThing; + FFSM C 200; + Wait; + } +} + +class FlameSmall2 : FlameSmall +{ +} + +// Large Flame -------------------------------------------------------------- + +class FlameLarge : SwitchableDecoration +{ + Default + { + +NOTELEPORT + +INVISIBLE + Radius 15; + RenderStyle "Add"; + } + + States + { + Active: + FFLG A 0 Bright A_PlaySound("Ignite"); + Spawn: + FFLG A 2 Bright; + FFLG A 2 Bright A_UnHideThing; + FFLG ABCDEFGHIJKLMNOP 4 Bright; + Goto Spawn+6; + Inactive: + FFLG DCB 2; + FFLG A 2 A_HideThing; + FFLG A 200; + Wait; + } +} + +class FlameLarge2 : FlameLarge +{ +} + diff --git a/wadsrc/static/zscript/hexen/flies.txt b/wadsrc/static/zscript/hexen/flies.txt new file mode 100644 index 000000000..35c52a124 --- /dev/null +++ b/wadsrc/static/zscript/hexen/flies.txt @@ -0,0 +1,30 @@ + +// Buzzy fly ---------------------------------------------------------------- + +class LittleFly : Actor +{ + Default + { + +NOBLOCKMAP +NOGRAVITY + +CANPASS + + Speed 6; + Radius 5; + Height 5; + Mass 2; + ActiveSound "FlyBuzz"; + } + + action native void A_FlySearch(); + action native void A_FlyBuzz(); + + States + { + Spawn: + TNT1 A 20 A_FlySearch; // [RH] Invisible when not flying + Loop; + Buzz: + AFLY ABCD 3 A_FlyBuzz; + Loop; + } +} diff --git a/wadsrc/static/zscript/hexen/korax.txt b/wadsrc/static/zscript/hexen/korax.txt new file mode 100644 index 000000000..3928de884 --- /dev/null +++ b/wadsrc/static/zscript/hexen/korax.txt @@ -0,0 +1,133 @@ +class Korax : Actor +{ + Default + { + Health 5000; + Painchance 20; + Speed 10; + Radius 65; + Height 115; + Mass 2000; + Damage 15; + Monster; + +BOSS + +FLOORCLIP + +TELESTOMP + +DONTMORPH + +NOTARGET + +NOICEDEATH + SeeSound "KoraxSight"; + AttackSound "KoraxAttack"; + PainSound "KoraxPain"; + DeathSound "KoraxDeath"; + ActiveSound "KoraxActive"; + Obituary "$OB_KORAX"; + } + + action native void A_KoraxChase(); + action native void A_KoraxDecide(); + action native void A_KoraxBonePop(); + action native void A_KoraxMissile(); + action native void A_KoraxCommand(); + + States + { + Spawn: + KORX A 5 A_Look; + Loop; + See: + KORX AAA 3 A_KoraxChase; + KORX B 3 A_Chase; + KORX BBB 3 A_KoraxChase; + KORX C 0 A_PlaySound("KoraxStep"); + KORX C 3 A_Chase; + KORX CCC 3 A_KoraxChase; + KORX D 3 A_Chase; + KORX DDD 3 A_KoraxChase; + KORX A 0 A_PlaySound("KoraxStep"); + KORX A 3 A_Chase; + Loop; + Pain: + KORX H 5 A_Pain; + KORX H 5; + Goto See; + Missile: + KORX E 2 Bright A_FaceTarget; + KORX E 5 Bright A_KoraxDecide; + Wait; + Death: + KORX I 5; + KORX J 5 A_FaceTarget; + KORX K 5 A_Scream; + KORX LMNOP 5; + KORX Q 10; + KORX R 5 A_KoraxBonePop; + KORX S 5 A_NoBlocking; + KORX TU 5; + KORX V -1; + Stop; + Attack: + KORX E 4 Bright A_FaceTarget; + KORX F 8 Bright A_KoraxMissile; + KORX E 8 Bright; + Goto See; + Command: + KORX E 5 Bright A_FaceTarget; + KORX W 10 Bright A_FaceTarget; + KORX G 15 Bright A_KoraxCommand; + KORX W 10 Bright; + KORX E 5 Bright; + Goto See; + } +} + +class KoraxSpirit : Actor +{ + Default + { + Speed 8; + Projectile; + +NOCLIP + -ACTIVATEPCROSS + -ACTIVATEIMPACT + RenderStyle "Translucent"; + Alpha 0.4; + } + + action native void A_KSpiritRoam(); + + States + { + Spawn: + SPIR AB 5 A_KSpiritRoam; + Loop; + Death: + SPIR DEFGHI 5; + Stop; + } +} + +class KoraxBolt : Actor +{ + Default + { + Radius 15; + Height 35; + Projectile; + -ACTIVATEPCROSS + -ACTIVATEIMPACT + RenderStyle "Add"; + } + + action native void A_KBolt(); + action native void A_KBoltRaise(); + + States + { + Spawn: + MLFX I 2 Bright; + MLFX J 2 Bright A_KBoltRaise; + MLFX IJKLM 2 Bright A_KBolt; + Stop; + } +} diff --git a/wadsrc/static/zscript/hexen/mageplayer.txt b/wadsrc/static/zscript/hexen/mageplayer.txt new file mode 100644 index 000000000..33b34633e --- /dev/null +++ b/wadsrc/static/zscript/hexen/mageplayer.txt @@ -0,0 +1,107 @@ +// The mage ----------------------------------------------------------------- + +class MagePlayer : PlayerPawn +{ + Default + { + Health 100; + ReactionTime 0; + PainChance 255; + Radius 16; + Height 64; + Speed 1; + +NOSKIN + +NODAMAGETHRUST + +PLAYERPAWN.NOTHRUSTWHENINVUL + PainSound "PlayerMagePain"; + RadiusDamageFactor 0.25; + Player.JumpZ 9; + Player.Viewheight 48; + Player.SpawnClass "Mage"; + Player.DisplayName "Mage"; + Player.SoundClass "mage"; + Player.ScoreIcon "MAGEFACE"; + Player.InvulnerabilityMode "Reflective"; + Player.HealRadiusType "Mana"; + Player.Hexenarmor 5, 5, 15, 10, 25; + Player.StartItem "MWeapWand"; + Player.ForwardMove 0.88, 0.92; + Player.SideMove 0.875, 0.925; + Player.Portrait "P_MWALK1"; + Player.WeaponSlot 1, "MWeapWand"; + Player.WeaponSlot 2, "MWeapFrost"; + Player.WeaponSlot 3, "MWeapLightning"; + Player.WeaponSlot 4, "MWeapBloodscourge"; + Player.FlechetteType "ArtiPoisonBag2"; + + Player.ColorRange 146, 163; + Player.Colorset 0, "Blue", 146, 163, 161; + Player.ColorsetFile 1, "Red", "TRANTBL7", 0xB3; + Player.ColorsetFile 2, "Gold", "TRANTBL8", 0x8C; + Player.ColorsetFile 3, "Dull Green", "TRANTBL9", 0x41; + Player.ColorsetFile 4, "Green", "TRANTBLA", 0xC9; + Player.ColorsetFile 5, "Gray", "TRANTBLB", 0x30; + Player.ColorsetFile 6, "Brown", "TRANTBLC", 0x72; + Player.ColorsetFile 7, "Purple", "TRANTBLD", 0xEE; + } + + States + { + Spawn: + MAGE A -1; + Stop; + See: + MAGE ABCD 4; + Loop; + Missile: + Melee: + MAGE EF 8; + Goto Spawn; + Pain: + MAGE G 4; + MAGE G 4 A_Pain; + Goto Spawn; + Death: + MAGE H 6; + MAGE I 6 A_PlayerScream; + MAGE JK 6; + MAGE L 6 A_NoBlocking; + MAGE M 6; + MAGE N -1; + Stop; + XDeath: + MAGE O 5 A_PlayerScream; + MAGE P 5; + MAGE R 5 A_NoBlocking; + MAGE STUVW 5; + MAGE X -1; + Stop; + Ice: + MAGE Y 5 A_FreezeDeath; + MAGE Y 1 A_FreezeDeathChunks; + Wait; + Burn: + FDTH E 5 BRIGHT A_PlaySound("*burndeath"); + FDTH F 4 BRIGHT; + FDTH G 5 BRIGHT; + FDTH H 4 BRIGHT A_PlayerScream; + FDTH I 5 BRIGHT; + FDTH J 4 BRIGHT; + FDTH K 5 BRIGHT; + FDTH L 4 BRIGHT; + FDTH M 5 BRIGHT; + FDTH N 4 BRIGHT; + FDTH O 5 BRIGHT; + FDTH P 4 BRIGHT; + FDTH Q 5 BRIGHT; + FDTH R 4 BRIGHT; + FDTH S 5 BRIGHT A_NoBlocking; + FDTH T 4 BRIGHT; + FDTH U 5 BRIGHT; + FDTH V 4 BRIGHT; + ACLO E 35 A_CheckPlayerDone; + Wait; + ACLO E 8; + Stop; + } +} diff --git a/wadsrc/static/zscript/hexen/pig.txt b/wadsrc/static/zscript/hexen/pig.txt new file mode 100644 index 000000000..8fa446882 --- /dev/null +++ b/wadsrc/static/zscript/hexen/pig.txt @@ -0,0 +1,170 @@ + + +// Snout puff --------------------------------------------------------------- + +class SnoutPuff : Actor +{ + Default + { + +NOBLOCKMAP + +NOGRAVITY + Renderstyle "Translucent"; + Alpha 0.6; + } + + States + { + Spawn: + FHFX STUVW 4; + Stop; + } +} + + +// Snout -------------------------------------------------------------------- + +class Snout : Weapon +{ + Default + { + Weapon.SelectionOrder 10000; + +WEAPON.DONTBOB + +WEAPON.MELEEWEAPON + Weapon.Kickback 150; + Weapon.YAdjust 10; + } + + action native void A_SnoutAttack (); + + States + { + Ready: + WPIG A 1 A_WeaponReady; + Loop; + Deselect: + WPIG A 1 A_Lower; + Loop; + Select: + WPIG A 1 A_Raise; + Fire: + WPIG A 4 A_SnoutAttack; + WPIG B 8 A_SnoutAttack; + Goto Ready; + Grunt: + WPIG B 8; + Goto Ready; + } +} + + +// Pig player --------------------------------------------------------------- + +class PigPlayer : PlayerPawn native +{ + Default + { + Health 30; + ReactionTime 0; + PainChance 255; + Radius 16; + Height 24; + Speed 1; + +WINDTHRUST + +NOSKIN + -PICKUP + PainSound "PigPain"; + DeathSound "PigDeath"; + Player.JumpZ 6; + Player.Viewheight 28; + Player.ForwardMove 0.96, 0.98; + Player.SideMove 0.95833333, 0.975; + Player.SpawnClass "Pig"; + Player.SoundClass "Pig"; + Player.DisplayName "Pig"; + Player.MorphWeapon "Snout"; + } + + States + { + Spawn: + PIGY A -1; + Stop; + See: + PIGY ABCD 3; + Loop; + Pain: + PIGY D 4 A_PigPain; + Goto Spawn; + Melee: + Missile: + PIGY A 12; + Goto Spawn; + Death: + PIGY E 4 A_Scream; + PIGY F 3 A_NoBlocking; + PIGY G 4; + PIGY H 3; + PIGY IJK 4; + PIGY L -1; + Stop; + Ice: + PIGY M 5 A_FreezeDeath; + PIGY M 1 A_FreezeDeathChunks; + Wait; + } +} + + + +// Pig (non-player) --------------------------------------------------------- + +class Pig : MorphedMonster +{ + Default + { + Health 25; + Painchance 128; + Speed 10; + Radius 12; + Height 22; + Mass 60; + Monster; + -COUNTKILL + +WINDTHRUST + +DONTMORPH + SeeSound "PigActive1"; + PainSound "PigPain"; + DeathSound "PigDeath"; + ActiveSound "PigActive1"; + } + + States + { + Spawn: + PIGY B 10 A_Look; + Loop; + See: + PIGY ABCD 3 A_Chase; + Loop; + Pain: + PIGY D 4 A_PigPain; + Goto See; + Melee: + PIGY A 5 A_FaceTarget; + PIGY A 10 A_CustomMeleeAttack(random[PigAttack](2,3), "PigAttack"); + Goto See; + Death: + PIGY E 4 A_Scream; + PIGY F 3 A_NoBlocking; + PIGY G 4 A_QueueCorpse; + PIGY H 3; + PIGY IJK 4; + PIGY L -1; + Stop; + Ice: + PIGY M 5 A_FreezeDeath; + PIGY M 1 A_FreezeDeathChunks; + Wait; + } +} +