- another batch of Hexen items converted.

- fixed parsing of named damage types and pain chances.
This commit is contained in:
Christoph Oelckers 2016-10-18 10:09:02 +02:00
parent 1652c02a08
commit 61cc7dbb29
17 changed files with 1332 additions and 1204 deletions

View file

@ -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;

View file

@ -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
}
}

View file

@ -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
}
}

View file

@ -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
}
}

View file

@ -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
}
}

View file

@ -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
}
}

View file

@ -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
}
}

View file

@ -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
}
}

View file

@ -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"

View file

@ -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

View 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;
}
}

View 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;
}
}

View 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;
}
}

View 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;
}
}

View 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;
}
}

View 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;
}
}

View 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;
}
}