gzdoom/wadsrc/static/zscript/raven/minotaur.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

236 lines
3.6 KiB
Text

class Minotaur : Actor native
{
Default
{
Health 3000;
Radius 28;
Height 100;
Mass 800;
Speed 16;
Damage 7;
Painchance 25;
Monster;
+DROPOFF
+FLOORCLIP
+BOSS
+NORADIUSDMG
+DONTMORPH
+NOTARGET
+BOSSDEATH
SeeSound "minotaur/sight";
AttackSound "minotaur/attack1";
PainSound "minotaur/pain";
DeathSound "minotaur/death";
ActiveSound "minotaur/active";
DropItem "ArtiSuperHealth", 51;
DropItem "PhoenixRodAmmo", 84, 10;
}
native void A_MinotaurDecide();
native void A_MinotaurAtk1();
native void A_MinotaurAtk2();
native void A_MinotaurAtk3();
native void A_MinotaurCharge();
native void A_MinotaurLook();
native void A_MinotaurRoam();
native void A_MinotaurChase();
native void A_MinotaurDeath();
States
{
Spawn:
MNTR AB 10 A_MinotaurLook;
Loop;
Roam:
MNTR ABCD 5 A_MinotaurRoam;
Loop;
See:
MNTR ABCD 5 A_MinotaurChase;
Loop;
Melee:
MNTR V 10 A_FaceTarget;
MNTR W 7 A_FaceTarget;
MNTR X 12 A_MinotaurAtk1;
Goto See;
Missile:
MNTR V 10 A_MinotaurDecide;
MNTR Y 4 A_FaceTarget;
MNTR Z 9 A_MinotaurAtk2;
Goto See;
Hammer:
MNTR V 10 A_FaceTarget;
MNTR W 7 A_FaceTarget;
MNTR X 12 A_MinotaurAtk3;
Goto See;
HammerLoop:
MNTR X 12;
Goto Hammer;
Charge:
MNTR U 2 A_MinotaurCharge;
Loop;
Pain:
MNTR E 3;
MNTR E 6 A_Pain;
Goto See;
Death:
MNTR F 6 A_MinotaurDeath;
MNTR G 5;
MNTR H 6 A_Scream;
MNTR I 5;
MNTR J 6;
MNTR K 5;
MNTR L 6;
MNTR M 5 A_NoBlocking;
MNTR N 6;
MNTR O 5;
MNTR P 6;
MNTR Q 5;
MNTR R 6;
MNTR S 5;
MNTR T -1 A_BossDeath;
Stop;
FadeOut:
MNTR E 6;
MNTR E 2 A_Scream;
MNTR E 5 A_SpawnItemEx("MinotaurSmokeExit");
MNTR E 5;
MNTR E 5 A_NoBlocking;
MNTR E 5;
MNTR E 5 A_SetTranslucent(0.66, 0);
MNTR E 5 A_SetTranslucent(0.33, 0);
MNTR E 10 A_BossDeath;
Stop;
}
}
class MinotaurFriend : Minotaur native
{
Default
{
Health 2500;
-DROPOFF
-BOSS
-DONTMORPH
+FRIENDLY
+NOTARGETSWITCH
+STAYMORPHED
+TELESTOMP
+SUMMONEDMONSTER
RenderStyle "Translucent";
Alpha 0.3333;
DropItem "None";
}
States
{
Spawn:
MNTR A 15;
MNTR A 15 A_SetTranslucent(0.66, 0);
MNTR A 3 A_SetTranslucent(1, 0);
Goto Super::Spawn;
Idle:
Goto Super::Spawn;
Death:
Goto FadeOut;
}
}
// Minotaur FX 1 ------------------------------------------------------------
class MinotaurFX1 : Actor
{
Default
{
Radius 10;
Height 6;
Speed 20;
FastSpeed 26;
Damage 3;
DamageType "Fire";
Projectile;
-ACTIVATEIMPACT
-ACTIVATEPCROSS
RenderStyle "Add";
}
States
{
Spawn:
FX12 AB 6 Bright;
Loop;
Death:
FX12 CDEFGH 5 Bright;
Stop;
}
}
// Minotaur FX 2 ------------------------------------------------------------
class MinotaurFX2 : MinotaurFX1
{
Default
{
Radius 5;
Height 12;
Speed 14;
FastSpeed 20;
Damage 4;
+FLOORHUGGER
ExplosionDamage 24;
DeathSound "minotaur/fx2hit";
}
native void A_MntrFloorFire();
states
{
Spawn:
FX13 A 2 Bright A_MntrFloorFire;
Loop;
Death:
FX13 I 4 Bright A_Explode;
FX13 JKLM 4 Bright;
Stop;
}
}
// Minotaur FX 3 ------------------------------------------------------------
class MinotaurFX3 : MinotaurFX2
{
Default
{
Radius 8;
Height 16;
Speed 0;
DeathSound "minotaur/fx3hit";
ExplosionDamage 128;
}
States
{
Spawn:
FX13 DC 4 Bright;
FX13 BCDE 5 Bright;
FX13 FGH 4 Bright;
Stop;
}
}
// Minotaur Smoke Exit ------------------------------------------------------
class MinotaurSmokeExit : Actor
{
Default
{
+NOBLOCKMAP
+NOTELEPORT
RenderStyle "Translucent";
Alpha 0.4;
}
States
{
Spawn:
MNSM ABCDEFGHIJIHGFEDCBA 3;
Stop;
}
}