Classes:Sorcerer1

From ZDoom Wiki
Jump to: navigation, search
Note: Wait! Stop! Before you copy this actor's definition into your mod, remember the following things:
  1. You do not need to copy that actor, since it is already defined.
  2. In fact, it's not just useless, it's actually harmful as it can cause problems.
  3. If you want to modify it, or use a modified version, using inheritance is the way to go.
  4. The actor definitions here are put on the wiki for reference purpose only. Learn from them, don't copy them.
  5. There is only one exception: if what you want is changing Ammo capacity, you need to create a new type from Ammo.
D'Sparil on his mount
Actor type Monster Game MiniHereticLogoIcon.png
DoomEd Number 7 Class Name Sorcerer1
Spawn ID 142 Identifier T_DSPARILONSERPENT


Classes: Sorcerer1
The youngest and weakest of the Serpent Riders, D'Sparil doesn't battle alone like his elders Korax and Eidolon; but rides a chaos serpent to the battle. Which is fair enough for a Serpent Rider. In this form, D'Sparil lets his mount do all the work, the native action A_Srcr1Attack makes it spew forth fireballs that are visually similar to those of the average chaos serpent, but twice as powerful. Once the serpent's health lowers to 666 or less, it starts spitting six of these fireballs in two volleys of three. Its native action A_Sor1Pain makes it walk faster the next time it uses A_Sor1Chase. When it finally dies, D'Sparil quickly rises to battle, something handled by the native action A_SorcererRise which spawns a Sorcerer2 and sets it to its "rise" state.

DECORATE definition

ACTOR Sorcerer1
{
  Health 2000
  Radius 28
  Height 100
  Mass 800
  Speed 16
  PainChance 56
  Monster
  +BOSS
  +DONTMORPH
  +NORADIUSDMG
  +NOTARGET
  +NOICEDEATH
  +FLOORCLIP
  +DONTGIB
  SeeSound "dsparilserpent/sight"
  AttackSound "dsparilserpent/attack"
  PainSound "dsparilserpent/pain"
  DeathSound "dsparilserpent/death"
  ActiveSound "dsparilserpent/active"
  Obituary "$OB_DSPARIL1"
  HitObituary "$OB_DSPARIL1HIT"

  action native A_Sor1Pain();
  action native A_Sor1Chase();
  action native A_Srcr1Attack();
  action native A_SorcererRise();

  States
  {
  Spawn:
    SRCR AB 10 A_Look
    Loop
  See:
    SRCR ABCD 5 A_Sor1Chase
    Loop
  Pain:
    SRCR Q 6 A_Sor1Pain
    Goto See
  Missile:
    SRCR Q 7 A_FaceTarget
    SRCR R 6 A_FaceTarget
    SRCR S 10 A_Srcr1Attack
    Goto See
  Missile2:
    SRCR S 10 A_FaceTarget
    SRCR Q 7 A_FaceTarget
    SRCR R 6 A_FaceTarget
    SRCR S 10 A_Srcr1Attack
    Goto See
  Death:
    SRCR E 7
    SRCR F 7 A_Scream
    SRCR G 7
    SRCR HIJK 6
    SRCR L 25 A_PlaySound("dsparil/zap", CHAN_BODY, 1, FALSE, ATTN_NONE)
    SRCR MN 5
    SRCR O 4
    SRCR L 20 A_PlaySound("dsparil/zap", CHAN_BODY, 1, FALSE, ATTN_NONE)
    SRCR MN 5
    SRCR O 4
    SRCR L 12
    SRCR P -1 A_SorcererRise
  }
}