// 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"; } action native void A_Sor1Pain (); action native void A_Sor1Chase (); action native void A_Srcr1Attack (); action 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"; } action native void A_Srcr2Decide (); action native void A_Srcr2Attack (); action native void A_Sor2DthInit (); action 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"; } action 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"; } action 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; } }