File
- Defined in \monsters\Pain.txt
Flags
Properties
//$category | Monsters |
activesound | "pain/active" |
bloodtype | "BdBleed", "BdBleed", "BdBleedSaw" |
damagefactor | "Crush" 10.0 "Blood" 0.0 "BlueBlood" 0.0 "GreenBlood" 0.0 "Avoid" 0.0 "CauseObjectsToSplash" 0.0 "Flak" 2.5 |
damagetype | Flames |
deathsound | "pain/death" |
game | Doom |
health | 300 |
height | 56 |
mass | 400 |
maxdropoffheight | 32 |
maxstepheight | 24 |
painchance | 128"Kick", 255 |
painsound | "pain/pain" |
radius | 31 |
scale | 1.2 |
seesound | "pain/sight" |
species | PainElemental |
speed | 9 |
States
Spawn:
PAIN A 10 A_Look
loop
See:
PAIN AABBCC 3 A_Chase
TNT1 A 0 A_JumpIfCloser(200, "Retreat")
loop
Retreat:
TNT1 A 0 A_FaceTarget
PAIN AABBCC 3
{
A_Recoil(5);
A_SetAngle(angle + random(-10, 10));
}
goto See
Missile:
TNT1 A 0 A_JumpIfCloser(200, "Retreat")
PAIN DE 7 A_FaceTarget
PAIN F 5 BRIGHT A_FaceTarget
PAIN F 2 BRIGHT A_PainAttack
PAIN ED 7
goto See
Pain:
PAIN G 6
PAIN G 6 A_Pain
goto See
Pain.Kick:
Pain.SuperKick:
TNT1 A 0 A_FaceTarget
TNT1 A 0 A_Recoil(10)
PAIN G 12
PAIN G 12 A_Pain
goto See
Death:
PAIN H 8 BRIGHT
PAIN I 8 BRIGHT A_Scream
TNT1 A 0 A_Explode(220, 220)
TNT1 AA 0 A_SpawnProjectile("BdBloodSpawnerLarge", 5, 0, random(0, 360), CMF_AIMDIRECTION, random(-30, -180))
TNT1 AAAAAAAA 0 A_SpawnProjectile("BdBloodLump", 32, 0, random(0, 360), CMF_AIMDIRECTION, random(0, -160))
TNT1 A 0 A_SpawnItemEx("ExplosionParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
TNT1 AAAAAAAAAAAAAAAAA 0 A_SpawnProjectile("FireBallExplosion", 6, 0, random(0, 360), CMF_AIMDIRECTION, random(0, -360))
TNT1 A 0 A_PainDie
TNT1 AAAAAA 0
{
A_SpawnProjectile("BdGibPainPiece1", 32, 0, random(0, 360), CMF_AIMDIRECTION, random(0, -160));
A_SpawnProjectile("BdGibPainPiece2", 32, 0, random(0, 360), CMF_AIMDIRECTION, random(0, -160));
}
ExplosionLoop:
TNT1 A 0 A_SpawnProjectile("ExplosionSmoke", 1, 0, random(0, 360), CMF_AIMDIRECTION, random(-70, -110))
TNT1 AAA 4 A_SpawnProjectile("RealFlameTrailsSmallLong", 1, 0, random(0, 360), CMF_AIMDIRECTION, random(-70, -110))
TNT1 A 0 A_SetUserVar("user_loop_index", user_loop_index + 1)
TNT1 A 0 A_JumpIf(user_loop_index <= 20, "ExplosionLoop")
stop