Add support for ID24 monsters and decorations

This commit is contained in:
Owlet7 2025-04-06 05:26:11 +03:00
parent a02892389d
commit 724a50f45a
13 changed files with 1392 additions and 0 deletions

View file

@ -460,6 +460,53 @@ $alias intermission/pastdmstats *gibbed
// id24 sounds
world/officelamp = DSBREAK
ambient/klaxon = DSKLAXON
ambient/portalopen = DSGATOPN
ambient/portalloop = DSGATLOP
ambient/portalclose = DSGATCLS
monsters/ghoul/sight = DSGHLSIT
monsters/ghoul/pain = DSGHLPAI
monsters/ghoul/death = DSGHLDTH
monsters/ghoul/active = DSGHLACT
monsters/ghoul/attack = DSFIRSHT
monsters/ghoul/shotx = DSFIRXPL
monsters/banshee/sight = DSBANACT
monsters/banshee/pain = DSBANPAI
monsters/banshee/death = DSBANDTH
monsters/banshee/active = DSBANACT
monsters/mindweaver/sight = DSCSPSIT
monsters/mindweaver/pain = DSDMPAIN
monsters/mindweaver/death = DSCSPDTH
monsters/mindweaver/active = DSCSPACT
monsters/mindweaver/walk = DSCSPWLK
monsters/plasmaguy/pain = DSPPOPAI
monsters/plasmaguy/death = DSPPODTH
monsters/plasmaguy/active = DSPPOACT
monsters/plasmaguy/head = DSPPOHED
monsters/vassago/sight = DSVASSIT
monsters/vassago/pain = DSVASPAI
monsters/vassago/death = DSVASDTH
monsters/vassago/active = DSVASACT
monsters/vassago/attack = DSVASATK
monsters/vassago/burn = DSINCBRN
monsters/vassago/shotx = DSFLAME
monsters/vassago/hot1 = DSINCHT1
monsters/vassago/hot2 = DSINCHT2
monsters/vassago/hot3 = DSINCHT3
monsters/tyrant/sight = DSTYRSIT
monsters/tyrant/pain = DSTYRPAI
monsters/tyrant/death = DSTYRDTH
monsters/tyrant/active = DSTYRACT
monsters/tyrant/walk = DSTYRWLK
weapons/incinerator/fire1 DSINCFI1
weapons/incinerator/fire2 DSINCFI2
weapons/incinerator/burn DSINCBRN

View file

@ -119,6 +119,57 @@ DoomEdNums
3004 = Zombieman
3005 = Cacodemon
3006 = LostSoul
3007 = ID24Ghoul
3008 = ID24Banshee
3009 = ID24Mindweaver
3010 = ID24PlasmaGuy
3011 = ID24Vassago
3012 = ID24Tyrant
3013 = ID24TyrantBoss1
3014 = ID24TyrantBoss2
3100 = ID24GrayStalagmite
3101 = ID24LargeCorpsePile
3102 = ID24HumanBBQ1
3103 = ID24HumanBBQ2
3104 = ID24HangingBodyBothLegs
3105 = ID24HangingBodyBothLegsSolid
3106 = ID24HangingBodyCrucified
3107 = ID24HangingBodyCrucifiedSolid
3108 = ID24HangingBodyArmsBound
3109 = ID24HangingBodyArmsBoundSolid
3110 = ID24HangingBaronOfHell
3111 = ID24HangingBaronOfHellSolid
3112 = ID24HangingChainedBody
3113 = ID24HangingChainedBodySolid
3114 = ID24HangingChainedTorso
3115 = ID24HangingChainedTorsoSolid
3116 = ID24SkullPoleTrio
3117 = ID24SkullGibs
3118 = ID24BushShort
3119 = ID24BushShortBurned1
3120 = ID24BushShortBurned2
3121 = ID24BushTall
3122 = ID24BushTallBurned1
3123 = ID24BushTallBurned2
3124 = ID24CaveRockColumn
3125 = ID24CaveStalagmiteLarge
3126 = ID24CaveStalagmiteMedium
3127 = ID24CaveStalagmiteSmall
3128 = ID24CaveStalactiteLarge
3129 = ID24CaveStalactiteLargeSolid
3130 = ID24CaveStalactiteMedium
3131 = ID24CaveStalactiteMediumSolid
3132 = ID24CaveStalactiteSmall
3133 = ID24CaveStalactiteSmallSolid
3134 = ID24OfficeChair
3135 = ID24OfficeLamp
3136 = ID24LiveWire
3137 = ID24CeilingLamp
3138 = ID24CandelabraShort
3139 = ID24AmbientKlaxon
3140 = ID24AmbientPortalOpen
3141 = ID24AmbientPortalLoop
3142 = ID24AmbientPortalClose
4001 = "$Player5Start"
4002 = "$Player6Start"
4003 = "$Player7Start"

View file

@ -124,6 +124,16 @@ version "4.15.1"
#include "zscript/actors/doom/weaponbfg.zs"
#include "zscript/actors/doom/dehacked.zs"
#include "zscript/actors/doom/id24/id24gore.zs"
#include "zscript/actors/doom/id24/id24nature.zs"
#include "zscript/actors/doom/id24/id24tech.zs"
#include "zscript/actors/doom/id24/id24ambientsounds.zs"
#include "zscript/actors/doom/id24/id24ghoul.zs"
#include "zscript/actors/doom/id24/id24banshee.zs"
#include "zscript/actors/doom/id24/id24mindweaver.zs"
#include "zscript/actors/doom/id24/id24plasmaguy.zs"
#include "zscript/actors/doom/id24/id24vassago.zs"
#include "zscript/actors/doom/id24/id24tyrant.zs"
#include "zscript/actors/doom/id24/id24ammo.zs"
#include "zscript/actors/doom/id24/id24incinerator.zs"
#include "zscript/actors/doom/id24/id24calamityblade.zs"

View file

@ -0,0 +1,65 @@
/*****************************************************************************
* Copyright (C) 1993-2024 id Software LLC, a ZeniMax Media company.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
****************************************************************************/
/*****************************************************************************
* id1 - decohack - ambient sounds
****************************************************************************/
class ID24AmbientKlaxon : Actor
{
Default
{
Radius 8;
Height 16;
}
States
{
Spawn:
TNT1 A 1 A_Look;
Loop;
See:
TNT1 A 35 A_StartSound("ambient/klaxon");
Loop;
}
}
class ID24AmbientPortalOpen : ID24AmbientKlaxon
{
States
{
See:
TNT1 A 250 A_StartSound("ambient/portalopen", 1);
Stop;
}
}
class ID24AmbientPortalLoop : ID24AmbientKlaxon
{
States
{
See:
TNT1 A 139 A_StartSound("ambient/portalloop");
Loop;
}
}
class ID24AmbientPortalClose : ID24AmbientKlaxon
{
States
{
See:
TNT1 A 105 A_StartSound("ambient/portalclose", 1);
Stop;
}
}

View file

@ -0,0 +1,65 @@
/*****************************************************************************
* Copyright (C) 1993-2024 id Software LLC, a ZeniMax Media company.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
****************************************************************************/
/*****************************************************************************
* id1 - decohack - banshee
****************************************************************************/
//converted from DECOHACK
class ID24Banshee : Actor
{
Default
{
Health 100;
Speed 8;
Radius 20;
Height 56;
ReactionTime 8;
PainChance 64;
Mass 500;
Monster;
+FLOAT
+NOGRAVITY
SeeSound "monsters/banshee/sight";
PainSound "monsters/banshee/pain";
DeathSound "monsters/banshee/death";
Tag "$FN_ID24BANSHEE";
}
States
{
Spawn:
BSHE AB 10 BRIGHT A_Look;
Loop;
See:
BSHE AAABBBCCCAAABBBCCC 2 BRIGHT A_Chase;
BSHE A 0 BRIGHT A_StartSound("monsters/banshee/active");
Loop;
Melee:
BSHE D 1 BRIGHT A_RadiusDamage(100, 8);
Wait;
Pain:
BSHE D 3 BRIGHT;
BSHE D 3 BRIGHT A_Pain;
Goto See;
Death:
BSHE D 4 BRIGHT A_Scream;
BSHE E 6 BRIGHT A_RadiusDamage(128, 128);
BSHE F 8 BRIGHT A_Fall;
BSHE G 6 BRIGHT;
BSHE H 4 BRIGHT;
TNT1 A 20;
Stop;
}
}

View file

@ -0,0 +1,94 @@
/*****************************************************************************
* Copyright (C) 1993-2024 id Software LLC, a ZeniMax Media company.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
****************************************************************************/
/*****************************************************************************
* id1 - decohack - ghoul
****************************************************************************/
//converted from DECOHACK
class ID24Ghoul : Actor
{
Default
{
Health 50;
Speed 12;
Radius 16;
Height 40;
ReactionTime 8;
PainChance 128;
Mass 50;
Monster;
+FLOAT
+NOGRAVITY
SeeSound "monsters/ghoul/sight";
PainSound "monsters/ghoul/pain";
DeathSound "monsters/ghoul/death";
ActiveSound "monsters/ghoul/active";
Tag "$FN_ID24GHOUL";
}
States
{
Spawn:
GHUL AB 10 A_Look;
Loop;
See:
GHUL AABBCCBB 3 A_Chase;
Loop;
Missile:
GHUL DE 4 BRIGHT A_FaceTarget;
GHUL F 4 BRIGHT MBF21_MonsterProjectile("ID24GhoulBall", 0.0, 0.0, 0.0, -8.0);
GHUL G 4 BRIGHT;
Goto See;
Pain:
GHUL I 3 BRIGHT;
GHUL K 3 BRIGHT A_Pain;
Goto See;
Death:
GHUL L 5 BRIGHT;
GHUL M 5 BRIGHT A_Scream;
GHUL NO 5 BRIGHT;
GHUL P 5 BRIGHT A_Fall;
GHUL QR 5 BRIGHT;
GHUL S -1;
Stop;
}
}
class ID24GhoulBall : Actor
{
Default
{
Damage 3;
Speed 15;
FastSpeed 20;
Radius 6;
Height 8;
Projectile;
+ZDOOMTRANS
RenderStyle "Add";
SeeSound "monsters/ghoul/attack";
DeathSound "monsters/ghoul/shotx";
}
States
{
Spawn:
GBAL AB 4 BRIGHT;
Loop;
Death:
GBAL C 5 BRIGHT;
APBX BCDE 5 BRIGHT;
Stop;
}
}

View file

@ -0,0 +1,248 @@
/*****************************************************************************
* Copyright (C) 1993-2024 id Software LLC, a ZeniMax Media company.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
****************************************************************************/
/*****************************************************************************
* id1 - decohack - gore
****************************************************************************/
//converted from DECOHACK
class ID24LargeCorpsePile : Actor
{
Default
{
Radius 40;
Height 16;
+SOLID
}
States
{
Spawn:
POL7 A -1;
Stop;
}
}
class ID24HumanBBQ1 : Actor
{
Default
{
Radius 16;
Height 16;
+SOLID
}
States
{
Spawn:
HBBQ ABC 5 BRIGHT;
Loop;
}
}
class ID24HumanBBQ2 : Actor
{
Default
{
Radius 16;
Height 16;
+SOLID
}
States
{
Spawn:
HBB2 ABC 5 BRIGHT;
Loop;
}
}
class ID24HangingBodyBothLegs : Actor
{
Default
{
Radius 16;
Height 80;
+NOGRAVITY
+SPAWNCEILING
}
States
{
Spawn:
GOR6 A -1;
Stop;
}
}
class ID24HangingBodyBothLegsSolid : ID24HangingBodyBothLegs
{
Default
{
+SOLID
}
}
class ID24HangingBodyCrucified : Actor
{
Default
{
Radius 16;
Height 64;
+NOGRAVITY
+SPAWNCEILING
}
States
{
Spawn:
GOR7 A -1;
Stop;
}
}
class ID24HangingBodyCrucifiedSolid : ID24HangingBodyCrucified
{
Default
{
+SOLID
}
}
class ID24HangingBodyArmsBound : Actor
{
Default
{
Radius 16;
Height 72;
+NOGRAVITY
+SPAWNCEILING
}
States
{
Spawn:
GOR8 A -1;
Stop;
}
}
class ID24HangingBodyArmsBoundSolid : ID24HangingBodyArmsBound
{
Default
{
+SOLID
}
}
class ID24HangingBaronOfHell : Actor
{
Default
{
Radius 16;
Height 80;
+NOGRAVITY
+SPAWNCEILING
}
States
{
Spawn:
GORA A -1;
Stop;
}
}
class ID24HangingBaronOfHellSolid : ID24HangingBaronOfHell
{
Default
{
+SOLID
}
}
class ID24HangingChainedBody : Actor
{
Default
{
Radius 16;
Height 84;
+NOGRAVITY
+SPAWNCEILING
}
States
{
Spawn:
HDB7 A -1;
Stop;
}
}
class ID24HangingChainedBodySolid : ID24HangingChainedBody
{
Default
{
+SOLID
}
}
class ID24HangingChainedTorso : Actor
{
Default
{
Radius 16;
Height 52;
+NOGRAVITY
+SPAWNCEILING
}
States
{
Spawn:
HDB8 A -1;
Stop;
}
}
class ID24HangingChainedTorsoSolid : ID24HangingChainedTorso
{
Default
{
+SOLID
}
}
class ID24SkullPoleTrio : Actor
{
Default
{
Radius 16;
Height 16;
+SOLID
}
States
{
Spawn:
POLA A -1;
Stop;
}
}
class ID24SkullGibs : Actor
{
Default
{
Radius 16;
Height 16;
}
States
{
Spawn:
POB6 A -1;
Stop;
}
}

View file

@ -0,0 +1,74 @@
/*****************************************************************************
* Copyright (C) 1993-2024 id Software LLC, a ZeniMax Media company.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
****************************************************************************/
/*****************************************************************************
* id1 - decohack - mindweaver
****************************************************************************/
//converted from DECOHACK
class ID24Mindweaver : Actor
{
Default
{
Health 500;
Speed 12;
Radius 64;
Height 64;
ReactionTime 8;
PainChance 40;
Mass 600;
Monster;
SeeSound "monsters/mindweaver/sight";
PainSound "monsters/mindweaver/pain";
DeathSound "monsters/mindweaver/death";
ActiveSound "monsters/mindweaver/active";
Tag "$FN_ID24MINDWEAVER";
}
States
{
Spawn:
CSPI AB 10 A_Look;
Loop;
See:
CSPI A 20;
Walk:
CSPI A 0 A_StartSound("monsters/mindweaver/walk");
CSPI AABBCC 3 A_Chase;
CSPI D 0 A_StartSound("monsters/mindweaver/walk");
CSPI DDEEFF 3 A_Chase;
Loop;
Missile:
CSPI A 20 BRIGHT A_FaceTarget;
Fighting:
CSPI G 4 BRIGHT A_SPosAttack;
CSPI H 4 BRIGHT A_SPosAttack;
CSPI H 1 BRIGHT A_SpidRefire;
Goto Fighting;
Pain:
CSPI I 3;
CSPI I 3 A_Pain;
Goto Walk;
Death:
CSPI J 20 A_Scream;
CSPI K 7 A_Fall;
CSPI LMNO 7;
CSPI P -1 A_BossDeath;
Stop;
Raise:
CSPI P 5;
CSPI ONMLKJ 5;
Goto Walk;
}
}

View file

@ -0,0 +1,266 @@
/*****************************************************************************
* Copyright (C) 1993-2024 id Software LLC, a ZeniMax Media company.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
****************************************************************************/
/*****************************************************************************
* id1 - decohack - nature
****************************************************************************/
//converted from DECOHACK
class ID24GrayStalagmite : Actor
{
Default
{
Radius 16;
Height 16;
+SOLID
}
States
{
Spawn:
SMT2 A -1;
Stop;
}
}
class ID24BushShort : Actor
{
Default
{
Radius 12;
Height 16;
+SOLID
}
States
{
Spawn:
BSH1 A -1;
Stop;
}
}
class ID24BushShortBurned1 : Actor
{
Default
{
Radius 12;
Height 16;
}
States
{
Spawn:
BSH1 B -1;
Stop;
}
}
class ID24BushShortBurned2 : Actor
{
Default
{
Radius 12;
Height 16;
}
States
{
Spawn:
BSH1 C -1;
Stop;
}
}
class ID24BushTall : Actor
{
Default
{
Radius 12;
Height 16;
+SOLID
}
States
{
Spawn:
BSH2 A -1;
Stop;
}
}
class ID24BushTallBurned1 : Actor
{
Default
{
Radius 12;
Height 16;
}
States
{
Spawn:
BSH2 B -1;
Stop;
}
}
class ID24BushTallBurned2 : Actor
{
Default
{
Radius 12;
Height 16;
}
States
{
Spawn:
BSH2 C -1;
Stop;
}
}
class ID24CaveRockColumn : Actor
{
Default
{
Radius 24;
Height 16;
+SOLID
}
States
{
Spawn:
STMI A -1;
Stop;
}
}
class ID24CaveStalagmiteLarge : Actor
{
Default
{
Radius 16;
Height 16;
+SOLID
}
States
{
Spawn:
STG1 A -1;
Stop;
}
}
class ID24CaveStalagmiteMedium : Actor
{
Default
{
Radius 12;
Height 16;
+SOLID
}
States
{
Spawn:
STG2 A -1;
Stop;
}
}
class ID24CaveStalagmiteSmall : Actor
{
Default
{
Radius 8;
Height 16;
+SOLID
}
States
{
Spawn:
STG3 A -1;
Stop;
}
}
class ID24CaveStalactiteLarge : Actor
{
Default
{
Radius 16;
Height 112;
+SPAWNCEILING
+NOGRAVITY
}
States
{
Spawn:
STC1 A -1;
Stop;
}
}
class ID24CaveStalactiteLargeSolid : ID24CaveStalactiteLarge
{
Default
{
+SOLID
}
}
class ID24CaveStalactiteMedium : Actor
{
Default
{
Radius 12;
Height 64;
+SPAWNCEILING
+NOGRAVITY
}
States
{
Spawn:
STC2 A -1;
Stop;
}
}
class ID24CaveStalactiteMediumSolid : ID24CaveStalactiteMedium
{
Default
{
+SOLID
}
}
class ID24CaveStalactiteSmall : Actor
{
Default
{
Radius 8;
Height 32;
+SPAWNCEILING
+NOGRAVITY
}
States
{
Spawn:
STC3 A -1;
Stop;
}
}
class ID24CaveStalactiteSmallSolid : ID24CaveStalactiteSmall
{
Default
{
+SOLID
}
}

View file

@ -0,0 +1,128 @@
/*****************************************************************************
* Copyright (C) 1993-2024 id Software LLC, a ZeniMax Media company.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
****************************************************************************/
/*****************************************************************************
* id1 - decohack - former shocktrooper (a.k.a. "plasma guy" or "plasmadick")
****************************************************************************/
//converted from DECOHACK
class ID24PlasmaGuy : Actor
{
Default
{
Health 100;
Speed 10;
Radius 20;
Height 56;
ReactionTime 8;
PainChance 30;
Mass 100;
Monster;
PainSound "monsters/plasmaguy/pain";
DeathSound "monsters/plasmaguy/death";
ActiveSound "monsters/plasmaguy/active";
Tag "$FN_ID24PLASMAGUY";
}
States
{
Spawn:
PPOS AB 10 A_Look;
Loop;
See:
PPOS AABBCCDD 2 Fast A_Chase;
Loop;
Missile:
PPOS E 10 A_FaceTarget;
PPOS F 2 Fast MBF21_MonsterProjectile("PlasmaBall", 0.0, 0.0, 0.0, 0.0);
PPOS E 4 Fast;
PPOS F 2 Fast MBF21_MonsterProjectile("PlasmaBall", 0.0, 0.0, 0.0, 0.0);
PPOS E 4 Fast;
PPOS F 2 Fast MBF21_MonsterProjectile("PlasmaBall", 0.0, 0.0, 0.0, 0.0);
PPOS E 4 Fast;
Goto See;
Pain:
PPOS G 5 Fast;
PPOS G 5 Fast A_Pain;
Goto See;
Death:
PPOS H 0 A_FaceTarget;
PPOS H 5 MBF21_SpawnObject("ID24PlasmaGuyHead", 175.0, 0.0, 0.0, 40.0, 2.0, 0.0, 1.5);
PPOS I 5 A_Scream;
PPOS J 5 A_Fall;
PPOS KL 5;
PPOS M -1;
Stop;
XDeath:
PPOS N 5;
PPOS O 5 A_XScream;
PPOS P 5 A_Fall;
PPOS Q 0 A_FaceTarget;
PPOS Q 5 MBF21_SpawnObject("ID24PlasmaGuyTorso", 170.0, 0.0, -8.0, 32.0, 4.0, 0.0, 2.0);
PPOS RST 5;
PPOS U -1;
Stop;
Raise:
PPOS MLKJIH 5;
Goto See;
}
}
class ID24PlasmaGuyHead : Actor
{
Default
{
Damage 0;
Speed 8;
Radius 6;
Height 16;
Gravity 0.125;
+MISSILE
+DROPOFF
DeathSound "monsters/plasmaguy/head";
}
States
{
Spawn:
PHED ABCDEFGHI 3;
Loop;
Death:
PHED J -1;
Loop;
}
}
class ID24PlasmaGuyTorso : Actor
{
Default
{
Damage 0;
Speed 8;
Radius 6;
Height 16;
+NOBLOCKMAP
+MISSILE
+DROPOFF
}
States
{
Spawn:
PPOS V -1;
Loop;
Death:
PPOS W 5;
PPOS X -1;
Stop;
}
}

View file

@ -0,0 +1,101 @@
/*****************************************************************************
* Copyright (C) 1993-2024 id Software LLC, a ZeniMax Media company.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
****************************************************************************/
/*****************************************************************************
* id1 - decohack - tech
****************************************************************************/
//converted from DECOHACK
class ID24OfficeChair : Actor
{
Default
{
Radius 12;
Height 16;
+SOLID
}
States
{
Spawn:
CHR1 A -1;
Stop;
}
}
class ID24OfficeLamp : Actor
{
Default
{
Radius 12;
Height 52;
Health 20;
Mass 65536;
DeathSound "world/officelamp";
+SOLID
+SHOOTABLE
+NOBLOOD
+DONTGIB
+NOICEDEATH
}
States
{
Spawn:
LAMP A -1 BRIGHT;
Stop;
Death:
LAMP B 3 BRIGHT A_Scream;
LAMP B 3 BRIGHT A_Fall;
DeathLoop:
LAMP CD 5 BRIGHT;
Loop;
}
}
// this actor has an editor number in the decohack,
// but it doesn't actually exist in it
class ID24LiveWire : Actor { }
class ID24CeilingLamp : Actor
{
Default
{
Radius 12;
Height 32;
+SPAWNCEILING
+NOGRAVITY
}
States
{
Spawn:
TLP6 A -1 BRIGHT;
Stop;
}
}
class ID24CandelabraShort : Actor
{
Default
{
Radius 16;
Height 16;
+SOLID
}
States
{
Spawn:
CBR2 A -1 BRIGHT;
Stop;
}
}

View file

@ -0,0 +1,98 @@
/*****************************************************************************
* Copyright (C) 1993-2024 id Software LLC, a ZeniMax Media company.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
****************************************************************************/
/*****************************************************************************
* id1 - decohack - tyrant
****************************************************************************/
//converted from DECOHACK
class ID24Tyrant : Cyberdemon
{
Default
{
Health 1000;
ProjectileGroup 2;
SplashGroup 2;
Monster;
+BOSS
SeeSound "monsters/tyrant/sight";
PainSound "monsters/tyrant/pain";
DeathSound "monsters/tyrant/death";
ActiveSound "monsters/tyrant/active";
Tag "$FN_ID24TYRANT";
}
States
{
Spawn:
CYB2 AB 10 A_Look;
Loop;
See:
CYB2 A 3 A_Hoof;
CYB2 ABBCC 3 A_Chase;
CYB2 D 0 A_StartSound("monsters/tyrant/walk");
CYB2 DD 3 A_Chase;
Loop;
Missile:
CYB2 E 6 A_FaceTarget;
CYB2 F 12 BRIGHT A_CyberAttack;
CYB2 E 12 A_FaceTarget;
CYB2 F 12 BRIGHT A_CyberAttack;
CYB2 E 12 A_FaceTarget;
CYB2 F 12 BRIGHT A_CyberAttack;
Goto See;
Pain:
CYB2 G 10 A_Pain;
goto See;
Death:
CYB2 H 10;
CYB2 I 10 A_Scream;
CYB2 JKL 10;
CYB2 M 10 A_Fall;
CYB2 NO 10;
CYB2 P 30;
CYB2 P -1 A_BossDeath;
Stop;
}
}
// "boss" variants -- these are simply alternative
// actors for use with UMAPINFO's "bossaction"
// field to make the final map's staged fights
// work nicely. they're functionally identical
// to the main actor in every other way.
// [XA] well, now they also have a 60-second respawn
// minimum instead of the default 12, so Nightmare
// sucks a bit less ;)
// (this id24 feature isn't implemented yet!)
class ID24TyrantBoss1 : ID24Tyrant
{
Default
{
// RespawnTics 2100;
// RespawnDice 64;
}
}
class ID24TyrantBoss2 : ID24Tyrant
{
Default
{
// RespawnTics 2100;
// RespawnDice 64;
}
}

View file

@ -0,0 +1,145 @@
/*****************************************************************************
* Copyright (C) 1993-2024 id Software LLC, a ZeniMax Media company.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
****************************************************************************/
/*****************************************************************************
* id1 - decohack - vassago
****************************************************************************/
//converted from DECOHACK
class ID24Vassago : Actor
{
Default
{
Health 1000;
Speed 8;
Radius 24;
Height 64;
ReactionTime 8;
PainChance 100;
Mass 1000;
SplashGroup 1;
Monster;
SeeSound "monsters/vassago/sight";
PainSound "monsters/vassago/pain";
DeathSound "monsters/vassago/death";
ActiveSound "monsters/vassago/active";
Tag "$FN_ID24VASSAGO";
}
States
{
Spawn:
VASS AB 10 A_Look;
Loop;
See:
VASS AABBCCDD 3 A_Chase;
Loop;
Melee:
Missile:
VASS E 0 BRIGHT A_StartSound("monsters/vassago/attack");
VASS E 8 BRIGHT A_FaceTarget;
VASS FG 4 BRIGHT A_FaceTarget;
VASS H 8 BRIGHT MBF21_MonsterProjectile("ID24VassagoFlame", 0.0, 0.0, 0.0, 0.0);
Goto See;
Pain:
VASS I 2;
VASS I 2 A_Pain;
Goto See;
Death:
VASS J 8 BRIGHT;
VASS K 8 BRIGHT A_Scream;
VASS L 7 BRIGHT;
VASS M 6 BRIGHT A_Fall;
VASS NO 6 BRIGHT;
VASS P 7 BRIGHT;
VASS Q -1 A_BossDeath;
Stop;
Raise:
VASS P 8;
VASS ONMLKJ 8;
Goto See;
}
}
class ID24VassagoFlame : Actor
{
Default
{
Damage 5;
Speed 15;
FastSpeed 20;
SplashGroup 1;
Radius 6;
Height 16;
Projectile;
+ZDOOMTRANS
RenderStyle "Add";
SeeSound "monsters/vassago/burn";
DeathSound "monsters/vassago/shotx";
}
States
{
Spawn:
VFLM AB 4 BRIGHT;
Loop;
Death:
VFLM C 0 BRIGHT { bNoGravity = false; }
VFLM C 0 BRIGHT A_ChangeLinkFlags(0, 0);
VFLM C 0 BRIGHT A_Jump(128, "DeathSound2");
VFLM C 0 BRIGHT A_StartSound("monsters/vassago/hot1");
goto Burninate;
DeathSound2:
VFLM C 0 BRIGHT A_StartSound("monsters/vassago/hot2");
Goto Burninate;
Burninate:
VFLM C 4 BRIGHT A_RadiusDamage(10, 128);
VFLM D 4 BRIGHT;
VFLM E 4 BRIGHT;
VFLM F 0 BRIGHT A_StartSound("monsters/vassago/hot3");
VFLM F 4 BRIGHT A_RadiusDamage(10, 128);
VFLM G 4 BRIGHT;
VFLM H 4 BRIGHT;
VFLM F 0 BRIGHT A_StartSound("monsters/vassago/hot2");
VFLM F 4 BRIGHT A_RadiusDamage(10, 128);
VFLM G 4 BRIGHT;
VFLM H 4 BRIGHT;
VFLM F 0 BRIGHT A_StartSound("monsters/vassago/hot3");
VFLM F 4 BRIGHT A_RadiusDamage(10, 128);
VFLM G 4 BRIGHT;
VFLM H 4 BRIGHT;
VFLM F 0 BRIGHT A_StartSound("monsters/vassago/hot1");
VFLM F 4 BRIGHT A_RadiusDamage(10, 128);
VFLM G 4 BRIGHT;
VFLM H 4 BRIGHT;
VFLM F 0 BRIGHT A_StartSound("monsters/vassago/hot2");
VFLM F 4 BRIGHT A_RadiusDamage(10, 128);
VFLM G 4 BRIGHT;
VFLM H 4 BRIGHT;
VFLM F 0 BRIGHT A_StartSound("monsters/vassago/hot1");
VFLM F 4 BRIGHT A_RadiusDamage(10, 128);
VFLM G 4 BRIGHT;
VFLM H 4 BRIGHT;
VFLM F 0 BRIGHT A_StartSound("monsters/vassago/hot2");
VFLM F 4 BRIGHT A_RadiusDamage(10, 128);
VFLM G 4 BRIGHT;
VFLM H 4 BRIGHT;
VFLM I 0 BRIGHT A_StartSound("monsters/vassago/hot3");
VFLM I 4 BRIGHT A_RadiusDamage(10, 128);
VFLM J 4 BRIGHT;
VFLM K 4 BRIGHT;
VFLM L 4 BRIGHT A_RadiusDamage(10, 128);
VFLM MNOPQ 4 BRIGHT;
Stop;
}
}