mirror of
https://github.com/ZDoom/qzdoom.git
synced 2024-11-24 13:01:47 +00:00
- another batch of Hexen items converted.
- fixed parsing of named damage types and pain chances.
This commit is contained in:
parent
1652c02a08
commit
61cc7dbb29
17 changed files with 1332 additions and 1204 deletions
|
@ -1554,7 +1554,7 @@ const char *ZCCCompiler::GetString(ZCC_Expression *expr, bool silent)
|
|||
{
|
||||
if (expr->Type == TypeError)
|
||||
{
|
||||
return 0;
|
||||
return nullptr;
|
||||
}
|
||||
else if (expr->Type->IsKindOf(RUNTIME_CLASS(PString)))
|
||||
{
|
||||
|
@ -1568,7 +1568,7 @@ const char *ZCCCompiler::GetString(ZCC_Expression *expr, bool silent)
|
|||
else
|
||||
{
|
||||
if (!silent) Error(expr, "Cannot convert to string");
|
||||
return 0;
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1631,7 +1631,7 @@ void ZCCCompiler::DispatchProperty(FPropertyInfo *prop, ZCC_PropertyStmt *proper
|
|||
conv.d = GetDouble(exp);
|
||||
break;
|
||||
|
||||
case 'Z': // an optional string. Does not allow any numerical value.
|
||||
case 'Z': // an optional string. Does not allow any numeric value.
|
||||
if (!GetString(exp, true))
|
||||
{
|
||||
// apply this expression to the next argument on the list.
|
||||
|
@ -1640,7 +1640,8 @@ void ZCCCompiler::DispatchProperty(FPropertyInfo *prop, ZCC_PropertyStmt *proper
|
|||
p++;
|
||||
continue;
|
||||
}
|
||||
// fall through
|
||||
conv.s = GetString(exp);
|
||||
break;
|
||||
|
||||
case 'C': // this parser accepts colors only in string form.
|
||||
pref.i = 1;
|
||||
|
|
|
@ -1,186 +0,0 @@
|
|||
// Centaur ------------------------------------------------------------------
|
||||
|
||||
ACTOR Centaur
|
||||
{
|
||||
Health 200
|
||||
Painchance 135
|
||||
Speed 13
|
||||
Height 64
|
||||
Mass 120
|
||||
Monster
|
||||
+FLOORCLIP
|
||||
+TELESTOMP
|
||||
+SHIELDREFLECT
|
||||
SeeSound "CentaurSight"
|
||||
AttackSound "CentaurAttack"
|
||||
PainSound "CentaurPain"
|
||||
DeathSound "CentaurDeath"
|
||||
ActiveSound "CentaurActive"
|
||||
HowlSound "PuppyBeat"
|
||||
Obituary "$OB_CENTAUR"
|
||||
DamageFactor "Electric", 3
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
CENT AB 10 A_Look
|
||||
Loop
|
||||
See:
|
||||
CENT ABCD 4 A_Chase
|
||||
Loop
|
||||
Pain:
|
||||
CENT G 6 A_Pain
|
||||
CENT G 6 A_SetReflectiveInvulnerable
|
||||
CENT EEE 15 A_CentaurDefend
|
||||
CENT E 1 A_UnsetReflectiveInvulnerable
|
||||
Goto See
|
||||
Melee:
|
||||
CENT H 5 A_FaceTarget
|
||||
CENT I 4 A_FaceTarget
|
||||
CENT J 7 A_CustomMeleeAttack(random[CentaurAttack](3,9))
|
||||
Goto See
|
||||
Death:
|
||||
CENT K 4
|
||||
CENT L 4 A_Scream
|
||||
CENT MN 4
|
||||
CENT O 4 A_NoBlocking
|
||||
CENT PQ 4
|
||||
CENT R 4 A_QueueCorpse
|
||||
CENT S 4
|
||||
CENT T -1
|
||||
Stop
|
||||
XDeath:
|
||||
CTXD A 4
|
||||
CTXD B 4 A_NoBlocking
|
||||
CTXD C 0 A_SpawnItemEx("CentaurSword", 0, 0, 45,
|
||||
1 + random[CentaurDrop](-128,127)*0.03125,
|
||||
1 + random[CentaurDrop](-128,127)*0.03125,
|
||||
8 + random[CentaurDrop](0,255)*0.015625, 270)
|
||||
CTXD C 4 A_SpawnItemEx("CentaurShield", 0, 0, 45,
|
||||
1 + random[CentaurDrop](-128,127)*0.03125,
|
||||
1 + random[CentaurDrop](-128,127)*0.03125,
|
||||
8 + random[CentaurDrop](0,255)*0.015625, 90)
|
||||
CTXD D 3 A_Scream
|
||||
CTXD E 4 A_QueueCorpse
|
||||
CTXD F 3
|
||||
CTXD G 4
|
||||
CTXD H 3
|
||||
CTXD I 4
|
||||
CTXD J 3
|
||||
CTXD K -1
|
||||
Ice:
|
||||
CENT U 5 A_FreezeDeath
|
||||
CENT U 1 A_FreezeDeathChunks
|
||||
Wait
|
||||
}
|
||||
}
|
||||
|
||||
// Centaur Leader -----------------------------------------------------------
|
||||
|
||||
ACTOR CentaurLeader : Centaur
|
||||
{
|
||||
Health 250
|
||||
PainChance 96
|
||||
Speed 10
|
||||
Obituary "$OB_SLAUGHTAUR"
|
||||
HitObituary "$OB_SLAUGHTAURHIT"
|
||||
States
|
||||
{
|
||||
Missile:
|
||||
CENT E 10 A_FaceTarget
|
||||
CENT F 8 Bright A_CustomMissile("CentaurFX", 45, 0, 0, CMF_AIMOFFSET)
|
||||
CENT E 10 A_FaceTarget
|
||||
CENT F 8 Bright A_CustomMissile("CentaurFX", 45, 0, 0, CMF_AIMOFFSET)
|
||||
Goto See
|
||||
}
|
||||
}
|
||||
|
||||
// Mashed centaur -----------------------------------------------------------
|
||||
//
|
||||
// The mashed centaur is only placed through ACS. Nowhere in the game source
|
||||
// is it ever referenced.
|
||||
|
||||
ACTOR CentaurMash : Centaur
|
||||
{
|
||||
+NOBLOOD
|
||||
+BLASTED
|
||||
-TELESTOMP
|
||||
+NOICEDEATH
|
||||
RenderStyle Translucent
|
||||
Alpha 0.4
|
||||
States
|
||||
{
|
||||
Death:
|
||||
XDeath:
|
||||
Ice:
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
// Centaur projectile -------------------------------------------------------
|
||||
|
||||
ACTOR CentaurFX
|
||||
{
|
||||
Speed 20
|
||||
Damage 4
|
||||
Projectile
|
||||
+SPAWNSOUNDSOURCE
|
||||
RenderStyle Add
|
||||
SeeSound "CentaurLeaderAttack"
|
||||
DeathSound "CentaurMissileExplode"
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
CTFX A -1 Bright
|
||||
Stop
|
||||
Death:
|
||||
CTFX B 4 Bright
|
||||
CTFX C 3 Bright
|
||||
CTFX D 4 Bright
|
||||
CTFX E 3 Bright
|
||||
CTFX F 2 Bright
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
// Centaur shield (debris) --------------------------------------------------
|
||||
|
||||
ACTOR CentaurShield
|
||||
{
|
||||
+DROPOFF
|
||||
+CORPSE
|
||||
+NOTELEPORT
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
CTDP ABCDEF 3
|
||||
Goto Spawn+2
|
||||
Crash:
|
||||
CTDP G 4
|
||||
CTDP H 4 A_QueueCorpse
|
||||
CTDP I 4
|
||||
CTDP J -1
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
// Centaur sword (debris) ---------------------------------------------------
|
||||
|
||||
ACTOR CentaurSword
|
||||
{
|
||||
+DROPOFF
|
||||
+CORPSE
|
||||
+NOTELEPORT
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
CTDP KLMNOPQ 3
|
||||
Goto Spawn+2
|
||||
Crash:
|
||||
CTDP R 4
|
||||
CTDP S 4 A_QueueCorpse
|
||||
CTDP T -1
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1,385 +0,0 @@
|
|||
|
||||
// Demon, type 1 (green, like D'Sparil's) -----------------------------------
|
||||
|
||||
ACTOR Demon1
|
||||
{
|
||||
Health 250
|
||||
Painchance 50
|
||||
Speed 13
|
||||
Radius 32
|
||||
Height 64
|
||||
Mass 220
|
||||
Monster
|
||||
+TELESTOMP
|
||||
+FLOORCLIP
|
||||
SeeSound "DemonSight"
|
||||
AttackSound "DemonAttack"
|
||||
PainSound "DemonPain"
|
||||
DeathSound "DemonDeath"
|
||||
ActiveSound "DemonActive"
|
||||
Obituary "$OB_DEMON1"
|
||||
const int ChunkFlags = SXF_TRANSFERTRANSLATION | SXF_ABSOLUTEVELOCITY;
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
DEMN AA 10 A_Look
|
||||
Loop
|
||||
See:
|
||||
DEMN ABCD 4 A_Chase
|
||||
Loop
|
||||
Pain:
|
||||
DEMN E 4
|
||||
DEMN E 4 A_Pain
|
||||
Goto See
|
||||
Melee:
|
||||
DEMN E 6 A_FaceTarget
|
||||
DEMN F 8 A_FaceTarget
|
||||
DEMN G 6 A_CustomMeleeAttack(random[DemonAttack1](1,8)*2)
|
||||
Goto See
|
||||
Missile:
|
||||
DEMN E 5 A_FaceTarget
|
||||
DEMN F 6 A_FaceTarget
|
||||
DEMN G 5 A_CustomMissile("Demon1FX1", 62, 0)
|
||||
Goto See
|
||||
Death:
|
||||
DEMN HI 6
|
||||
DEMN J 6 A_Scream
|
||||
DEMN K 6 A_NoBlocking
|
||||
DEMN L 6 A_QueueCorpse
|
||||
DEMN MNO 6
|
||||
DEMN P -1
|
||||
Stop
|
||||
XDeath:
|
||||
DEMN H 6
|
||||
DEMN I 0 A_SpawnItemEx("Demon1Chunk1", 0,0,45, frandom[DemonChunks](1,4.984375)*cos(Angle+90), frandom[DemonChunks](1,4.984375)*sin(Angle+90), 8, 90, ChunkFlags)
|
||||
DEMN I 0 A_SpawnItemEx("Demon1Chunk2", 0,0,45, frandom[DemonChunks](1,4.984375)*cos(Angle-90), frandom[DemonChunks](1,4.984375)*sin(Angle-90), 8, 270, ChunkFlags)
|
||||
DEMN I 0 A_SpawnItemEx("Demon1Chunk3", 0,0,45, frandom[DemonChunks](1,4.984375)*cos(Angle-90), frandom[DemonChunks](1,4.984375)*sin(Angle-90), 8, 270, ChunkFlags)
|
||||
DEMN I 0 A_SpawnItemEx("Demon1Chunk4", 0,0,45, frandom[DemonChunks](1,4.984375)*cos(Angle-90), frandom[DemonChunks](1,4.984375)*sin(Angle-90), 8, 270, ChunkFlags)
|
||||
DEMN I 6 A_SpawnItemEx("Demon1Chunk5", 0,0,45, frandom[DemonChunks](1,4.984375)*cos(Angle-90), frandom[DemonChunks](1,4.984375)*sin(Angle-90), 8, 270, ChunkFlags)
|
||||
Goto Death+2
|
||||
Ice:
|
||||
DEMN Q 5 A_FreezeDeath
|
||||
DEMN Q 1 A_FreezeDeathChunks
|
||||
Wait
|
||||
}
|
||||
}
|
||||
|
||||
// Demon, type 1, mashed ----------------------------------------------------
|
||||
|
||||
ACTOR Demon1Mash : Demon1
|
||||
{
|
||||
+NOBLOOD
|
||||
+BLASTED
|
||||
-TELESTOMP
|
||||
+NOICEDEATH
|
||||
RenderStyle Translucent
|
||||
Alpha 0.4
|
||||
States
|
||||
{
|
||||
Death:
|
||||
XDeath:
|
||||
Ice:
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
// Demon chunk, base class --------------------------------------------------
|
||||
|
||||
ACTOR DemonChunk
|
||||
{
|
||||
Radius 5
|
||||
Height 5
|
||||
+NOBLOCKMAP
|
||||
+DROPOFF
|
||||
+MISSILE
|
||||
+CORPSE
|
||||
+FLOORCLIP
|
||||
+NOTELEPORT
|
||||
}
|
||||
|
||||
// Demon, type 1, chunk 1 ---------------------------------------------------
|
||||
|
||||
ACTOR Demon1Chunk1 : DemonChunk
|
||||
{
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
DEMA A 4
|
||||
DEMA A 10 A_QueueCorpse
|
||||
DEMA A 20
|
||||
Wait
|
||||
Death:
|
||||
DEMA A -1
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
// Demon, type 1, chunk 2 ---------------------------------------------------
|
||||
|
||||
ACTOR Demon1Chunk2 : DemonChunk
|
||||
{
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
DEMB A 4
|
||||
DEMB A 10 A_QueueCorpse
|
||||
DEMB A 20
|
||||
Wait
|
||||
Death:
|
||||
DEMB A -1
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
ACTOR Demon1Chunk3 : DemonChunk
|
||||
{
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
DEMC A 4
|
||||
DEMC A 10 A_QueueCorpse
|
||||
DEMC A 20
|
||||
Wait
|
||||
Death:
|
||||
DEMC A -1
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
// Demon, type 1, chunk 4 ---------------------------------------------------
|
||||
|
||||
ACTOR Demon1Chunk4 : DemonChunk
|
||||
{
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
DEMD A 4
|
||||
DEMD A 10 A_QueueCorpse
|
||||
DEMD A 20
|
||||
Wait
|
||||
Death:
|
||||
DEMD A -1
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
// Demon, type 1, chunk 5 ---------------------------------------------------
|
||||
|
||||
ACTOR Demon1Chunk5 : DemonChunk
|
||||
{
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
DEME A 4
|
||||
DEME A 10 A_QueueCorpse
|
||||
DEME A 20
|
||||
Wait
|
||||
Death:
|
||||
DEME A -1
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
// Demon, type 1, projectile ------------------------------------------------
|
||||
|
||||
ACTOR Demon1FX1
|
||||
{
|
||||
Speed 15
|
||||
Radius 10
|
||||
Height 6
|
||||
Damage 5
|
||||
DamageType Fire
|
||||
Projectile
|
||||
+SPAWNSOUNDSOURCE
|
||||
RenderStyle Add
|
||||
SeeSound "DemonMissileFire"
|
||||
DeathSound "DemonMissileExplode"
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
DMFX ABC 4 Bright
|
||||
Loop
|
||||
Death:
|
||||
DMFX DE 4 Bright
|
||||
DMFX FGH 3 Bright
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
// Demon, type 2 (brown) ----------------------------------------------------
|
||||
|
||||
ACTOR Demon2 : Demon1
|
||||
{
|
||||
Obituary "$OB_DEMON2"
|
||||
Species "Demon2"
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
DEM2 AA 10 A_Look
|
||||
Loop
|
||||
See:
|
||||
DEM2 ABCD 4 A_Chase
|
||||
Loop
|
||||
Pain:
|
||||
DEM2 E 4
|
||||
DEM2 E 4 A_Pain
|
||||
Goto See
|
||||
Melee:
|
||||
DEM2 E 6 A_FaceTarget
|
||||
DEM2 F 8 A_FaceTarget
|
||||
DEM2 G 6 A_CustomMeleeAttack(random[DemonAttack1](1,8)*2)
|
||||
Goto See
|
||||
Missile:
|
||||
DEM2 E 5 A_FaceTarget
|
||||
DEM2 F 6 A_FaceTarget
|
||||
DEM2 G 5 A_CustomMissile("Demon2FX1", 62, 0)
|
||||
Goto See
|
||||
Death:
|
||||
DEM2 HI 6
|
||||
DEM2 J 6 A_Scream
|
||||
DEM2 K 6 A_NoBlocking
|
||||
DEM2 L 6 A_QueueCorpse
|
||||
DEM2 MNO 6
|
||||
DEM2 P -1
|
||||
Stop
|
||||
XDeath:
|
||||
DEM2 H 6
|
||||
DEM2 I 0 A_SpawnItemEx("Demon2Chunk1", 0,0,45, frandom[DemonChunks](1,4.984375)*cos(Angle+90), frandom[DemonChunks](1,4.984375)*sin(Angle+90), 8, 90, ChunkFlags)
|
||||
DEM2 I 0 A_SpawnItemEx("Demon2Chunk2", 0,0,45, frandom[DemonChunks](1,4.984375)*cos(Angle-90), frandom[DemonChunks](1,4.984375)*sin(Angle-90), 8, 270, ChunkFlags)
|
||||
DEM2 I 0 A_SpawnItemEx("Demon2Chunk3", 0,0,45, frandom[DemonChunks](1,4.984375)*cos(Angle-90), frandom[DemonChunks](1,4.984375)*sin(Angle-90), 8, 270, ChunkFlags)
|
||||
DEM2 I 0 A_SpawnItemEx("Demon2Chunk4", 0,0,45, frandom[DemonChunks](1,4.984375)*cos(Angle-90), frandom[DemonChunks](1,4.984375)*sin(Angle-90), 8, 270, ChunkFlags)
|
||||
DEM2 I 6 A_SpawnItemEx("Demon2Chunk5", 0,0,45, frandom[DemonChunks](1,4.984375)*cos(Angle-90), frandom[DemonChunks](1,4.984375)*sin(Angle-90), 8, 270, ChunkFlags)
|
||||
Goto Death+2
|
||||
}
|
||||
}
|
||||
|
||||
// Demon, type 2, mashed ----------------------------------------------------
|
||||
|
||||
ACTOR Demon2Mash : Demon2
|
||||
{
|
||||
+NOBLOOD
|
||||
+BLASTED
|
||||
-TELESTOMP
|
||||
+NOICEDEATH
|
||||
RenderStyle Translucent
|
||||
Alpha 0.4
|
||||
States
|
||||
{
|
||||
Death:
|
||||
XDeath:
|
||||
Ice:
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
// Demon, type 2, chunk 1 ---------------------------------------------------
|
||||
|
||||
ACTOR Demon2Chunk1 : DemonChunk
|
||||
{
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
DMBA A 4
|
||||
DMBA A 10 A_QueueCorpse
|
||||
DMBA A 20
|
||||
Wait
|
||||
Death:
|
||||
DMBA A -1
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
// Demon, type 2, chunk 2 ---------------------------------------------------
|
||||
|
||||
ACTOR Demon2Chunk2 : DemonChunk
|
||||
{
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
DMBB A 4
|
||||
DMBB A 10 A_QueueCorpse
|
||||
DMBB A 20
|
||||
Wait
|
||||
Death:
|
||||
DMBB A -1
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
// Demon, type 2, chunk 3 ---------------------------------------------------
|
||||
|
||||
ACTOR Demon2Chunk3 : DemonChunk
|
||||
{
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
DMBC A 4
|
||||
DMBC A 10 A_QueueCorpse
|
||||
DMBC A 20
|
||||
Wait
|
||||
Death:
|
||||
DMBC A -1
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
// Demon, type 2, chunk 4 ---------------------------------------------------
|
||||
|
||||
ACTOR Demon2Chunk4 : DemonChunk
|
||||
{
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
DMBD A 4
|
||||
DMBD A 10 A_QueueCorpse
|
||||
DMBD A 20
|
||||
Wait
|
||||
Death:
|
||||
DMBD A -1
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
// Demon, type 2, chunk 5 ---------------------------------------------------
|
||||
|
||||
ACTOR Demon2Chunk5 : DemonChunk
|
||||
{
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
DMBE A 4
|
||||
DMBE A 10 A_QueueCorpse
|
||||
DMBE A 20
|
||||
Wait
|
||||
Death:
|
||||
DMBE A -1
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
// Demon, type 2, projectile ------------------------------------------------
|
||||
|
||||
ACTOR Demon2FX1
|
||||
{
|
||||
Speed 15
|
||||
Radius 10
|
||||
Height 6
|
||||
Damage 5
|
||||
DamageType Fire
|
||||
Projectile
|
||||
+SPAWNSOUNDSOURCE
|
||||
RenderStyle Add
|
||||
SeeSound "DemonMissileFire"
|
||||
DeathSound "DemonMissileExplode"
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
D2FX ABCDEF 4 Bright
|
||||
Loop
|
||||
Death:
|
||||
D2FX GHIJ 4 Bright
|
||||
D2FX KL 3 Bright
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
|
@ -1,106 +0,0 @@
|
|||
|
||||
// Ettin --------------------------------------------------------------------
|
||||
|
||||
ACTOR Ettin
|
||||
{
|
||||
Health 175
|
||||
Radius 25
|
||||
Height 68
|
||||
Mass 175
|
||||
Speed 13
|
||||
Damage 3
|
||||
Painchance 60
|
||||
Monster
|
||||
+FLOORCLIP
|
||||
+TELESTOMP
|
||||
SeeSound "EttinSight"
|
||||
AttackSound "EttinAttack"
|
||||
PainSound "EttinPain"
|
||||
DeathSound "EttinDeath"
|
||||
ActiveSound "EttinActive"
|
||||
HowlSound "PuppyBeat"
|
||||
Obituary "$OB_ETTIN"
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
ETTN AA 10 A_Look
|
||||
Loop
|
||||
See:
|
||||
ETTN ABCD 5 A_Chase
|
||||
Loop
|
||||
Pain:
|
||||
ETTN H 7 A_Pain
|
||||
Goto See
|
||||
Melee:
|
||||
ETTN EF 6 A_FaceTarget
|
||||
ETTN G 8 A_CustomMeleeAttack(random[EttinAttack](1,8)*2)
|
||||
Goto See
|
||||
Death:
|
||||
ETTN IJ 4
|
||||
ETTN K 4 A_Scream
|
||||
ETTN L 4 A_NoBlocking
|
||||
ETTN M 4 A_QueueCorpse
|
||||
ETTN NOP 4
|
||||
ETTN Q -1
|
||||
Stop
|
||||
XDeath:
|
||||
ETTB A 4
|
||||
ETTB B 4 A_NoBlocking
|
||||
ETTB C 4 A_SpawnItemEx("EttinMace", 0,0,8.5,
|
||||
random[DropMace](-128,127) * 0.03125,
|
||||
random[DropMace](-128,127) * 0.03125,
|
||||
10 + random[DropMace](0,255) * 0.015625, 0, SXF_ABSOLUTEVELOCITY)
|
||||
ETTB D 4 A_Scream
|
||||
ETTB E 4 A_QueueCorpse
|
||||
ETTB FGHIJK 4
|
||||
ETTB L -1
|
||||
Stop
|
||||
Ice:
|
||||
ETTN R 5 A_FreezeDeath
|
||||
ETTN R 1 A_FreezeDeathChunks
|
||||
Wait
|
||||
}
|
||||
}
|
||||
|
||||
// Ettin mace ---------------------------------------------------------------
|
||||
|
||||
ACTOR EttinMace
|
||||
{
|
||||
Radius 5
|
||||
Height 5
|
||||
+DROPOFF
|
||||
+CORPSE
|
||||
+NOTELEPORT
|
||||
+FLOORCLIP
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
ETTB MNOP 5
|
||||
Loop
|
||||
Crash:
|
||||
ETTB Q 5
|
||||
ETTB R 5 A_QueueCorpse
|
||||
ETTB S -1
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
// Ettin mash ---------------------------------------------------------------
|
||||
|
||||
ACTOR EttinMash : Ettin
|
||||
{
|
||||
+NOBLOOD
|
||||
+NOICEDEATH
|
||||
RenderStyle Translucent
|
||||
Alpha 0.4
|
||||
States
|
||||
{
|
||||
Death:
|
||||
XDeath:
|
||||
Ice:
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -1,87 +0,0 @@
|
|||
// Blue mana ----------------------------------------------------------------
|
||||
|
||||
ACTOR Mana1 : Ammo
|
||||
{
|
||||
Inventory.Amount 15
|
||||
Inventory.MaxAmount 200
|
||||
Ammo.BackpackAmount 15
|
||||
Ammo.BackpackMaxAmount 200
|
||||
Radius 8
|
||||
Height 8
|
||||
+FLOATBOB
|
||||
Inventory.Icon "MAN1I0"
|
||||
Inventory.PickupMessage "$TXT_MANA_1"
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
MAN1 ABCDEFGHI 4 Bright
|
||||
Loop
|
||||
}
|
||||
}
|
||||
|
||||
// Green mana ---------------------------------------------------------------
|
||||
|
||||
ACTOR Mana2 : Ammo
|
||||
{
|
||||
Inventory.Amount 15
|
||||
Inventory.MaxAmount 200
|
||||
Ammo.BackpackAmount 15
|
||||
Ammo.BackpackMaxAmount 200
|
||||
Radius 8
|
||||
Height 8
|
||||
+FLOATBOB
|
||||
Inventory.Icon "MAN2G0"
|
||||
Inventory.PickupMessage "$TXT_MANA_2"
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
MAN2 ABCDEFGHIJKLMNOP 4 Bright
|
||||
Loop
|
||||
}
|
||||
}
|
||||
|
||||
// Combined mana ------------------------------------------------------------
|
||||
|
||||
ACTOR Mana3 : CustomInventory
|
||||
{
|
||||
Radius 8
|
||||
Height 8
|
||||
+FLOATBOB
|
||||
Inventory.PickupMessage "$TXT_MANA_BOTH"
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
MAN3 ABCDEFGHIJKLMNOP 4 Bright
|
||||
Loop
|
||||
Pickup:
|
||||
TNT1 A 0 A_GiveInventory("Mana1", 20)
|
||||
TNT1 A 0 A_GiveInventory("Mana2", 20)
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
// Boost Mana Artifact Krater of Might ------------------------------------
|
||||
|
||||
ACTOR ArtiBoostMana : CustomInventory
|
||||
{
|
||||
+FLOATBOB
|
||||
+COUNTITEM
|
||||
+INVENTORY.INVBAR
|
||||
+INVENTORY.PICKUPFLASH
|
||||
+INVENTORY.FANCYPICKUPSOUND
|
||||
Inventory.DefMaxAmount
|
||||
Inventory.Icon "ARTIBMAN"
|
||||
Inventory.PickupSound "misc/p_pkup"
|
||||
Inventory.PickupMessage "$TXT_ARTIBOOSTMANA"
|
||||
Tag "$TAG_ARTIBOOSTMANA"
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
BMAN A -1
|
||||
Stop
|
||||
Use:
|
||||
TNT1 A 0 A_GiveInventory("Mana1", 200)
|
||||
TNT1 A 0 A_GiveInventory("Mana2", 200)
|
||||
Stop
|
||||
}
|
||||
}
|
|
@ -1,287 +0,0 @@
|
|||
|
||||
// Yorick's Skull -----------------------------------------------------------
|
||||
|
||||
ACTOR PuzzSkull : PuzzleItem
|
||||
{
|
||||
PuzzleItem.Number 0
|
||||
Inventory.Icon ARTISKLL
|
||||
Inventory.PickupMessage "$TXT_ARTIPUZZSKULL"
|
||||
Tag "$TAG_ARTIPUZZSKULL"
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
ASKU A -1
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Heart of D'Sparil --------------------------------------------------------
|
||||
|
||||
ACTOR PuzzGemBig : PuzzleItem
|
||||
{
|
||||
PuzzleItem.Number 1
|
||||
Inventory.Icon ARTIBGEM
|
||||
Inventory.PickupMessage "$TXT_ARTIPUZZGEMBIG"
|
||||
Tag "$TAG_ARTIPUZZGEMBIG"
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
ABGM A -1
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
// Red Gem (Ruby Planet) ----------------------------------------------------
|
||||
|
||||
ACTOR PuzzGemRed : PuzzleItem
|
||||
{
|
||||
PuzzleItem.Number 2
|
||||
Inventory.Icon ARTIGEMR
|
||||
Inventory.PickupMessage "$TXT_ARTIPUZZGEMRED"
|
||||
Tag "$TAG_ARTIPUZZGEMRED"
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
AGMR A -1
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Green Gem 1 (Emerald Planet) ---------------------------------------------
|
||||
|
||||
ACTOR PuzzGemGreen1 : PuzzleItem
|
||||
{
|
||||
PuzzleItem.Number 3
|
||||
Inventory.Icon ARTIGEMG
|
||||
Inventory.PickupMessage "$TXT_ARTIPUZZGEMGREEN1"
|
||||
Tag "$TAG_ARTIPUZZGEMGREEN1"
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
AGMG A -1
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Green Gem 2 (Emerald Planet) ---------------------------------------------
|
||||
|
||||
ACTOR PuzzGemGreen2 : PuzzleItem
|
||||
{
|
||||
PuzzleItem.Number 4
|
||||
Inventory.Icon ARTIGMG2
|
||||
Inventory.PickupMessage "$TXT_ARTIPUZZGEMGREEN2"
|
||||
Tag "$TAG_ARTIPUZZGEMGREEN2"
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
AGG2 A -1
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Blue Gem 1 (Sapphire Planet) ---------------------------------------------
|
||||
|
||||
ACTOR PuzzGemBlue1 : PuzzleItem
|
||||
{
|
||||
PuzzleItem.Number 5
|
||||
Inventory.Icon ARTIGEMB
|
||||
Inventory.PickupMessage "$TXT_ARTIPUZZGEMBLUE1"
|
||||
Tag "$TAG_ARTIPUZZGEMBLUE1"
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
AGMB A -1
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Blue Gem 2 (Sapphire Planet) ---------------------------------------------
|
||||
|
||||
ACTOR PuzzGemBlue2 : PuzzleItem
|
||||
{
|
||||
PuzzleItem.Number 6
|
||||
Inventory.Icon ARTIGMB2
|
||||
Inventory.PickupMessage "$TXT_ARTIPUZZGEMBLUE2"
|
||||
Tag "$TAG_ARTIPUZZGEMBLUE2"
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
AGB2 A -1
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Book 1 (Daemon Codex) ----------------------------------------------------
|
||||
|
||||
ACTOR PuzzBook1 : PuzzleItem
|
||||
{
|
||||
PuzzleItem.Number 7
|
||||
Inventory.Icon ARTIBOK1
|
||||
Inventory.PickupMessage "$TXT_ARTIPUZZBOOK1"
|
||||
Tag "$TAG_ARTIPUZZBOOK1"
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
ABK1 A -1
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Book 2 (Liber Oscura) ----------------------------------------------------
|
||||
|
||||
ACTOR PuzzBook2 : PuzzleItem
|
||||
{
|
||||
PuzzleItem.Number 8
|
||||
Inventory.Icon ARTIBOK2
|
||||
Inventory.PickupMessage "$TXT_ARTIPUZZBOOK2"
|
||||
Tag "$TAG_ARTIPUZZBOOK2"
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
ABK2 A -1
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Flame Mask ---------------------------------------------------------------
|
||||
|
||||
|
||||
ACTOR PuzzFlameMask : PuzzleItem
|
||||
{
|
||||
PuzzleItem.Number 9
|
||||
Inventory.Icon ARTISKL2
|
||||
Inventory.PickupMessage "$TXT_ARTIPUZZSKULL2"
|
||||
Tag "$TAG_ARTIPUZZSKULL2"
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
ASK2 A -1
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
// Fighter Weapon (Glaive Seal) ---------------------------------------------
|
||||
|
||||
ACTOR PuzzFWeapon : PuzzleItem
|
||||
{
|
||||
PuzzleItem.Number 10
|
||||
Inventory.Icon ARTIFWEP
|
||||
Inventory.PickupMessage "$TXT_ARTIPUZZFWEAPON"
|
||||
Tag "$TAG_ARTIPUZZFWEAPON"
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
AFWP A -1
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Cleric Weapon (Holy Relic) -----------------------------------------------
|
||||
|
||||
ACTOR PuzzCWeapon : PuzzleItem
|
||||
{
|
||||
PuzzleItem.Number 11
|
||||
Inventory.Icon ARTICWEP
|
||||
Inventory.PickupMessage "$TXT_ARTIPUZZCWEAPON"
|
||||
Tag "$TAG_ARTIPUZZCWEAPON"
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
ACWP A -1
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Mage Weapon (Sigil of the Magus) -----------------------------------------
|
||||
|
||||
ACTOR PuzzMWeapon : PuzzleItem
|
||||
{
|
||||
PuzzleItem.Number 12
|
||||
Inventory.Icon ARTIMWEP
|
||||
Inventory.PickupMessage "$TXT_ARTIPUZZMWEAPON"
|
||||
Tag "$TAG_ARTIPUZZMWEAPON"
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
AMWP A -1
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
// Clock Gear 1 -------------------------------------------------------------
|
||||
|
||||
ACTOR PuzzGear1 : PuzzleItem
|
||||
{
|
||||
PuzzleItem.Number 13
|
||||
Inventory.Icon ARTIGEAR
|
||||
Inventory.PickupMessage "$TXT_ARTIPUZZGEAR"
|
||||
Tag "$TAG_ARTIPUZZGEAR1"
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
AGER ABCDEFGH 4 Bright
|
||||
Loop
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Clock Gear 2 -------------------------------------------------------------
|
||||
|
||||
ACTOR PuzzGear2 : PuzzleItem
|
||||
{
|
||||
PuzzleItem.Number 14
|
||||
Inventory.Icon ARTIGER2
|
||||
Inventory.PickupMessage "$TXT_ARTIPUZZGEAR"
|
||||
Tag "$TAG_ARTIPUZZGEAR2"
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
AGR2 ABCDEFGH 4 Bright
|
||||
Loop
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Clock Gear 3 -------------------------------------------------------------
|
||||
|
||||
ACTOR PuzzGear3 : PuzzleItem
|
||||
{
|
||||
PuzzleItem.Number 15
|
||||
Inventory.Icon ARTIGER3
|
||||
Inventory.PickupMessage "$TXT_ARTIPUZZGEAR"
|
||||
Tag "$TAG_ARTIPUZZGEAR3"
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
AGR3 ABCDEFGH 4 Bright
|
||||
Loop
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Clock Gear 4 -------------------------------------------------------------
|
||||
|
||||
ACTOR PuzzGear4 : PuzzleItem
|
||||
{
|
||||
PuzzleItem.Number 16
|
||||
Inventory.Icon ARTIGER4
|
||||
Inventory.PickupMessage "$TXT_ARTIPUZZGEAR"
|
||||
Tag "$TAG_ARTIPUZZGEAR4"
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
AGR4 ABCDEFGH 4 Bright
|
||||
Loop
|
||||
}
|
||||
}
|
||||
|
|
@ -1,123 +0,0 @@
|
|||
// Fire Ball ----------------------------------------------------------------
|
||||
|
||||
ACTOR FireBall
|
||||
{
|
||||
Speed 2
|
||||
Radius 8
|
||||
Height 8
|
||||
Damage 4
|
||||
DamageType Fire
|
||||
+NOBLOCKMAP +NOGRAVITY +DROPOFF +MISSILE
|
||||
+NOTELEPORT
|
||||
RenderStyle Add
|
||||
DeathSound "Fireball"
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
FBL1 AB 4 Bright
|
||||
Loop
|
||||
Death:
|
||||
XPL1 ABCDEF 4 Bright
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
// Arrow --------------------------------------------------------------------
|
||||
|
||||
ACTOR Arrow
|
||||
{
|
||||
Speed 6
|
||||
Radius 8
|
||||
Height 4
|
||||
Damage 4
|
||||
+NOBLOCKMAP +NOGRAVITY +DROPOFF +MISSILE
|
||||
+NOTELEPORT
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
ARRW A -1
|
||||
Stop
|
||||
Death:
|
||||
ARRW A 1
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
// Dart ---------------------------------------------------------------------
|
||||
|
||||
ACTOR Dart
|
||||
{
|
||||
Speed 6
|
||||
Radius 8
|
||||
Height 4
|
||||
Damage 2
|
||||
+NOBLOCKMAP +NOGRAVITY +DROPOFF +MISSILE
|
||||
+NOTELEPORT
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
DART A -1
|
||||
Stop
|
||||
Death:
|
||||
DART A 1
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
// Poison Dart --------------------------------------------------------------
|
||||
|
||||
ACTOR PoisonDart : Dart
|
||||
{
|
||||
PoisonDamage 20
|
||||
}
|
||||
|
||||
// Ripper Ball --------------------------------------------------------------
|
||||
|
||||
ACTOR RipperBall
|
||||
{
|
||||
Speed 6
|
||||
Radius 8
|
||||
Damage 2
|
||||
+NOBLOCKMAP +NOGRAVITY +DROPOFF +MISSILE
|
||||
+NOTELEPORT +RIPPER
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
RIPP ABC 3
|
||||
Loop
|
||||
Death:
|
||||
CFCF Q 4 Bright
|
||||
CFCF R 3 Bright
|
||||
CFCF S 4 Bright
|
||||
CFCF T 3 Bright
|
||||
CFCF U 4 Bright
|
||||
CFCF V 3 Bright
|
||||
CFCF W 4 Bright
|
||||
CFCF X 3 Bright
|
||||
CFCF Y 4 Bright
|
||||
CFCF Z 3 Bright
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
// Projectile Blade ---------------------------------------------------------
|
||||
|
||||
ACTOR ProjectileBlade
|
||||
{
|
||||
Speed 6
|
||||
Radius 6
|
||||
Height 6
|
||||
Damage 3
|
||||
+NOBLOCKMAP +NOGRAVITY +DROPOFF +MISSILE
|
||||
+NOTELEPORT
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
BLAD A -1
|
||||
Stop
|
||||
Death:
|
||||
BLAD A 1
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
|
||||
|
||||
ACTOR ArtiSpeedBoots : PowerupGiver
|
||||
{
|
||||
+FLOATBOB
|
||||
+COUNTITEM
|
||||
+INVENTORY.PICKUPFLASH
|
||||
Inventory.Icon ARTISPED
|
||||
Inventory.PickupMessage "$TXT_ARTISPEED"
|
||||
Tag "$TAG_ARTISPEED"
|
||||
Powerup.Type Speed
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
SPED ABCDEFGH 3 Bright
|
||||
Loop
|
||||
}
|
||||
}
|
|
@ -1,10 +1,3 @@
|
|||
#include "actors/hexen/mana.txt"
|
||||
#include "actors/hexen/puzzleitems.txt"
|
||||
#include "actors/hexen/scriptprojectiles.txt"
|
||||
#include "actors/hexen/speedboots.txt"
|
||||
#include "actors/hexen/ettin.txt"
|
||||
#include "actors/hexen/centaur.txt"
|
||||
#include "actors/hexen/demons.txt"
|
||||
#include "actors/hexen/firedemon.txt"
|
||||
#include "actors/hexen/fog.txt"
|
||||
#include "actors/hexen/summon.txt"
|
||||
|
|
|
@ -97,7 +97,6 @@ zscript/hexen/hexenarmor.txt
|
|||
zscript/hexen/hexendecorations.txt
|
||||
zscript/hexen/hexenkeys.txt
|
||||
zscript/hexen/hexenspecialdecs.txt
|
||||
/*
|
||||
zscript/hexen/mana.txt
|
||||
zscript/hexen/puzzleitems.txt
|
||||
zscript/hexen/scriptprojectiles.txt
|
||||
|
@ -105,6 +104,7 @@ zscript/hexen/speedboots.txt
|
|||
zscript/hexen/ettin.txt
|
||||
zscript/hexen/centaur.txt
|
||||
zscript/hexen/demons.txt
|
||||
/*
|
||||
zscript/hexen/firedemon.txt
|
||||
zscript/hexen/fog.txt
|
||||
zscript/hexen/summon.txt
|
||||
|
|
204
wadsrc/static/zscript/hexen/centaur.txt
Normal file
204
wadsrc/static/zscript/hexen/centaur.txt
Normal file
|
@ -0,0 +1,204 @@
|
|||
// Centaur ------------------------------------------------------------------
|
||||
|
||||
class Centaur : Actor
|
||||
{
|
||||
Default
|
||||
{
|
||||
Health 200;
|
||||
Painchance 135;
|
||||
Speed 13;
|
||||
Height 64;
|
||||
Mass 120;
|
||||
Monster;
|
||||
+FLOORCLIP
|
||||
+TELESTOMP
|
||||
+SHIELDREFLECT
|
||||
SeeSound "CentaurSight";
|
||||
AttackSound "CentaurAttack";
|
||||
PainSound "CentaurPain";
|
||||
DeathSound "CentaurDeath";
|
||||
ActiveSound "CentaurActive";
|
||||
HowlSound "PuppyBeat";
|
||||
Obituary "$OB_CENTAUR";
|
||||
DamageFactor "Electric", 3;
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
CENT AB 10 A_Look;
|
||||
Loop;
|
||||
See:
|
||||
CENT ABCD 4 A_Chase;
|
||||
Loop;
|
||||
Pain:
|
||||
CENT G 6 A_Pain;
|
||||
CENT G 6 A_SetReflectiveInvulnerable;
|
||||
CENT EEE 15 A_CentaurDefend;
|
||||
CENT E 1 A_UnsetReflectiveInvulnerable;
|
||||
Goto See;
|
||||
Melee:
|
||||
CENT H 5 A_FaceTarget;
|
||||
CENT I 4 A_FaceTarget;
|
||||
CENT J 7 A_CustomMeleeAttack(random[CentaurAttack](3,9));
|
||||
Goto See;
|
||||
Death:
|
||||
CENT K 4;
|
||||
CENT L 4 A_Scream;
|
||||
CENT MN 4;
|
||||
CENT O 4 A_NoBlocking;
|
||||
CENT PQ 4;
|
||||
CENT R 4 A_QueueCorpse;
|
||||
CENT S 4;
|
||||
CENT T -1;
|
||||
Stop;
|
||||
XDeath:
|
||||
CTXD A 4;
|
||||
CTXD B 4 A_NoBlocking;
|
||||
CTXD C 0 A_SpawnItemEx("CentaurSword", 0, 0, 45,
|
||||
1 + random[CentaurDrop](-128,127)*0.03125,
|
||||
1 + random[CentaurDrop](-128,127)*0.03125,
|
||||
8 + random[CentaurDrop](0,255)*0.015625, 270);
|
||||
CTXD C 4 A_SpawnItemEx("CentaurShield", 0, 0, 45,
|
||||
1 + random[CentaurDrop](-128,127)*0.03125,
|
||||
1 + random[CentaurDrop](-128,127)*0.03125,
|
||||
8 + random[CentaurDrop](0,255)*0.015625, 90);
|
||||
CTXD D 3 A_Scream;
|
||||
CTXD E 4 A_QueueCorpse;
|
||||
CTXD F 3;
|
||||
CTXD G 4;
|
||||
CTXD H 3;
|
||||
CTXD I 4;
|
||||
CTXD J 3;
|
||||
CTXD K -1;
|
||||
Ice:
|
||||
CENT U 5 A_FreezeDeath;
|
||||
CENT U 1 A_FreezeDeathChunks;
|
||||
Wait;
|
||||
}
|
||||
}
|
||||
|
||||
// Centaur Leader -----------------------------------------------------------
|
||||
|
||||
class CentaurLeader : Centaur
|
||||
{
|
||||
Default
|
||||
{
|
||||
Health 250;
|
||||
PainChance 96;
|
||||
Speed 10;
|
||||
Obituary "$OB_SLAUGHTAUR";
|
||||
HitObituary "$OB_SLAUGHTAURHIT";
|
||||
}
|
||||
States
|
||||
{
|
||||
Missile:
|
||||
CENT E 10 A_FaceTarget;
|
||||
CENT F 8 Bright A_CustomMissile("CentaurFX", 45, 0, 0, CMF_AIMOFFSET);
|
||||
CENT E 10 A_FaceTarget;
|
||||
CENT F 8 Bright A_CustomMissile("CentaurFX", 45, 0, 0, CMF_AIMOFFSET);
|
||||
Goto See;
|
||||
}
|
||||
}
|
||||
|
||||
// Mashed centaur -----------------------------------------------------------
|
||||
//
|
||||
// The mashed centaur is only placed through ACS. Nowhere in the game source
|
||||
// is it ever referenced.
|
||||
|
||||
class CentaurMash : Centaur
|
||||
{
|
||||
Default
|
||||
{
|
||||
+NOBLOOD
|
||||
+BLASTED
|
||||
-TELESTOMP
|
||||
+NOICEDEATH
|
||||
RenderStyle "Translucent";
|
||||
Alpha 0.4;
|
||||
}
|
||||
States
|
||||
{
|
||||
Death:
|
||||
XDeath:
|
||||
Ice:
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
// Centaur projectile -------------------------------------------------------
|
||||
|
||||
class CentaurFX : Actor
|
||||
{
|
||||
Default
|
||||
{
|
||||
Speed 20;
|
||||
Damage 4;
|
||||
Projectile;
|
||||
+SPAWNSOUNDSOURCE
|
||||
RenderStyle "Add";
|
||||
SeeSound "CentaurLeaderAttack";
|
||||
DeathSound "CentaurMissileExplode";
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
CTFX A -1 Bright;
|
||||
Stop;
|
||||
Death:
|
||||
CTFX B 4 Bright;
|
||||
CTFX C 3 Bright;
|
||||
CTFX D 4 Bright;
|
||||
CTFX E 3 Bright;
|
||||
CTFX F 2 Bright;
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
// Centaur shield (debris) --------------------------------------------------
|
||||
|
||||
class CentaurShield : Actor
|
||||
{
|
||||
Default
|
||||
{
|
||||
+DROPOFF
|
||||
+CORPSE
|
||||
+NOTELEPORT
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
CTDP ABCDEF 3;
|
||||
Goto Spawn+2;
|
||||
Crash:
|
||||
CTDP G 4;
|
||||
CTDP H 4 A_QueueCorpse;
|
||||
CTDP I 4;
|
||||
CTDP J -1;
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
// Centaur sword (debris) ---------------------------------------------------
|
||||
|
||||
class CentaurSword : Actor
|
||||
{
|
||||
Default
|
||||
{
|
||||
+DROPOFF
|
||||
+CORPSE
|
||||
+NOTELEPORT
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
CTDP KLMNOPQ 3;
|
||||
Goto Spawn+2;
|
||||
Crash:
|
||||
CTDP R 4;
|
||||
CTDP S 4 A_QueueCorpse;
|
||||
CTDP T -1;
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
|
408
wadsrc/static/zscript/hexen/demons.txt
Normal file
408
wadsrc/static/zscript/hexen/demons.txt
Normal file
|
@ -0,0 +1,408 @@
|
|||
|
||||
// Demon, type 1 (green, like D'Sparil's) -----------------------------------
|
||||
|
||||
class Demon1 : Actor
|
||||
{
|
||||
Default
|
||||
{
|
||||
Health 250;
|
||||
Painchance 50;
|
||||
Speed 13;
|
||||
Radius 32;
|
||||
Height 64;
|
||||
Mass 220;
|
||||
Monster;
|
||||
+TELESTOMP
|
||||
+FLOORCLIP
|
||||
SeeSound "DemonSight";
|
||||
AttackSound "DemonAttack";
|
||||
PainSound "DemonPain";
|
||||
DeathSound "DemonDeath";
|
||||
ActiveSound "DemonActive";
|
||||
Obituary "$OB_DEMON1";
|
||||
}
|
||||
|
||||
const ChunkFlags = SXF_TRANSFERTRANSLATION | SXF_ABSOLUTEVELOCITY;
|
||||
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
DEMN AA 10 A_Look;
|
||||
Loop;
|
||||
See:
|
||||
DEMN ABCD 4 A_Chase;
|
||||
Loop;
|
||||
Pain:
|
||||
DEMN E 4;
|
||||
DEMN E 4 A_Pain;
|
||||
Goto See;
|
||||
Melee:
|
||||
DEMN E 6 A_FaceTarget;
|
||||
DEMN F 8 A_FaceTarget;
|
||||
DEMN G 6 A_CustomMeleeAttack(random[DemonAttack1](1,8)*2);
|
||||
Goto See;
|
||||
Missile:
|
||||
DEMN E 5 A_FaceTarget;
|
||||
DEMN F 6 A_FaceTarget;
|
||||
DEMN G 5 A_CustomMissile("Demon1FX1", 62, 0);
|
||||
Goto See;
|
||||
Death:
|
||||
DEMN HI 6;
|
||||
DEMN J 6 A_Scream;
|
||||
DEMN K 6 A_NoBlocking;
|
||||
DEMN L 6 A_QueueCorpse;
|
||||
DEMN MNO 6;
|
||||
DEMN P -1;
|
||||
Stop;
|
||||
XDeath:
|
||||
DEMN H 6;
|
||||
DEMN I 0 A_SpawnItemEx("Demon1Chunk1", 0,0,45, frandom[DemonChunks](1,4.984375)*cos(Angle+90), frandom[DemonChunks](1,4.984375)*sin(Angle+90), 8, 90, ChunkFlags);
|
||||
DEMN I 0 A_SpawnItemEx("Demon1Chunk2", 0,0,45, frandom[DemonChunks](1,4.984375)*cos(Angle-90), frandom[DemonChunks](1,4.984375)*sin(Angle-90), 8, 270, ChunkFlags);
|
||||
DEMN I 0 A_SpawnItemEx("Demon1Chunk3", 0,0,45, frandom[DemonChunks](1,4.984375)*cos(Angle-90), frandom[DemonChunks](1,4.984375)*sin(Angle-90), 8, 270, ChunkFlags);
|
||||
DEMN I 0 A_SpawnItemEx("Demon1Chunk4", 0,0,45, frandom[DemonChunks](1,4.984375)*cos(Angle-90), frandom[DemonChunks](1,4.984375)*sin(Angle-90), 8, 270, ChunkFlags);
|
||||
DEMN I 6 A_SpawnItemEx("Demon1Chunk5", 0,0,45, frandom[DemonChunks](1,4.984375)*cos(Angle-90), frandom[DemonChunks](1,4.984375)*sin(Angle-90), 8, 270, ChunkFlags);
|
||||
Goto Death+2;
|
||||
Ice:
|
||||
DEMN Q 5 A_FreezeDeath;
|
||||
DEMN Q 1 A_FreezeDeathChunks;
|
||||
Wait;
|
||||
}
|
||||
}
|
||||
|
||||
// Demon, type 1, mashed ----------------------------------------------------
|
||||
|
||||
class Demon1Mash : Demon1
|
||||
{
|
||||
Default
|
||||
{
|
||||
+NOBLOOD
|
||||
+BLASTED
|
||||
-TELESTOMP
|
||||
+NOICEDEATH
|
||||
RenderStyle "Translucent";
|
||||
Alpha 0.4;
|
||||
}
|
||||
States
|
||||
{
|
||||
Death:
|
||||
XDeath:
|
||||
Ice:
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
// Demon chunk, base class --------------------------------------------------
|
||||
|
||||
class DemonChunk : Actor
|
||||
{
|
||||
Default
|
||||
{
|
||||
Radius 5;
|
||||
Height 5;
|
||||
+NOBLOCKMAP
|
||||
+DROPOFF
|
||||
+MISSILE
|
||||
+CORPSE
|
||||
+FLOORCLIP
|
||||
+NOTELEPORT
|
||||
}
|
||||
}
|
||||
|
||||
// Demon, type 1, chunk 1 ---------------------------------------------------
|
||||
|
||||
class Demon1Chunk1 : DemonChunk
|
||||
{
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
DEMA A 4;
|
||||
DEMA A 10 A_QueueCorpse;
|
||||
DEMA A 20;
|
||||
Wait;
|
||||
Death:
|
||||
DEMA A -1;
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
// Demon, type 1, chunk 2 ---------------------------------------------------
|
||||
|
||||
class Demon1Chunk2 : DemonChunk
|
||||
{
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
DEMB A 4;
|
||||
DEMB A 10 A_QueueCorpse;
|
||||
DEMB A 20;
|
||||
Wait;
|
||||
Death:
|
||||
DEMB A -1;
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
class Demon1Chunk3 : DemonChunk
|
||||
{
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
DEMC A 4;
|
||||
DEMC A 10 A_QueueCorpse;
|
||||
DEMC A 20;
|
||||
Wait;
|
||||
Death:
|
||||
DEMC A -1;
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
// Demon, type 1, chunk 4 ---------------------------------------------------
|
||||
|
||||
class Demon1Chunk4 : DemonChunk
|
||||
{
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
DEMD A 4;
|
||||
DEMD A 10 A_QueueCorpse;
|
||||
DEMD A 20;
|
||||
Wait;
|
||||
Death:
|
||||
DEMD A -1;
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
// Demon, type 1, chunk 5 ---------------------------------------------------
|
||||
|
||||
class Demon1Chunk5 : DemonChunk
|
||||
{
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
DEME A 4;
|
||||
DEME A 10 A_QueueCorpse;
|
||||
DEME A 20;
|
||||
Wait;
|
||||
Death:
|
||||
DEME A -1;
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
// Demon, type 1, projectile ------------------------------------------------
|
||||
|
||||
class Demon1FX1 : Actor
|
||||
{
|
||||
Default
|
||||
{
|
||||
Speed 15;
|
||||
Radius 10;
|
||||
Height 6;
|
||||
Damage 5;
|
||||
DamageType "Fire";
|
||||
Projectile;
|
||||
+SPAWNSOUNDSOURCE
|
||||
RenderStyle "Add";
|
||||
SeeSound "DemonMissileFire";
|
||||
DeathSound "DemonMissileExplode";
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
DMFX ABC 4 Bright;
|
||||
Loop;
|
||||
Death:
|
||||
DMFX DE 4 Bright;
|
||||
DMFX FGH 3 Bright;
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
// Demon, type 2 (brown) ----------------------------------------------------
|
||||
|
||||
class Demon2 : Demon1
|
||||
{
|
||||
Default
|
||||
{
|
||||
Obituary "$OB_DEMON2";
|
||||
Species "Demon2";
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
DEM2 AA 10 A_Look;
|
||||
Loop;
|
||||
See:
|
||||
DEM2 ABCD 4 A_Chase;
|
||||
Loop;
|
||||
Pain:
|
||||
DEM2 E 4;
|
||||
DEM2 E 4 A_Pain;
|
||||
Goto See;
|
||||
Melee:
|
||||
DEM2 E 6 A_FaceTarget;
|
||||
DEM2 F 8 A_FaceTarget;
|
||||
DEM2 G 6 A_CustomMeleeAttack(random[DemonAttack1](1,8)*2);
|
||||
Goto See;
|
||||
Missile:
|
||||
DEM2 E 5 A_FaceTarget;
|
||||
DEM2 F 6 A_FaceTarget;
|
||||
DEM2 G 5 A_CustomMissile("Demon2FX1", 62, 0);
|
||||
Goto See;
|
||||
Death:
|
||||
DEM2 HI 6;
|
||||
DEM2 J 6 A_Scream;
|
||||
DEM2 K 6 A_NoBlocking;
|
||||
DEM2 L 6 A_QueueCorpse;
|
||||
DEM2 MNO 6;
|
||||
DEM2 P -1;
|
||||
Stop;
|
||||
XDeath:
|
||||
DEM2 H 6;
|
||||
DEM2 I 0 A_SpawnItemEx("Demon2Chunk1", 0,0,45, frandom[DemonChunks](1,4.984375)*cos(Angle+90), frandom[DemonChunks](1,4.984375)*sin(Angle+90), 8, 90, ChunkFlags);
|
||||
DEM2 I 0 A_SpawnItemEx("Demon2Chunk2", 0,0,45, frandom[DemonChunks](1,4.984375)*cos(Angle-90), frandom[DemonChunks](1,4.984375)*sin(Angle-90), 8, 270, ChunkFlags);
|
||||
DEM2 I 0 A_SpawnItemEx("Demon2Chunk3", 0,0,45, frandom[DemonChunks](1,4.984375)*cos(Angle-90), frandom[DemonChunks](1,4.984375)*sin(Angle-90), 8, 270, ChunkFlags);
|
||||
DEM2 I 0 A_SpawnItemEx("Demon2Chunk4", 0,0,45, frandom[DemonChunks](1,4.984375)*cos(Angle-90), frandom[DemonChunks](1,4.984375)*sin(Angle-90), 8, 270, ChunkFlags);
|
||||
DEM2 I 6 A_SpawnItemEx("Demon2Chunk5", 0,0,45, frandom[DemonChunks](1,4.984375)*cos(Angle-90), frandom[DemonChunks](1,4.984375)*sin(Angle-90), 8, 270, ChunkFlags);
|
||||
Goto Death+2;
|
||||
}
|
||||
}
|
||||
|
||||
// Demon, type 2, mashed ----------------------------------------------------
|
||||
|
||||
class Demon2Mash : Demon2
|
||||
{
|
||||
Default
|
||||
{
|
||||
+NOBLOOD
|
||||
+BLASTED
|
||||
-TELESTOMP
|
||||
+NOICEDEATH
|
||||
RenderStyle "Translucent";
|
||||
Alpha 0.4;
|
||||
}
|
||||
States
|
||||
{
|
||||
Death:
|
||||
XDeath:
|
||||
Ice:
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
// Demon, type 2, chunk 1 ---------------------------------------------------
|
||||
|
||||
class Demon2Chunk1 : DemonChunk
|
||||
{
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
DMBA A 4;
|
||||
DMBA A 10 A_QueueCorpse;
|
||||
DMBA A 20;
|
||||
Wait;
|
||||
Death:
|
||||
DMBA A -1;
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
// Demon, type 2, chunk 2 ---------------------------------------------------
|
||||
|
||||
class Demon2Chunk2 : DemonChunk
|
||||
{
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
DMBB A 4;
|
||||
DMBB A 10 A_QueueCorpse;
|
||||
DMBB A 20;
|
||||
Wait;
|
||||
Death:
|
||||
DMBB A -1;
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
// Demon, type 2, chunk 3 ---------------------------------------------------
|
||||
|
||||
class Demon2Chunk3 : DemonChunk
|
||||
{
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
DMBC A 4;
|
||||
DMBC A 10 A_QueueCorpse;
|
||||
DMBC A 20;
|
||||
Wait;
|
||||
Death:
|
||||
DMBC A -1;
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
// Demon, type 2, chunk 4 ---------------------------------------------------
|
||||
|
||||
class Demon2Chunk4 : DemonChunk
|
||||
{
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
DMBD A 4;
|
||||
DMBD A 10 A_QueueCorpse;
|
||||
DMBD A 20;
|
||||
Wait;
|
||||
Death:
|
||||
DMBD A -1;
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
// Demon, type 2, chunk 5 ---------------------------------------------------
|
||||
|
||||
class Demon2Chunk5 : DemonChunk
|
||||
{
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
DMBE A 4;
|
||||
DMBE A 10 A_QueueCorpse;
|
||||
DMBE A 20;
|
||||
Wait;
|
||||
Death:
|
||||
DMBE A -1;
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
// Demon, type 2, projectile ------------------------------------------------
|
||||
|
||||
class Demon2FX1 : Actor
|
||||
{
|
||||
Default
|
||||
{
|
||||
Speed 15;
|
||||
Radius 10;
|
||||
Height 6;
|
||||
Damage 5;
|
||||
DamageType "Fire";
|
||||
Projectile;
|
||||
+SPAWNSOUNDSOURCE
|
||||
RenderStyle "Add";
|
||||
SeeSound "DemonMissileFire";
|
||||
DeathSound "DemonMissileExplode";
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
D2FX ABCDEF 4 Bright;
|
||||
Loop;
|
||||
Death:
|
||||
D2FX GHIJ 4 Bright;
|
||||
D2FX KL 3 Bright;
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
115
wadsrc/static/zscript/hexen/ettin.txt
Normal file
115
wadsrc/static/zscript/hexen/ettin.txt
Normal file
|
@ -0,0 +1,115 @@
|
|||
|
||||
// Ettin --------------------------------------------------------------------
|
||||
|
||||
class Ettin : Actor
|
||||
{
|
||||
Default
|
||||
{
|
||||
Health 175;
|
||||
Radius 25;
|
||||
Height 68;
|
||||
Mass 175;
|
||||
Speed 13;
|
||||
Damage 3;
|
||||
Painchance 60;
|
||||
Monster;
|
||||
+FLOORCLIP
|
||||
+TELESTOMP
|
||||
SeeSound "EttinSight";
|
||||
AttackSound "EttinAttack";
|
||||
PainSound "EttinPain";
|
||||
DeathSound "EttinDeath";
|
||||
ActiveSound "EttinActive";
|
||||
HowlSound "PuppyBeat";
|
||||
Obituary "$OB_ETTIN";
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
ETTN AA 10 A_Look;
|
||||
Loop;
|
||||
See:
|
||||
ETTN ABCD 5 A_Chase;
|
||||
Loop;
|
||||
Pain:
|
||||
ETTN H 7 A_Pain;
|
||||
Goto See;
|
||||
Melee:
|
||||
ETTN EF 6 A_FaceTarget;
|
||||
ETTN G 8 A_CustomMeleeAttack(random[EttinAttack](1,8)*2);
|
||||
Goto See;
|
||||
Death:
|
||||
ETTN IJ 4;
|
||||
ETTN K 4 A_Scream;
|
||||
ETTN L 4 A_NoBlocking;
|
||||
ETTN M 4 A_QueueCorpse;
|
||||
ETTN NOP 4;
|
||||
ETTN Q -1;
|
||||
Stop;
|
||||
XDeath:
|
||||
ETTB A 4;
|
||||
ETTB B 4 A_NoBlocking;
|
||||
ETTB C 4 A_SpawnItemEx("EttinMace", 0,0,8.5,
|
||||
random[DropMace](-128,127) * 0.03125,
|
||||
random[DropMace](-128,127) * 0.03125,
|
||||
10 + random[DropMace](0,255) * 0.015625, 0, SXF_ABSOLUTEVELOCITY);
|
||||
ETTB D 4 A_Scream;
|
||||
ETTB E 4 A_QueueCorpse;
|
||||
ETTB FGHIJK 4;
|
||||
ETTB L -1;
|
||||
Stop;
|
||||
Ice:
|
||||
ETTN R 5 A_FreezeDeath;
|
||||
ETTN R 1 A_FreezeDeathChunks;
|
||||
Wait;
|
||||
}
|
||||
}
|
||||
|
||||
// Ettin mace ---------------------------------------------------------------
|
||||
|
||||
class EttinMace : Actor
|
||||
{
|
||||
Default
|
||||
{
|
||||
Radius 5;
|
||||
Height 5;
|
||||
+DROPOFF
|
||||
+CORPSE
|
||||
+NOTELEPORT
|
||||
+FLOORCLIP
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
ETTB MNOP 5;
|
||||
Loop;
|
||||
Crash:
|
||||
ETTB Q 5;
|
||||
ETTB R 5 A_QueueCorpse;
|
||||
ETTB S -1;
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
// Ettin mash ---------------------------------------------------------------
|
||||
|
||||
class EttinMash : Ettin
|
||||
{
|
||||
Default
|
||||
{
|
||||
+NOBLOOD
|
||||
+NOICEDEATH
|
||||
RenderStyle "Translucent";
|
||||
Alpha 0.4;
|
||||
}
|
||||
States
|
||||
{
|
||||
Death:
|
||||
XDeath:
|
||||
Ice:
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
99
wadsrc/static/zscript/hexen/mana.txt
Normal file
99
wadsrc/static/zscript/hexen/mana.txt
Normal file
|
@ -0,0 +1,99 @@
|
|||
// Blue mana ----------------------------------------------------------------
|
||||
|
||||
class Mana1 : Ammo
|
||||
{
|
||||
Default
|
||||
{
|
||||
Inventory.Amount 15;
|
||||
Inventory.MaxAmount 200;
|
||||
Ammo.BackpackAmount 15;
|
||||
Ammo.BackpackMaxAmount 200;
|
||||
Radius 8;
|
||||
Height 8;
|
||||
+FLOATBOB
|
||||
Inventory.Icon "MAN1I0";
|
||||
Inventory.PickupMessage "$TXT_MANA_1";
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
MAN1 ABCDEFGHI 4 Bright;
|
||||
Loop;
|
||||
}
|
||||
}
|
||||
|
||||
// Green mana ---------------------------------------------------------------
|
||||
|
||||
class Mana2 : Ammo
|
||||
{
|
||||
Default
|
||||
{
|
||||
Inventory.Amount 15;
|
||||
Inventory.MaxAmount 200;
|
||||
Ammo.BackpackAmount 15;
|
||||
Ammo.BackpackMaxAmount 200;
|
||||
Radius 8;
|
||||
Height 8;
|
||||
+FLOATBOB
|
||||
Inventory.Icon "MAN2G0";
|
||||
Inventory.PickupMessage "$TXT_MANA_2";
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
MAN2 ABCDEFGHIJKLMNOP 4 Bright;
|
||||
Loop;
|
||||
}
|
||||
}
|
||||
|
||||
// Combined mana ------------------------------------------------------------
|
||||
|
||||
class Mana3 : CustomInventory
|
||||
{
|
||||
Default
|
||||
{
|
||||
Radius 8;
|
||||
Height 8;
|
||||
+FLOATBOB
|
||||
Inventory.PickupMessage "$TXT_MANA_BOTH";
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
MAN3 ABCDEFGHIJKLMNOP 4 Bright;
|
||||
Loop;
|
||||
Pickup:
|
||||
TNT1 A 0 A_GiveInventory("Mana1", 20);
|
||||
TNT1 A 0 A_GiveInventory("Mana2", 20);
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
// Boost Mana Artifact Krater of Might ------------------------------------
|
||||
|
||||
class ArtiBoostMana : CustomInventory
|
||||
{
|
||||
Default
|
||||
{
|
||||
+FLOATBOB
|
||||
+COUNTITEM
|
||||
+INVENTORY.INVBAR
|
||||
+INVENTORY.FANCYPICKUPSOUND
|
||||
Inventory.PickupFlash "PickupFlash";
|
||||
Inventory.DefMaxAmount;
|
||||
Inventory.Icon "ARTIBMAN";
|
||||
Inventory.PickupSound "misc/p_pkup";
|
||||
Inventory.PickupMessage "$TXT_ARTIBOOSTMANA";
|
||||
Tag "$TAG_ARTIBOOSTMANA";
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
BMAN A -1;
|
||||
Stop;
|
||||
Use:
|
||||
TNT1 A 0 A_GiveInventory("Mana1", 200);
|
||||
TNT1 A 0 A_GiveInventory("Mana2", 200);
|
||||
Stop;
|
||||
}
|
||||
}
|
338
wadsrc/static/zscript/hexen/puzzleitems.txt
Normal file
338
wadsrc/static/zscript/hexen/puzzleitems.txt
Normal file
|
@ -0,0 +1,338 @@
|
|||
|
||||
// Yorick's Skull -----------------------------------------------------------
|
||||
|
||||
class PuzzSkull : PuzzleItem
|
||||
{
|
||||
Default
|
||||
{
|
||||
PuzzleItem.Number 0;
|
||||
Inventory.Icon "ARTISKLL";
|
||||
Inventory.PickupMessage "$TXT_ARTIPUZZSKULL";
|
||||
Tag "$TAG_ARTIPUZZSKULL";
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
ASKU A -1;
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Heart of D'Sparil --------------------------------------------------------
|
||||
|
||||
class PuzzGemBig : PuzzleItem
|
||||
{
|
||||
Default
|
||||
{
|
||||
PuzzleItem.Number 1;
|
||||
Inventory.Icon "ARTIBGEM";
|
||||
Inventory.PickupMessage "$TXT_ARTIPUZZGEMBIG";
|
||||
Tag "$TAG_ARTIPUZZGEMBIG";
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
ABGM A -1;
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
// Red Gem (Ruby Planet) ----------------------------------------------------
|
||||
|
||||
class PuzzGemRed : PuzzleItem
|
||||
{
|
||||
Default
|
||||
{
|
||||
PuzzleItem.Number 2;
|
||||
Inventory.Icon "ARTIGEMR";
|
||||
Inventory.PickupMessage "$TXT_ARTIPUZZGEMRED";
|
||||
Tag "$TAG_ARTIPUZZGEMRED";
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
AGMR A -1;
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Green Gem 1 (Emerald Planet) ---------------------------------------------
|
||||
|
||||
class PuzzGemGreen1 : PuzzleItem
|
||||
{
|
||||
Default
|
||||
{
|
||||
PuzzleItem.Number 3;
|
||||
Inventory.Icon "ARTIGEMG";
|
||||
Inventory.PickupMessage "$TXT_ARTIPUZZGEMGREEN1";
|
||||
Tag "$TAG_ARTIPUZZGEMGREEN1";
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
AGMG A -1;
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Green Gem 2 (Emerald Planet) ---------------------------------------------
|
||||
|
||||
class PuzzGemGreen2 : PuzzleItem
|
||||
{
|
||||
Default
|
||||
{
|
||||
PuzzleItem.Number 4;
|
||||
Inventory.Icon "ARTIGMG2";
|
||||
Inventory.PickupMessage "$TXT_ARTIPUZZGEMGREEN2";
|
||||
Tag "$TAG_ARTIPUZZGEMGREEN2";
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
AGG2 A -1;
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Blue Gem 1 (Sapphire Planet) ---------------------------------------------
|
||||
|
||||
class PuzzGemBlue1 : PuzzleItem
|
||||
{
|
||||
Default
|
||||
{
|
||||
PuzzleItem.Number 5;
|
||||
Inventory.Icon "ARTIGEMB";
|
||||
Inventory.PickupMessage "$TXT_ARTIPUZZGEMBLUE1";
|
||||
Tag "$TAG_ARTIPUZZGEMBLUE1";
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
AGMB A -1;
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Blue Gem 2 (Sapphire Planet) ---------------------------------------------
|
||||
|
||||
class PuzzGemBlue2 : PuzzleItem
|
||||
{
|
||||
Default
|
||||
{
|
||||
PuzzleItem.Number 6;
|
||||
Inventory.Icon "ARTIGMB2";
|
||||
Inventory.PickupMessage "$TXT_ARTIPUZZGEMBLUE2";
|
||||
Tag "$TAG_ARTIPUZZGEMBLUE2";
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
AGB2 A -1;
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Book 1 (Daemon Codex) ----------------------------------------------------
|
||||
|
||||
class PuzzBook1 : PuzzleItem
|
||||
{
|
||||
Default
|
||||
{
|
||||
PuzzleItem.Number 7;
|
||||
Inventory.Icon "ARTIBOK1";
|
||||
Inventory.PickupMessage "$TXT_ARTIPUZZBOOK1";
|
||||
Tag "$TAG_ARTIPUZZBOOK1";
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
ABK1 A -1;
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Book 2 (Liber Oscura) ----------------------------------------------------
|
||||
|
||||
class PuzzBook2 : PuzzleItem
|
||||
{
|
||||
Default
|
||||
{
|
||||
PuzzleItem.Number 8;
|
||||
Inventory.Icon "ARTIBOK2";
|
||||
Inventory.PickupMessage "$TXT_ARTIPUZZBOOK2";
|
||||
Tag "$TAG_ARTIPUZZBOOK2";
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
ABK2 A -1;
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Flame Mask ---------------------------------------------------------------
|
||||
|
||||
|
||||
class PuzzFlameMask : PuzzleItem
|
||||
{
|
||||
Default
|
||||
{
|
||||
PuzzleItem.Number 9;
|
||||
Inventory.Icon "ARTISKL2";
|
||||
Inventory.PickupMessage "$TXT_ARTIPUZZSKULL2";
|
||||
Tag "$TAG_ARTIPUZZSKULL2";
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
ASK2 A -1;
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
// Fighter Weapon (Glaive Seal) ---------------------------------------------
|
||||
|
||||
class PuzzFWeapon : PuzzleItem
|
||||
{
|
||||
Default
|
||||
{
|
||||
PuzzleItem.Number 10;
|
||||
Inventory.Icon "ARTIFWEP";
|
||||
Inventory.PickupMessage "$TXT_ARTIPUZZFWEAPON";
|
||||
Tag "$TAG_ARTIPUZZFWEAPON";
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
AFWP A -1;
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Cleric Weapon (Holy Relic) -----------------------------------------------
|
||||
|
||||
class PuzzCWeapon : PuzzleItem
|
||||
{
|
||||
Default
|
||||
{
|
||||
PuzzleItem.Number 11;
|
||||
Inventory.Icon "ARTICWEP";
|
||||
Inventory.PickupMessage "$TXT_ARTIPUZZCWEAPON";
|
||||
Tag "$TAG_ARTIPUZZCWEAPON";
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
ACWP A -1;
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Mage Weapon (Sigil of the Magus) -----------------------------------------
|
||||
|
||||
class PuzzMWeapon : PuzzleItem
|
||||
{
|
||||
Default
|
||||
{
|
||||
PuzzleItem.Number 12;
|
||||
Inventory.Icon "ARTIMWEP";
|
||||
Inventory.PickupMessage "$TXT_ARTIPUZZMWEAPON";
|
||||
Tag "$TAG_ARTIPUZZMWEAPON";
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
AMWP A -1;
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
// Clock Gear 1 -------------------------------------------------------------
|
||||
|
||||
class PuzzGear1 : PuzzleItem
|
||||
{
|
||||
Default
|
||||
{
|
||||
PuzzleItem.Number 13;
|
||||
Inventory.Icon "ARTIGEAR";
|
||||
Inventory.PickupMessage "$TXT_ARTIPUZZGEAR";
|
||||
Tag "$TAG_ARTIPUZZGEAR1";
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
AGER ABCDEFGH 4 Bright;
|
||||
Loop;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Clock Gear 2 -------------------------------------------------------------
|
||||
|
||||
class PuzzGear2 : PuzzleItem
|
||||
{
|
||||
Default
|
||||
{
|
||||
PuzzleItem.Number 14;
|
||||
Inventory.Icon "ARTIGER2";
|
||||
Inventory.PickupMessage "$TXT_ARTIPUZZGEAR";
|
||||
Tag "$TAG_ARTIPUZZGEAR2";
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
AGR2 ABCDEFGH 4 Bright;
|
||||
Loop;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Clock Gear 3 -------------------------------------------------------------
|
||||
|
||||
class PuzzGear3 : PuzzleItem
|
||||
{
|
||||
Default
|
||||
{
|
||||
PuzzleItem.Number 15;
|
||||
Inventory.Icon "ARTIGER3";
|
||||
Inventory.PickupMessage "$TXT_ARTIPUZZGEAR";
|
||||
Tag "$TAG_ARTIPUZZGEAR3";
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
AGR3 ABCDEFGH 4 Bright;
|
||||
Loop;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Clock Gear 4 -------------------------------------------------------------
|
||||
|
||||
class PuzzGear4 : PuzzleItem
|
||||
{
|
||||
Default
|
||||
{
|
||||
PuzzleItem.Number 16;
|
||||
Inventory.Icon "ARTIGER4";
|
||||
Inventory.PickupMessage "$TXT_ARTIPUZZGEAR";
|
||||
Tag "$TAG_ARTIPUZZGEAR4";
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
AGR4 ABCDEFGH 4 Bright;
|
||||
Loop;
|
||||
}
|
||||
}
|
||||
|
141
wadsrc/static/zscript/hexen/scriptprojectiles.txt
Normal file
141
wadsrc/static/zscript/hexen/scriptprojectiles.txt
Normal file
|
@ -0,0 +1,141 @@
|
|||
// Fire Ball ----------------------------------------------------------------
|
||||
|
||||
class FireBall : Actor
|
||||
{
|
||||
Default
|
||||
{
|
||||
Speed 2;
|
||||
Radius 8;
|
||||
Height 8;
|
||||
Damage 4;
|
||||
DamageType "Fire";
|
||||
+NOBLOCKMAP +NOGRAVITY +DROPOFF +MISSILE
|
||||
+NOTELEPORT
|
||||
RenderStyle "Add";
|
||||
DeathSound "Fireball";
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
FBL1 AB 4 Bright;
|
||||
Loop;
|
||||
Death:
|
||||
XPL1 ABCDEF 4 Bright;
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
// Arrow --------------------------------------------------------------------
|
||||
|
||||
class Arrow : Actor
|
||||
{
|
||||
Default
|
||||
{
|
||||
Speed 6;
|
||||
Radius 8;
|
||||
Height 4;
|
||||
Damage 4;
|
||||
+NOBLOCKMAP +NOGRAVITY +DROPOFF +MISSILE
|
||||
+NOTELEPORT
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
ARRW A -1;
|
||||
Stop;
|
||||
Death:
|
||||
ARRW A 1;
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
// Dart ---------------------------------------------------------------------
|
||||
|
||||
class Dart : Actor
|
||||
{
|
||||
Default
|
||||
{
|
||||
Speed 6;
|
||||
Radius 8;
|
||||
Height 4;
|
||||
Damage 2;
|
||||
+NOBLOCKMAP +NOGRAVITY +DROPOFF +MISSILE
|
||||
+NOTELEPORT
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
DART A -1;
|
||||
Stop;
|
||||
Death:
|
||||
DART A 1;
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
// Poison Dart --------------------------------------------------------------
|
||||
|
||||
class PoisonDart : Dart
|
||||
{
|
||||
Default
|
||||
{
|
||||
PoisonDamage 20;
|
||||
}
|
||||
}
|
||||
|
||||
// Ripper Ball --------------------------------------------------------------
|
||||
|
||||
class RipperBall : Actor
|
||||
{
|
||||
Default
|
||||
{
|
||||
Speed 6;
|
||||
Radius 8;
|
||||
Damage 2;
|
||||
+NOBLOCKMAP +NOGRAVITY +DROPOFF +MISSILE
|
||||
+NOTELEPORT +RIPPER
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
RIPP ABC 3;
|
||||
Loop;
|
||||
Death:
|
||||
CFCF Q 4 Bright;
|
||||
CFCF R 3 Bright;
|
||||
CFCF S 4 Bright;
|
||||
CFCF T 3 Bright;
|
||||
CFCF U 4 Bright;
|
||||
CFCF V 3 Bright;
|
||||
CFCF W 4 Bright;
|
||||
CFCF X 3 Bright;
|
||||
CFCF Y 4 Bright;
|
||||
CFCF Z 3 Bright;
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
// Projectile Blade ---------------------------------------------------------
|
||||
|
||||
class ProjectileBlade : Actor
|
||||
{
|
||||
Default
|
||||
{
|
||||
Speed 6;
|
||||
Radius 6;
|
||||
Height 6;
|
||||
Damage 3;
|
||||
+NOBLOCKMAP +NOGRAVITY +DROPOFF +MISSILE
|
||||
+NOTELEPORT
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
BLAD A -1;
|
||||
Stop;
|
||||
Death:
|
||||
BLAD A 1;
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
21
wadsrc/static/zscript/hexen/speedboots.txt
Normal file
21
wadsrc/static/zscript/hexen/speedboots.txt
Normal file
|
@ -0,0 +1,21 @@
|
|||
|
||||
|
||||
class ArtiSpeedBoots : PowerupGiver
|
||||
{
|
||||
Default
|
||||
{
|
||||
+FLOATBOB
|
||||
+COUNTITEM
|
||||
Inventory.PickupFlash "PickupFlash";
|
||||
Inventory.Icon "ARTISPED";
|
||||
Inventory.PickupMessage "$TXT_ARTISPEED";
|
||||
Tag "$TAG_ARTISPEED";
|
||||
Powerup.Type "PowerSpeed";
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
SPED ABCDEFGH 3 Bright;
|
||||
Loop;
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue