|
Note: Wait! Stop! You do not need to copy this actor's code into your project! Here's why:
- This actor is already defined in GZDoom, there's no reason to define it again.
- In fact, trying to define an actor with the same name will cause an error (because it already exists).
- If you want to make your own version of this actor, use inheritance.
- Definitions for existing actors are put on the wiki for reference purpose only.
|
D'Sparil
|
Actor type
|
Monster
|
Game
|
(Heretic)
|
DoomEd Number
|
None
|
Class Name
|
Sorcerer2
|
Spawn ID
|
143
|
Identifier
|
T_DSPARILALONE
|
Classes: Sorcerer2
After D'Sparil's mount is slain, it appears for a moment that the Serpent Rider is dead, too. But he quickly rises to his feet and begins battle alone. It shouldn't be a surprise that he is a tougher opponent than his pet. The native action A_Srcr2Decide is used to determine whether he teleports before an attack, while A_Srcr2Attack will make him either perform a melee attack, throw a devastating lightning bolt or summon forth two of his Disciples through summoning spells. When he dies, A_Sor2DthInit kills all remaining monsters on the level and sets his deathloop to loop seven times. A_Sor2DthLoop controls this looping behavior; an identical result could have been achieved with SDTH DEFDEFDEFDEFDEFDEFDEF 7
.
ACTOR Sorcerer2
{
Health 3500
Radius 16
Height 70
Mass 300
Speed 14
PainChance 32
Monster
+DROPOFF
+BOSS
+DONTMORPH
+FULLVOLACTIVE
+NORADIUSDMG
+NOTARGET
+NOICEDEATH
+FLOORCLIP
+BOSSDEATH
SeeSound "dsparil/sight"
AttackSound "dsparil/attack"
PainSound "dsparil/pain"
ActiveSound "dsparil/active"
Obituary "$OB_DSPARIL2"
HitObituary "$OB_DSPARIL2HIT"
action native A_Srcr2Decide();
action native A_Srcr2Attack();
action native A_Sor2DthInit();
action native A_Sor2DthLoop();
States
{
Spawn:
SOR2 MN 10 A_Look
Loop
See:
SOR2 MNOP 4 A_Chase
Loop
Rise:
SOR2 AB 4
SOR2 C 4 A_PlaySound("dsparil/rise", CHAN_BODY, 1, FALSE, ATTN_NONE)
SOR2 DEF 4
SOR2 G 12 A_PlaySound("dsparil/sight", CHAN_BODY, 1, FALSE, ATTN_NONE)
Goto See
Pain:
SOR2 Q 3
SOR2 Q 6 A_Pain
Goto See
Missile:
SOR2 R 9 A_Srcr2Decide
SOR2 S 9 A_FaceTarget
SOR2 T 20 A_Srcr2Attack
Goto See
Teleport:
SOR2 LKJIHG 6
Goto See
Death:
SDTH A 8 A_Sor2DthInit
SDTH B 8
SDTH C 8 A_PlaySound("dsparil/scream", CHAN_BODY, 1, FALSE, ATTN_NONE)
DeathLoop:
SDTH DE 7
SDTH F 7 A_Sor2DthLoop
SDTH G 6 A_PlaySound("dsparil/explode", CHAN_BODY, 1, FALSE, ATTN_NONE)
SDTH H 6
SDTH I 18
SDTH J 6 A_NoBlocking
SDTH K 6 A_PlaySound("dsparil/bones", CHAN_BODY, 1, FALSE, ATTN_NONE)
SDTH LMN 6
SDTH O -1 A_BossDeath
Stop
}
}