gzdoom-gles/wadsrc/static/zscript/heretic/knight.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

131 lines
1.8 KiB
Text

// Knight -------------------------------------------------------------------
class Knight : Actor
{
Default
{
Health 200;
Radius 24;
Height 78;
Mass 150;
Speed 12;
Painchance 100;
Monster;
+FLOORCLIP
SeeSound "hknight/sight";
AttackSound "hknight/attack";
PainSound "hknight/pain";
DeathSound "hknight/death";
ActiveSound "hknight/active";
Obituary "$OB_BONEKNIGHT";
HitObituary "$OB_BONEKNIGHTHIT";
DropItem "CrossbowAmmo", 84, 5;
}
native void A_KnightAttack ();
States
{
Spawn:
KNIG AB 10 A_Look;
Loop;
See:
KNIG ABCD 4 A_Chase;
Loop;
Melee:
Missile:
KNIG E 10 A_FaceTarget;
KNIG F 8 A_FaceTarget;
KNIG G 8 A_KnightAttack;
KNIG E 10 A_FaceTarget;
KNIG F 8 A_FaceTarget;
KNIG G 8 A_KnightAttack;
Goto See;
Pain:
KNIG H 3;
KNIG H 3 A_Pain;
Goto See;
Death:
KNIG I 6;
KNIG J 6 A_Scream;
KNIG K 6;
KNIG L 6 A_NoBlocking;
KNIG MN 6;
KNIG O -1;
Stop;
}
}
// Knight ghost -------------------------------------------------------------
class KnightGhost : Knight
{
Default
{
+SHADOW
+GHOST
RenderStyle "Translucent";
Alpha 0.4;
}
}
// Knight axe ---------------------------------------------------------------
class KnightAxe : Actor
{
Default
{
Radius 10;
Height 8;
Speed 9;
FastSpeed 18;
Damage 2;
Projectile;
-NOBLOCKMAP
-ACTIVATEIMPACT
-ACTIVATEPCROSS
+WINDTHRUST
+THRUGHOST
DeathSound "hknight/hit";
}
States
{
Spawn:
SPAX A 3 BRIGHT A_PlaySound("hknight/axewhoosh");
SPAX BC 3 BRIGHT;
Loop;
Death:
SPAX DEF 6 BRIGHT;
Stop;
}
}
// Red axe ------------------------------------------------------------------
class RedAxe : KnightAxe
{
Default
{
+NOBLOCKMAP
-WINDTHRUST
Damage 7;
}
native void A_DripBlood ();
States
{
Spawn:
RAXE AB 5 BRIGHT A_DripBlood;
Loop;
Death:
RAXE CDE 6 BRIGHT;
Stop;
}
}