|
------------------------------------------------------------------------ //========== Wind sound IMPLEMENT_ACTOR (ASoundWind, Raven, -1, 110) PROP_SpawnState (0) PROP_Flags (MF_NOBLOCKMAP|MF_NOSECTOR) END_DEFAULTS FState ASoundWind::States[] = { S_NORMAL1 (TNT1, 'A', 2, A_WindSound, &States[0]) }; ------------------------------------------------------------------------ //========== Waterfall sound IMPLEMENT_ACTOR (ASoundWaterfall, Raven, 41, 111) PROP_Flags (MF_NOBLOCKMAP|MF_NOSECTOR) PROP_SpawnState (0) END_DEFAULTS FState ASoundWaterfall::States[] = { S_NORMAL1 (TNT1, 'A', 2, A_WaterfallSound, &States[0]) }; ------------------------------------------------------------------------ //========== Maulotaur IMPLEMENT_ACTOR (AMinotaur, Raven, -1, 0) PROP_SpawnHealth(3000) PROP_RadiusFixed(28) PROP_HeightFixed(100) PROP_Mass(800) PROP_SpeedFixed(16) PROP_Damage(7) PROP_PainChance(25) PROP_Flags(MF_SOLID|MF_SHOOTABLE|MF_COUNTKILL|MF_DROPOFF) PROP_Flags2(MF2_FLOORCLIP|MF2_PASSMOBJ|MF2_BOSS|MF2_PUSHWALL) PROP_Flags3(MF3_NORADIUSDMG|MF3_DONTMORPH|MF3_NOTARGET) PROP_SpawnState(S_MNTR_LOOK) PROP_SeeState(S_MNTR_WALK) PROP_PainState(S_MNTR_PAIN) PROP_MeleeState(S_MNTR_ATK1) PROP_MissileState(S_MNTR_ATK2) PROP_DeathState(S_MNTR_DIE) PROP_SeeSound("minotaur/sight") PROP_AttackSound("minotaur/attack1") PROP_PainSound("minotaur/pain") PROP_DeathSound("minotaur/death") PROP_ActiveSound("minotaur/active") END_DEFAULTS FState AMinotaur::States[] = { #define S_MNTR_LOOK 0 S_NORMAL1 (MNTR, 'A', 10, A_MinotaurLook , &States[S_MNTR_LOOK+1]), S_NORMAL1 (MNTR, 'B', 10, A_MinotaurLook , &States[S_MNTR_LOOK+0]), #define S_MNTR_ROAM (S_MNTR_LOOK+2) S_NORMAL1 (MNTR, 'A', 5, A_MinotaurRoam , &States[S_MNTR_ROAM+1]), S_NORMAL1 (MNTR, 'B', 5, A_MinotaurRoam , &States[S_MNTR_ROAM+2]), S_NORMAL1 (MNTR, 'C', 5, A_MinotaurRoam , &States[S_MNTR_ROAM+3]), S_NORMAL1 (MNTR, 'D', 5, A_MinotaurRoam , &States[S_MNTR_ROAM]), #define S_MNTR_WALK (S_MNTR_ROAM+4) S_NORMAL1 (MNTR, 'A', 5, A_MinotaurChase , &States[S_MNTR_WALK+1]), S_NORMAL1 (MNTR, 'B', 5, A_MinotaurChase , &States[S_MNTR_WALK+2]), S_NORMAL1 (MNTR, 'C', 5, A_MinotaurChase , &States[S_MNTR_WALK+3]), S_NORMAL1 (MNTR, 'D', 5, A_MinotaurChase , &States[S_MNTR_WALK+0]), #define S_MNTR_ATK1 (S_MNTR_WALK+4) S_NORMAL1 (MNTR, 'V', 10, A_FaceTarget , &States[S_MNTR_ATK1+1]), S_NORMAL1 (MNTR, 'W', 7, A_FaceTarget , &States[S_MNTR_ATK1+2]), S_NORMAL1 (MNTR, 'X', 12, A_MinotaurAtk1 , &States[S_MNTR_WALK+0]), #define S_MNTR_ATK2 (S_MNTR_ATK1+3) S_NORMAL1 (MNTR, 'V', 10, A_MinotaurDecide, &States[S_MNTR_ATK2+1]), S_NORMAL1 (MNTR, 'Y', 4, A_FaceTarget , &States[S_MNTR_ATK2+2]), S_NORMAL1 (MNTR, 'Z', 9, A_MinotaurAtk2 , &States[S_MNTR_WALK+0]), #define S_MNTR_ATK3 (S_MNTR_ATK2+3) S_NORMAL1 (MNTR, 'V', 10, A_FaceTarget , &States[S_MNTR_ATK3+1]), S_NORMAL1 (MNTR, 'W', 7, A_FaceTarget , &States[S_MNTR_ATK3+2]), S_NORMAL1 (MNTR, 'X', 12, A_MinotaurAtk3 , &States[S_MNTR_WALK+0]), S_NORMAL1 (MNTR, 'X', 12, NULL , &States[S_MNTR_ATK3+0]), #define S_MNTR_ATK4 (S_MNTR_ATK3+4) S_NORMAL1 (MNTR, 'U', 2, A_MinotaurCharge, &States[S_MNTR_ATK4+0]), #define S_MNTR_PAIN (S_MNTR_ATK4+1) S_NORMAL1 (MNTR, 'E', 3, NULL , &States[S_MNTR_PAIN+1]), S_NORMAL1 (MNTR, 'E', 6, A_Pain , &States[S_MNTR_WALK+0]), #define S_MNTR_DIE (S_MNTR_PAIN+2) S_NORMAL1 (MNTR, 'F', 6, NULL , &States[S_MNTR_DIE+1]), S_NORMAL1 (MNTR, 'G', 5, NULL , &States[S_MNTR_DIE+2]), S_NORMAL1 (MNTR, 'H', 6, A_Scream , &States[S_MNTR_DIE+3]), S_NORMAL1 (MNTR, 'I', 5, NULL , &States[S_MNTR_DIE+4]), S_NORMAL1 (MNTR, 'J', 6, NULL , &States[S_MNTR_DIE+5]), S_NORMAL1 (MNTR, 'K', 5, NULL , &States[S_MNTR_DIE+6]), S_NORMAL1 (MNTR, 'L', 6, NULL , &States[S_MNTR_DIE+7]), S_NORMAL1 (MNTR, 'M', 5, A_NoBlocking , &States[S_MNTR_DIE+8]), S_NORMAL1 (MNTR, 'N', 6, NULL , &States[S_MNTR_DIE+9]), S_NORMAL1 (MNTR, 'O', 5, NULL , &States[S_MNTR_DIE+10]), S_NORMAL1 (MNTR, 'P', 6, NULL , &States[S_MNTR_DIE+11]), S_NORMAL1 (MNTR, 'Q', 5, NULL , &States[S_MNTR_DIE+12]), S_NORMAL1 (MNTR, 'R', 6, NULL , &States[S_MNTR_DIE+13]), S_NORMAL1 (MNTR, 'S', 5, NULL , &States[S_MNTR_DIE+14]), S_NORMAL1 (MNTR, 'T', -1, A_BossDeath , NULL), #define S_MNTR_FADEIN (S_MNTR_DIE+15) S_NORMAL1 (MNTR, 'A', 15, NULL , &States[S_MNTR_FADEIN+1]), S_NORMAL1 (MNTR, 'A', 15, A_MinotaurFade1 , &States[S_MNTR_FADEIN+2]), S_NORMAL1 (MNTR, 'A', 3, A_MinotaurFade2 , &States[S_MNTR_LOOK]), #define S_MNTR_FADEOUT (S_MNTR_FADEIN+3) S_NORMAL1 (MNTR, 'E', 6, NULL , &States[S_MNTR_FADEOUT+1]), S_NORMAL1 (MNTR, 'E', 2, A_Scream , &States[S_MNTR_FADEOUT+2]), S_NORMAL1 (MNTR, 'E', 5, A_SmokePuffExit , &States[S_MNTR_FADEOUT+3]), S_NORMAL1 (MNTR, 'E', 5, NULL , &States[S_MNTR_FADEOUT+4]), S_NORMAL1 (MNTR, 'E', 5, A_NoBlocking , &States[S_MNTR_FADEOUT+5]), S_NORMAL1 (MNTR, 'E', 5, NULL , &States[S_MNTR_FADEOUT+6]), S_NORMAL1 (MNTR, 'E', 5, A_MinotaurFade1 , &States[S_MNTR_FADEOUT+7]), S_NORMAL1 (MNTR, 'E', 5, A_MinotaurFade0 , &States[S_MNTR_FADEOUT+8]), S_NORMAL1 (MNTR, 'E', 10, NULL , NULL), }; ------------------------------------------------------------------------ //========== The fireballs created by a swing from a maulotaur's maul. IMPLEMENT_ACTOR (AMinotaurFX1, Raven, -1, 0) PROP_RadiusFixed (10) PROP_HeightFixed (6) PROP_SpeedFixed (20) PROP_Damage (3) PROP_DamageType (MOD_FIRE) PROP_Flags (MF_NOBLOCKMAP|MF_MISSILE|MF_DROPOFF|MF_NOGRAVITY) PROP_Flags2 (MF2_NOTELEPORT) PROP_Flags4 (MF4_BLOODSPLATTER) PROP_SpawnState (S_MNTRFX1) PROP_DeathState (S_MNTRFXI1) END_DEFAULTS FState AMinotaurFX1::States[] = { #define S_MNTRFX1 0 S_BRIGHT (FX12, 'A', 6, NULL, &States[S_MNTRFX1+1]), S_BRIGHT (FX12, 'B', 6, NULL, &States[S_MNTRFX1+0]), #define S_MNTRFXI1 (S_MNTRFX1+2) S_BRIGHT (FX12, 'C', 5, NULL, &States[S_MNTRFXI1+1]), S_BRIGHT (FX12, 'D', 5, NULL, &States[S_MNTRFXI1+2]), S_BRIGHT (FX12, 'E', 5, NULL, &States[S_MNTRFXI1+3]), S_BRIGHT (FX12, 'F', 5, NULL, &States[S_MNTRFXI1+4]), S_BRIGHT (FX12, 'G', 5, NULL, &States[S_MNTRFXI1+5]), S_BRIGHT (FX12, 'H', 5, NULL, NULL) }; ------------------------------------------------------------------------ //========== The running flame created by an impact on the ground from a maulotaur's maul. IMPLEMENT_ACTOR (AMinotaurFX2, Raven, -1, 0) PROP_RadiusFixed (5) PROP_HeightFixed (12) PROP_SpeedFixed (14) PROP_Damage (4) PROP_Flags3 (MF3_FLOORHUGGER) PROP_SpawnState (S_MNTRFX2) PROP_DeathState (S_MNTRFXI2) PROP_DeathSound ("minotaur/fx2hit") END_DEFAULTS FState AMinotaurFX2::States[] = { #define S_MNTRFX2 0 S_NORMAL1 (FX13, 'A', 2, A_MntrFloorFire, &States[S_MNTRFX2+0]), #define S_MNTRFXI2 (S_MNTRFX2+1) S_BRIGHT (FX13, 'I', 4, A_Explode , &States[S_MNTRFXI2+1]), S_BRIGHT (FX13, 'J', 4, NULL , &States[S_MNTRFXI2+2]), S_BRIGHT (FX13, 'K', 4, NULL , &States[S_MNTRFXI2+3]), S_BRIGHT (FX13, 'L', 4, NULL , &States[S_MNTRFXI2+4]), S_BRIGHT (FX13, 'M', 4, NULL , NULL) }; ------------------------------------------------------------------------ //========== The flame trail left behind the running flame from an impact on the ground from a maulotaur's maul. IMPLEMENT_ACTOR (AMinotaurFX3, Raven, -1, 0) PROP_RadiusFixed (8) PROP_HeightFixed (16) PROP_SpeedFixed (0) PROP_Flags3 (0) PROP_SpawnState (S_MNTRFX3) PROP_DeathSound ("minotaur/fx3hit") END_DEFAULTS FState AMinotaurFX3::States[] = { #define S_MNTRFX3 0 S_BRIGHT (FX13, 'D', 4, NULL, &States[S_MNTRFX3+1]), S_BRIGHT (FX13, 'C', 4, NULL, &States[S_MNTRFX3+2]), S_BRIGHT (FX13, 'B', 5, NULL, &States[S_MNTRFX3+3]), S_BRIGHT (FX13, 'C', 5, NULL, &States[S_MNTRFX3+4]), S_BRIGHT (FX13, 'D', 5, NULL, &States[S_MNTRFX3+5]), S_BRIGHT (FX13, 'E', 5, NULL, &States[S_MNTRFX3+6]), S_BRIGHT (FX13, 'F', 4, NULL, &States[S_MNTRFX3+7]), S_BRIGHT (FX13, 'G', 4, NULL, &States[S_MNTRFX3+8]), S_BRIGHT (FX13, 'H', 4, NULL, NULL) }; ------------------------------------------------------------------------ //========== Teleport (self) artifact IMPLEMENT_ACTOR (AArtiTeleport, Raven, 36, 18) PROP_Flags (MF_SPECIAL|MF_COUNTITEM) PROP_Flags2 (MF2_FLOATBOB) PROP_SpawnState (0) END_DEFAULTS FState AArtiTeleport::States[] = { S_NORMAL1 (ATLP, 'A', 4, NULL, &States[1]), S_NORMAL1 (ATLP, 'B', 4, NULL, &States[2]), S_NORMAL1 (ATLP, 'C', 4, NULL, &States[3]), S_NORMAL1 (ATLP, 'B', 4, NULL, &States[0]) }; ------------------------------------------------------------------------ //========== Health artifact IMPLEMENT_ACTOR (AArtiHealth, Raven, 82, 24) PROP_Flags (MF_SPECIAL|MF_COUNTITEM) PROP_Flags2 (MF2_FLOATBOB) PROP_SpawnState (0) END_DEFAULTS FState AArtiHealth::States[] = { S_NORMAL1 (PTN2, 'A', 4, NULL, &States[1]), S_NORMAL1 (PTN2, 'B', 4, NULL, &States[2]), S_NORMAL1 (PTN2, 'C', 4, NULL, &States[0]) }; ------------------------------------------------------------------------ //========== Super health artifact IMPLEMENT_ACTOR (AArtiSuperHealth, Raven, 32, 25) PROP_Flags (MF_SPECIAL|MF_COUNTITEM) PROP_Flags2 (MF2_FLOATBOB) PROP_SpawnState (0) END_DEFAULTS FState AArtiSuperHealth::States[] = { S_NORMAL1 (SPHL, 'A', 350, NULL, &States[0]) }; ------------------------------------------------------------------------ //========== Flight artifact IMPLEMENT_ACTOR (AArtiFly, Raven, 83, 15) PROP_Flags (MF_SPECIAL|MF_COUNTITEM) PROP_Flags2 (MF2_FLOATBOB) PROP_SpawnState (0) END_DEFAULTS FState AArtiFly::States[] = { S_NORMAL1 (SOAR, 'A', 5, NULL, &States[1]), S_NORMAL1 (SOAR, 'B', 5, NULL, &States[2]), S_NORMAL1 (SOAR, 'C', 5, NULL, &States[3]), S_NORMAL1 (SOAR, 'B', 5, NULL, &States[0]) }; ------------------------------------------------------------------------ //========== Invulnerability artifact IMPLEMENT_ACTOR (AArtiInvulnerability, Raven, 84, 133) PROP_Flags (MF_SPECIAL|MF_COUNTITEM) PROP_Flags2 (MF2_FLOATBOB) PROP_SpawnState (0) END_DEFAULTS FState AArtiInvulnerability::States[] = { S_NORMAL1 (INVU, 'A', 3, NULL, &States[1]), S_NORMAL1 (INVU, 'B', 3, NULL, &States[2]), S_NORMAL1 (INVU, 'C', 3, NULL, &States[3]), S_NORMAL1 (INVU, 'D', 3, NULL, &States[0]) }; ------------------------------------------------------------------------ //========== Torch artifact IMPLEMENT_ACTOR (AArtiTorch, Raven, 33, 73) PROP_Flags (MF_SPECIAL|MF_COUNTITEM) PROP_Flags2 (MF2_FLOATBOB) PROP_SpawnState (0) END_DEFAULTS FState AArtiTorch::States[] = { S_BRIGHT (TRCH, 'A', 3, NULL, &States[1]), S_BRIGHT (TRCH, 'B', 3, NULL, &States[2]), S_BRIGHT (TRCH, 'C', 3, NULL, &States[0]) }; ------------------------------------------------------------------------ //========== Crystal vial IMPLEMENT_ACTOR (ACrystalVial, Raven, 81, 23) PROP_Flags (MF_SPECIAL) PROP_Flags2 (MF2_FLOATBOB) PROP_SpawnState (0) END_DEFAULTS FState ACrystalVial::States[] = { S_NORMAL1 (PTN1, 'A', 3, NULL, &States[1]), S_NORMAL1 (PTN1, 'B', 3, NULL, &States[2]), S_NORMAL1 (PTN1, 'C', 3, NULL, &States[0]) }; ------------------------------------------------------------------------