mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-30 15:52:09 +00:00
224 lines
3.9 KiB
Text
224 lines
3.9 KiB
Text
|
|
// Serpent ------------------------------------------------------------------
|
|
|
|
ACTOR Serpent
|
|
{
|
|
Health 90
|
|
PainChance 96
|
|
Speed 12
|
|
Radius 32
|
|
Height 70
|
|
Mass 0x7fffffff
|
|
Monster
|
|
-SHOOTABLE
|
|
+NOBLOOD
|
|
+CANTLEAVEFLOORPIC +NONSHOOTABLE
|
|
+STAYMORPHED +DONTBLAST +NOTELEOTHER
|
|
+INVISIBLE
|
|
SeeSound "SerpentSight"
|
|
AttackSound "SerpentAttack"
|
|
PainSound "SerpentPain"
|
|
DeathSound "SerpentDeath"
|
|
HitObituary "$OB_SERPENTHIT"
|
|
|
|
action native A_SerpentHumpDecide();
|
|
action native A_SerpentHide();
|
|
action native A_SerpentCheckForAttack();
|
|
action native A_SerpentSpawnGibs();
|
|
action native A_SerpentUnHide();
|
|
action native A_SerpentRaiseHump();
|
|
action native A_SerpentLowerHump();
|
|
action native A_SerpentChooseAttack();
|
|
action native A_SerpentMeleeAttack();
|
|
|
|
States
|
|
{
|
|
Spawn:
|
|
SSPT H 10 A_Look
|
|
Loop
|
|
See:
|
|
SSPT HH 1 A_Chase("Melee", "None", CHF_NIGHTMAREFAST|CHF_NOPLAYACTIVE)
|
|
SSPT H 2 A_SerpentHumpDecide
|
|
Loop
|
|
Pain:
|
|
SSPT L 5
|
|
SSPT L 5 A_Pain
|
|
Dive:
|
|
SSDV ABC 4
|
|
SSDV D 4 A_UnSetShootable
|
|
SSDV E 3 A_PlaySoundEx("SerpentActive", "Body")
|
|
SSDV F 3
|
|
SSDV GH 4
|
|
SSDV I 3
|
|
SSDV J 3 A_SerpentHide
|
|
Goto See
|
|
Melee:
|
|
SSPT A 1 A_UnHideThing
|
|
SSPT A 1 A_PlaySoundEx("SerpentBirth", "Voice")
|
|
SSPT B 3 A_SetShootable
|
|
SSPT C 3
|
|
SSPT D 4 A_SerpentCheckForAttack
|
|
Goto Dive
|
|
Death:
|
|
SSPT O 4
|
|
SSPT P 4 A_Scream
|
|
SSPT Q 4 A_NoBlocking
|
|
SSPT RSTUVWXYZ 4
|
|
Stop
|
|
XDeath:
|
|
SSXD A 4
|
|
SSXD B 4 A_SpawnItemEx("SerpentHead", 0, 0, 45)
|
|
SSXD C 4 A_NoBlocking
|
|
SSXD DE 4
|
|
SSXD FG 3
|
|
SSXD H 3 A_SerpentSpawnGibs
|
|
Stop
|
|
Ice:
|
|
SSPT [ 5 A_FreezeDeath
|
|
SSPT [ 1 A_FreezeDeathChunks
|
|
Wait
|
|
Walk:
|
|
SSPT IJI 5 A_Chase("Attack", "None", CHF_NIGHTMAREFAST)
|
|
SSPT J 5 A_SerpentCheckForAttack
|
|
Goto Dive
|
|
Hump:
|
|
SSPT H 3 A_SerpentUnHide
|
|
SSPT EFGEF 3 A_SerpentRaiseHump
|
|
SSPT GEF 3
|
|
SSPT GEFGE 3 A_SerpentLowerHump
|
|
SSPT F 3 A_SerpentHide
|
|
Goto See
|
|
Attack:
|
|
SSPT K 6 A_FaceTarget
|
|
SSPT L 5 A_SerpentChooseAttack
|
|
Goto MeleeAttack
|
|
MeleeAttack:
|
|
SSPT N 5 A_SerpentMeleeAttack
|
|
Goto Dive
|
|
}
|
|
}
|
|
|
|
// Serpent Leader -----------------------------------------------------------
|
|
|
|
ACTOR SerpentLeader : Serpent
|
|
{
|
|
Mass 200
|
|
Obituary "$OB_SERPENT"
|
|
States
|
|
{
|
|
Missile:
|
|
SSPT N 5 A_CustomMissile("SerpentFX", 32, 0)
|
|
Goto Dive
|
|
}
|
|
}
|
|
|
|
// Serpent Missile Ball -----------------------------------------------------
|
|
|
|
ACTOR SerpentFX
|
|
{
|
|
Speed 15
|
|
Radius 8
|
|
Height 10
|
|
Damage 4
|
|
Projectile
|
|
-ACTIVATEIMPACT -ACTIVATEPCROSS
|
|
RenderStyle Add
|
|
DeathSound "SerpentFXHit"
|
|
|
|
States
|
|
{
|
|
Spawn:
|
|
SSFX A 0
|
|
SSFX A 3 Bright A_PlaySoundEx("SerpentFXContinuous", "Body", 1)
|
|
SSFX BAB 3 Bright
|
|
Goto Spawn+1
|
|
Death:
|
|
SSFX C 4 Bright A_StopSoundEx("Body")
|
|
SSFX DEFGH 4 Bright
|
|
Stop
|
|
}
|
|
}
|
|
|
|
// Serpent Head -------------------------------------------------------------
|
|
|
|
ACTOR SerpentHead
|
|
{
|
|
Radius 5
|
|
Height 10
|
|
Gravity 0.125
|
|
+NOBLOCKMAP
|
|
|
|
action native A_SerpentHeadCheck();
|
|
|
|
States
|
|
{
|
|
Spawn:
|
|
SSXD IJKLMNOP 4 A_SerpentHeadCheck
|
|
Loop
|
|
Death:
|
|
SSXD S -1
|
|
Loop
|
|
}
|
|
}
|
|
|
|
// Serpent Gib 1 ------------------------------------------------------------
|
|
|
|
ACTOR SerpentGib1
|
|
{
|
|
Radius 3
|
|
Height 3
|
|
+NOBLOCKMAP +NOGRAVITY
|
|
|
|
action native A_FloatGib();
|
|
action native A_DelayGib();
|
|
action native A_SinkGib();
|
|
|
|
States
|
|
{
|
|
Spawn:
|
|
SSXD Q 6
|
|
SSXD Q 6 A_FloatGib
|
|
SSXD QQ 8 A_FloatGib
|
|
SSXD QQ 12 A_FloatGib
|
|
SSXD Q 232 A_DelayGib
|
|
SSXD QQ 12 A_SinkGib
|
|
SSXD QQQ 8 A_SinkGib
|
|
Stop
|
|
}
|
|
}
|
|
|
|
// Serpent Gib 2 ------------------------------------------------------------
|
|
|
|
ACTOR SerpentGib2 : SerpentGib1
|
|
{
|
|
States
|
|
{
|
|
Spawn:
|
|
SSXD R 6
|
|
SSXD R 6 A_FloatGib
|
|
SSXD RR 8 A_FloatGib
|
|
SSXD RR 12 A_FloatGib
|
|
SSXD R 232 A_DelayGib
|
|
SSXD RR 12 A_SinkGib
|
|
SSXD RRR 8 A_SinkGib
|
|
Stop
|
|
}
|
|
}
|
|
|
|
// Serpent Gib 3 ------------------------------------------------------------
|
|
|
|
ACTOR SerpentGib3 : SerpentGib1
|
|
{
|
|
States
|
|
{
|
|
Spawn:
|
|
SSXD T 6
|
|
SSXD T 6 A_FloatGib
|
|
SSXD TT 8 A_FloatGib
|
|
SSXD TT 12 A_FloatGib
|
|
SSXD T 232 A_DelayGib
|
|
SSXD TT 12 A_SinkGib
|
|
SSXD TTT 8 A_SinkGib
|
|
Stop
|
|
}
|
|
}
|