qzdoom/wadsrc/static/zscript/heretic/dsparil.txt
Christoph Oelckers 371712c53a - turned everything I could into non-action functions.
- fixed emission of the self pointer in FxVMFunctionCall. I did not realize that the self expression only sets up a register for the value, not pushing it onto the stack.
2016-10-22 17:49:08 +02:00

297 lines
4.6 KiB
Text

// Boss spot ----------------------------------------------------------------
class BossSpot : SpecialSpot
{
Default
{
+INVISIBLE
}
}
// Sorcerer (D'Sparil on his serpent) ---------------------------------------
class Sorcerer1 : Actor
{
Default
{
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";
}
native void A_Sor1Pain ();
native void A_Sor1Chase ();
native void A_Srcr1Attack ();
native void 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;
}
}
// Sorcerer FX 1 ------------------------------------------------------------
class SorcererFX1 : Actor
{
Default
{
Radius 10;
Height 10;
Speed 20;
FastSpeed 28;
Damage 10;
DamageType "Fire";
Projectile;
-ACTIVATEIMPACT
-ACTIVATEPCROSS
RenderStyle "Add";
}
States
{
Spawn:
FX14 ABC 6 BRIGHT;
Loop;
Death:
FX14 DEFGH 5 BRIGHT;
Stop;
}
}
// Sorcerer 2 (D'Sparil without his serpent) --------------------------------
class Sorcerer2 : Actor
{
Default
{
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";
}
native void A_Srcr2Decide ();
native void A_Srcr2Attack ();
native void A_Sor2DthInit ();
native void 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;
}
}
// Sorcerer 2 FX 1 ----------------------------------------------------------
class Sorcerer2FX1 : Actor
{
Default
{
Radius 10;
Height 6;
Speed 20;
FastSpeed 28;
Damage 1;
Projectile;
-ACTIVATEIMPACT
-ACTIVATEPCROSS
RenderStyle "Add";
}
native void A_BlueSpark ();
States
{
Spawn:
FX16 ABC 3 BRIGHT A_BlueSpark;
Loop;
Death:
FX16 G 5 BRIGHT A_Explode(random[S2FX1](80,111));
FX16 HIJKL 5 BRIGHT;
Stop;
}
}
// Sorcerer 2 FX Spark ------------------------------------------------------
class Sorcerer2FXSpark : Actor
{
Default
{
Radius 20;
Height 16;
+NOBLOCKMAP
+NOGRAVITY
+NOTELEPORT
+CANNOTPUSH
RenderStyle "Add";
}
States
{
Spawn:
FX16 DEF 12 BRIGHT;
Stop;
}
}
// Sorcerer 2 FX 2 ----------------------------------------------------------
class Sorcerer2FX2 : Actor
{
Default
{
Radius 10;
Height 6;
Speed 6;
Damage 10;
Projectile;
-ACTIVATEIMPACT
-ACTIVATEPCROSS
RenderStyle "Add";
}
native void A_GenWizard ();
States
{
Spawn:
FX11 A 35 BRIGHT;
FX11 A 5 BRIGHT A_GenWizard;
FX11 B 5 BRIGHT;
Goto Spawn+1;
Death:
FX11 CDEFG 5 BRIGHT;
Stop;
}
}
// Sorcerer 2 Telefade ------------------------------------------------------
class Sorcerer2Telefade : Actor
{
Default
{
+NOBLOCKMAP
}
States
{
Spawn:
SOR2 GHIJKL 6;
Stop;
}
}