qzdoom/wadsrc/static/zscript/actors/doom/cyberdemon.zs

90 lines
1.5 KiB
Text

//===========================================================================
//
// Cyberdemon
//
//===========================================================================
class Cyberdemon : Actor
{
Default
{
Health 4000;
Radius 40;
Height 110;
Mass 1000;
Speed 16;
PainChance 20;
Monster;
MinMissileChance 160;
+BOSS
+MISSILEMORE
+FLOORCLIP
+NORADIUSDMG
+DONTMORPH
+BOSSDEATH
SeeSound "cyber/sight";
PainSound "cyber/pain";
DeathSound "cyber/death";
ActiveSound "cyber/active";
Obituary "$OB_CYBORG";
Tag "$FN_CYBER";
}
States
{
Spawn:
CYBR AB 10 A_Look;
Loop;
See:
CYBR A 3 A_Hoof;
CYBR ABBCC 3 A_Chase;
CYBR D 3 A_Metal;
CYBR D 3 A_Chase;
Loop;
Missile:
CYBR E 6 A_FaceTarget;
CYBR F 12 A_CyberAttack;
CYBR E 12 A_FaceTarget;
CYBR F 12 A_CyberAttack;
CYBR E 12 A_FaceTarget;
CYBR F 12 A_CyberAttack;
Goto See;
Pain:
CYBR G 10 A_Pain;
Goto See;
Death:
CYBR H 10;
CYBR I 10 A_Scream;
CYBR JKL 10;
CYBR M 10 A_NoBlocking;
CYBR NO 10;
CYBR P 30;
CYBR P -1 A_BossDeath;
Stop;
}
}
//===========================================================================
//
// Code (must be attached to Actor)
//
//===========================================================================
extend class Actor
{
void A_CyberAttack()
{
if (target)
{
A_FaceTarget();
SpawnMissile (target, "Rocket");
}
}
void A_Hoof()
{
A_PlaySound("cyber/hoof", CHAN_BODY, 1, false, ATTN_IDLE);
A_Chase();
}
}