gzdoom/wadsrc/static/actors/hexen/demons.txt

385 lines
7.1 KiB
Text

// Demon, type 1 (green, like D'Sparil's) -----------------------------------
ACTOR Demon1
{
Health 250
Painchance 50
Speed 13
Radius 32
Height 64
Mass 220
Monster
+TELESTOMP
+FLOORCLIP
SeeSound "DemonSight"
AttackSound "DemonAttack"
PainSound "DemonPain"
DeathSound "DemonDeath"
ActiveSound "DemonActive"
Obituary "$OB_DEMON1"
const int ChunkFlags = SXF_TRANSFERTRANSLATION | SXF_ABSOLUTEVELOCITY;
States
{
Spawn:
DEMN AA 10 A_Look
Loop
See:
DEMN ABCD 4 A_Chase
Loop
Pain:
DEMN E 4
DEMN E 4 A_Pain
Goto See
Melee:
DEMN E 6 A_FaceTarget
DEMN F 8 A_FaceTarget
DEMN G 6 A_CustomMeleeAttack(random[DemonAttack1](1,8)*2)
Goto See
Missile:
DEMN E 5 A_FaceTarget
DEMN F 6 A_FaceTarget
DEMN G 5 A_CustomMissile("Demon1FX1", 62, 0)
Goto See
Death:
DEMN HI 6
DEMN J 6 A_Scream
DEMN K 6 A_NoBlocking
DEMN L 6 A_QueueCorpse
DEMN MNO 6
DEMN P -1
Stop
XDeath:
DEMN H 6
DEMN I 0 A_SpawnItemEx("Demon1Chunk1", 0,0,45, frandom[DemonChunks](1,4.984375)*cos(Angle+90), frandom[DemonChunks](1,4.984375)*sin(Angle+90), 8, 90, ChunkFlags)
DEMN I 0 A_SpawnItemEx("Demon1Chunk2", 0,0,45, frandom[DemonChunks](1,4.984375)*cos(Angle-90), frandom[DemonChunks](1,4.984375)*sin(Angle-90), 8, 270, ChunkFlags)
DEMN I 0 A_SpawnItemEx("Demon1Chunk3", 0,0,45, frandom[DemonChunks](1,4.984375)*cos(Angle-90), frandom[DemonChunks](1,4.984375)*sin(Angle-90), 8, 270, ChunkFlags)
DEMN I 0 A_SpawnItemEx("Demon1Chunk4", 0,0,45, frandom[DemonChunks](1,4.984375)*cos(Angle-90), frandom[DemonChunks](1,4.984375)*sin(Angle-90), 8, 270, ChunkFlags)
DEMN I 6 A_SpawnItemEx("Demon1Chunk5", 0,0,45, frandom[DemonChunks](1,4.984375)*cos(Angle-90), frandom[DemonChunks](1,4.984375)*sin(Angle-90), 8, 270, ChunkFlags)
Goto Death+2
Ice:
DEMN Q 5 A_FreezeDeath
DEMN Q 1 A_FreezeDeathChunks
Wait
}
}
// Demon, type 1, mashed ----------------------------------------------------
ACTOR Demon1Mash : Demon1
{
+NOBLOOD
+BLASTED
-TELESTOMP
+NOICEDEATH
RenderStyle Translucent
Alpha 0.4
States
{
Death:
XDeath:
Ice:
Stop
}
}
// Demon chunk, base class --------------------------------------------------
ACTOR DemonChunk
{
Radius 5
Height 5
+NOBLOCKMAP
+DROPOFF
+MISSILE
+CORPSE
+FLOORCLIP
+NOTELEPORT
}
// Demon, type 1, chunk 1 ---------------------------------------------------
ACTOR Demon1Chunk1 : DemonChunk
{
States
{
Spawn:
DEMA A 4
DEMA A 10 A_QueueCorpse
DEMA A 20
Wait
Death:
DEMA A -1
Stop
}
}
// Demon, type 1, chunk 2 ---------------------------------------------------
ACTOR Demon1Chunk2 : DemonChunk
{
States
{
Spawn:
DEMB A 4
DEMB A 10 A_QueueCorpse
DEMB A 20
Wait
Death:
DEMB A -1
Stop
}
}
ACTOR Demon1Chunk3 : DemonChunk
{
States
{
Spawn:
DEMC A 4
DEMC A 10 A_QueueCorpse
DEMC A 20
Wait
Death:
DEMC A -1
Stop
}
}
// Demon, type 1, chunk 4 ---------------------------------------------------
ACTOR Demon1Chunk4 : DemonChunk
{
States
{
Spawn:
DEMD A 4
DEMD A 10 A_QueueCorpse
DEMD A 20
Wait
Death:
DEMD A -1
Stop
}
}
// Demon, type 1, chunk 5 ---------------------------------------------------
ACTOR Demon1Chunk5 : DemonChunk
{
States
{
Spawn:
DEME A 4
DEME A 10 A_QueueCorpse
DEME A 20
Wait
Death:
DEME A -1
Stop
}
}
// Demon, type 1, projectile ------------------------------------------------
ACTOR Demon1FX1
{
Speed 15
Radius 10
Height 6
Damage 5
DamageType Fire
Projectile
+SPAWNSOUNDSOURCE
RenderStyle Add
SeeSound "DemonMissileFire"
DeathSound "DemonMissileExplode"
States
{
Spawn:
DMFX ABC 4 Bright
Loop
Death:
DMFX DE 4 Bright
DMFX FGH 3 Bright
Stop
}
}
// Demon, type 2 (brown) ----------------------------------------------------
ACTOR Demon2 : Demon1
{
Obituary "$OB_DEMON2"
Species "Demon2"
States
{
Spawn:
DEM2 AA 10 A_Look
Loop
See:
DEM2 ABCD 4 A_Chase
Loop
Pain:
DEM2 E 4
DEM2 E 4 A_Pain
Goto See
Melee:
DEM2 E 6 A_FaceTarget
DEM2 F 8 A_FaceTarget
DEM2 G 6 A_CustomMeleeAttack(random[DemonAttack1](1,8)*2)
Goto See
Missile:
DEM2 E 5 A_FaceTarget
DEM2 F 6 A_FaceTarget
DEM2 G 5 A_CustomMissile("Demon2FX1", 62, 0)
Goto See
Death:
DEM2 HI 6
DEM2 J 6 A_Scream
DEM2 K 6 A_NoBlocking
DEM2 L 6 A_QueueCorpse
DEM2 MNO 6
DEM2 P -1
Stop
XDeath:
DEM2 H 6
DEM2 I 0 A_SpawnItemEx("Demon2Chunk1", 0,0,45, frandom[DemonChunks](1,4.984375)*cos(Angle+90), frandom[DemonChunks](1,4.984375)*sin(Angle+90), 8, 90, ChunkFlags)
DEM2 I 0 A_SpawnItemEx("Demon2Chunk2", 0,0,45, frandom[DemonChunks](1,4.984375)*cos(Angle-90), frandom[DemonChunks](1,4.984375)*sin(Angle-90), 8, 270, ChunkFlags)
DEM2 I 0 A_SpawnItemEx("Demon2Chunk3", 0,0,45, frandom[DemonChunks](1,4.984375)*cos(Angle-90), frandom[DemonChunks](1,4.984375)*sin(Angle-90), 8, 270, ChunkFlags)
DEM2 I 0 A_SpawnItemEx("Demon2Chunk4", 0,0,45, frandom[DemonChunks](1,4.984375)*cos(Angle-90), frandom[DemonChunks](1,4.984375)*sin(Angle-90), 8, 270, ChunkFlags)
DEM2 I 6 A_SpawnItemEx("Demon2Chunk5", 0,0,45, frandom[DemonChunks](1,4.984375)*cos(Angle-90), frandom[DemonChunks](1,4.984375)*sin(Angle-90), 8, 270, ChunkFlags)
Goto Death+2
}
}
// Demon, type 2, mashed ----------------------------------------------------
ACTOR Demon2Mash : Demon2
{
+NOBLOOD
+BLASTED
-TELESTOMP
+NOICEDEATH
RenderStyle Translucent
Alpha 0.4
States
{
Death:
XDeath:
Ice:
Stop
}
}
// Demon, type 2, chunk 1 ---------------------------------------------------
ACTOR Demon2Chunk1 : DemonChunk
{
States
{
Spawn:
DMBA A 4
DMBA A 10 A_QueueCorpse
DMBA A 20
Wait
Death:
DMBA A -1
Stop
}
}
// Demon, type 2, chunk 2 ---------------------------------------------------
ACTOR Demon2Chunk2 : DemonChunk
{
States
{
Spawn:
DMBB A 4
DMBB A 10 A_QueueCorpse
DMBB A 20
Wait
Death:
DMBB A -1
Stop
}
}
// Demon, type 2, chunk 3 ---------------------------------------------------
ACTOR Demon2Chunk3 : DemonChunk
{
States
{
Spawn:
DMBC A 4
DMBC A 10 A_QueueCorpse
DMBC A 20
Wait
Death:
DMBC A -1
Stop
}
}
// Demon, type 2, chunk 4 ---------------------------------------------------
ACTOR Demon2Chunk4 : DemonChunk
{
States
{
Spawn:
DMBD A 4
DMBD A 10 A_QueueCorpse
DMBD A 20
Wait
Death:
DMBD A -1
Stop
}
}
// Demon, type 2, chunk 5 ---------------------------------------------------
ACTOR Demon2Chunk5 : DemonChunk
{
States
{
Spawn:
DMBE A 4
DMBE A 10 A_QueueCorpse
DMBE A 20
Wait
Death:
DMBE A -1
Stop
}
}
// Demon, type 2, projectile ------------------------------------------------
ACTOR Demon2FX1
{
Speed 15
Radius 10
Height 6
Damage 5
DamageType Fire
Projectile
+SPAWNSOUNDSOURCE
RenderStyle Add
SeeSound "DemonMissileFire"
DeathSound "DemonMissileExplode"
States
{
Spawn:
D2FX ABCDEF 4 Bright
Loop
Death:
D2FX GHIJ 4 Bright
D2FX KL 3 Bright
Stop
}
}