Skip to content

Commit

Permalink
add fuel/calamity blade/incinerator from id24
Browse files Browse the repository at this point in the history
  • Loading branch information
RicardoLuis0 committed Jan 13, 2025
1 parent 09266ca commit 92e76d9
Show file tree
Hide file tree
Showing 8 changed files with 416 additions and 2 deletions.
14 changes: 14 additions & 0 deletions wadsrc/static/filter/game-doomchex/sndinfo.txt
Original file line number Diff line number Diff line change
Expand Up @@ -456,3 +456,17 @@ $alias intermission/nextstage weapons/rocklx
$alias intermission/paststats weapons/shotgr
$alias intermission/pastcoopstats weapons/shotgr
$alias intermission/pastdmstats *gibbed


// id24 sounds

weapons/incinerator/fire1 DSINCFI1
weapons/incinerator/fire2 DSINCFI2
weapons/incinerator/burn DSINCBRN
weapons/incinerator/hot1 DSINCHT1
weapons/incinerator/hot2 DSINCHT2
weapons/incinerator/hot3 DSINCHT3

weapons/calamityblade/charge DSHETCHG
weapons/calamityblade/shoot DSHETSHT
weapons/calamityblade/explode DSHETXPL
4 changes: 4 additions & 0 deletions wadsrc/static/mapinfo/doomitems.txt
Original file line number Diff line number Diff line change
Expand Up @@ -149,4 +149,8 @@ DoomEdNums
9109 = MarinePlasma
9110 = MarineRailgun
9111 = MarineBFG
-28622 = ID24Fuel
-28621 = ID24FuelTank
-28620 = ID24CalamityBlade
-28619 = ID24Incinerator
}
4 changes: 4 additions & 0 deletions wadsrc/static/zscript.txt
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,10 @@ version "4.12"
#include "zscript/actors/doom/weaponbfg.zs"
#include "zscript/actors/doom/dehacked.zs"

#include "zscript/actors/doom/id24/id24ammo.zs"
#include "zscript/actors/doom/id24/id24incinerator.zs"
#include "zscript/actors/doom/id24/id24calamityblade.zs"

#include "zscript/actors/doom/deadthings.zs"
#include "zscript/actors/doom/doomammo.zs"
#include "zscript/actors/doom/doomarmor.zs"
Expand Down
4 changes: 2 additions & 2 deletions wadsrc/static/zscript/actors/doom/doomplayer.zs
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ class DoomPlayer : PlayerPawn
Player.WeaponSlot 3, "Shotgun", "SuperShotgun";
Player.WeaponSlot 4, "Chaingun";
Player.WeaponSlot 5, "RocketLauncher";
Player.WeaponSlot 6, "PlasmaRifle";
Player.WeaponSlot 7, "BFG9000";
Player.WeaponSlot 6, "ID24Incinerator", "PlasmaRifle";
Player.WeaponSlot 7, "ID24CalamityBlade", "BFG9000";

Player.ColorRange 112, 127;
Player.Colorset 0, "$TXT_COLOR_GREEN", 0x70, 0x7F, 0x72;
Expand Down
57 changes: 57 additions & 0 deletions wadsrc/static/zscript/actors/doom/id24/id24ammo.zs
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
/*****************************************************************************
* 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 - ammo
****************************************************************************/

//converted from DECOHACK and from id24data.cpp

class ID24Fuel : Ammo
{
Default
{
Inventory.PickupMessage "$ID24_GOTFUELCAN";
Inventory.Amount 10;
Inventory.MaxAmount 150;
Ammo.BackpackAmount 10;
Ammo.BackpackMaxAmount 300;
Inventory.Icon "FTNKA0";
Tag "$AMMO_ID24FUEL";
}
States
{
Spawn:
FCPU A -1;
Stop;
}
}

class ID24FuelTank : ID24Fuel
{
Default
{
Inventory.PickupMessage "$ID24_GOTFUELTANK";
Inventory.Amount 50;
Ammo.DropAmmoFactorMultiplier 0.8; // tank has 20 drop amount, not 25, so multiply the factor by a further 0.8
// -- for custom dehacked ammo this can be calculated based on the drop amount and the default factor
Tag "$AMMO_ID24FUELTANK";
}
States
{
Spawn:
FTNK A -1;
Stop;
}
}
213 changes: 213 additions & 0 deletions wadsrc/static/zscript/actors/doom/id24/id24calamityblade.zs
Original file line number Diff line number Diff line change
@@ -0,0 +1,213 @@
/*****************************************************************************
* 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 - heatwave generator
****************************************************************************/

class ID24CalamityBlade : DoomWeapon // Heatwave Generator
{
Default
{
Weapon.SelectionOrder 1000;
Weapon.AmmoUse 10;
Weapon.AmmoGive 40;
Weapon.AmmoType "ID24Fuel";
Inventory.PickupMessage "$ID24_GOTCALAMITYBLADE";
Tag "$TAG_ID24CALAMITYBLADE";
}

action void A_CheckAmmo(StateLabel st, int amount)
{
MBF21_CheckAmmo(ResolveState(st), amount);
}

action void A_GunFlashTo(StateLabel st, int dontchangeplayer)
{
MBF21_GunFlashTo(ResolveState(st), dontchangeplayer);
}

action void A_RefireTo(StateLabel st, int skipcheck)
{
MBF21_RefireTo(ResolveState(st), skipcheck);
}

States
{
Spawn:
CBLD A -1;
Stop;
Ready:
HETG A 1 A_WeaponReady;
Loop;
Deselect:
HETG A 1 A_Lower;
Loop;
Select:
HETG A 1 A_Raise;
Loop;
Fire:
Hold0:
HETG A 0 MBF21_ConsumeAmmo(0);
HETG A 0 A_GunFlashTo("Hold0Flash", 1);
HETG A 20 A_StartSound("weapons/calamityblade/charge", CHAN_WEAPON);
HETG A 0 A_CheckAmmo("Hold0FireProjectiles", 0);
HETG A 0 A_RefireTo("Hold1", 0);
Goto Hold0FireProjectiles;
Hold1:
HETG A 0 MBF21_ConsumeAmmo(0);
HETG A 0 A_GunFlashTo("Hold1Flash", 1);
HETG A 20 A_StartSound("weapons/calamityblade/charge", CHAN_WEAPON);
HETG A 0 A_CheckAmmo("Hold1FireProjectiles", 0);
HETG A 0 A_RefireTo("Hold2", 0);
Goto Hold1FireProjectiles;
Hold2:
HETG A 0 MBF21_ConsumeAmmo(0);
HETG A 0 A_GunFlashTo("Hold2Flash", 1);
HETG A 20 A_StartSound("weapons/calamityblade/charge", CHAN_WEAPON);
HETG A 0 A_CheckAmmo("Hold2FireProjectiles", 0);
HETG A 0 A_RefireTo("Hold3", 0);
Goto Hold2FireProjectiles;
Hold3:
HETG A 0 MBF21_ConsumeAmmo(0);
HETG A 0 A_GunFlashTo("Hold3Flash", 1);
HETG A 20 A_StartSound("weapons/calamityblade/charge", CHAN_WEAPON);
HETG A 0 A_CheckAmmo("Hold3FireProjectiles", 0);
HETG A 0 A_RefireTo("Hold4", 0);
Goto Hold3FireProjectiles;
Hold4:
HETG A 0 MBF21_ConsumeAmmo(0);
HETG A 0 A_GunFlashTo("Hold4Flash", 1);
HETG A 20 A_StartSound("weapons/calamityblade/charge", CHAN_WEAPON);
Goto Hold4FireProjectiles;
Hold4FireProjectiles:
HETF A 0 BRIGHT MBF21_WeaponProjectile("ID24IncineratorProjectile", -35, 0, 0, 0);
HETF A 0 BRIGHT MBF21_WeaponProjectile("ID24IncineratorProjectile", -30, 0, 0, 0);
HETF A 0 BRIGHT MBF21_WeaponProjectile("ID24IncineratorProjectile", -25, 0, 0, 0);
HETF A 0 BRIGHT MBF21_WeaponProjectile("ID24IncineratorProjectile", -20, 0, 0, 0);
HETF A 0 BRIGHT MBF21_WeaponProjectile("ID24IncineratorProjectile", -15, 0, 0, 0);
HETF A 0 BRIGHT MBF21_WeaponProjectile("ID24IncineratorProjectile", -10, 0, 0, 0);
HETF A 0 BRIGHT MBF21_WeaponProjectile("ID24IncineratorProjectile", -5, 0, 0, 0);
HETF A 0 BRIGHT MBF21_WeaponProjectile("ID24IncineratorProjectile", 0, 0, 0, 0);
HETF A 0 BRIGHT MBF21_WeaponProjectile("ID24IncineratorProjectile", 5, 0, 0, 0);
HETF A 0 BRIGHT MBF21_WeaponProjectile("ID24IncineratorProjectile", 10, 0, 0, 0);
HETF A 0 BRIGHT MBF21_WeaponProjectile("ID24IncineratorProjectile", 15, 0, 0, 0);
HETF A 0 BRIGHT MBF21_WeaponProjectile("ID24IncineratorProjectile", 20, 0, 0, 0);
HETF A 0 BRIGHT MBF21_WeaponProjectile("ID24IncineratorProjectile", 25, 0, 0, 0);
HETF A 0 BRIGHT MBF21_WeaponProjectile("ID24IncineratorProjectile", 30, 0, 0, 0);
HETF A 0 BRIGHT MBF21_WeaponProjectile("ID24IncineratorProjectile", 35, 0, 0, 0);
Goto FireAnim;
Hold3FireProjectiles:
HETF A 0 BRIGHT MBF21_WeaponProjectile("ID24IncineratorProjectile", -27.5, 0, 0, 0);
HETF A 0 BRIGHT MBF21_WeaponProjectile("ID24IncineratorProjectile", -22.5, 0, 0, 0);
HETF A 0 BRIGHT MBF21_WeaponProjectile("ID24IncineratorProjectile", -17.5, 0, 0, 0);
HETF A 0 BRIGHT MBF21_WeaponProjectile("ID24IncineratorProjectile", -12.5, 0, 0, 0);
HETF A 0 BRIGHT MBF21_WeaponProjectile("ID24IncineratorProjectile", -7.5, 0, 0, 0);
HETF A 0 BRIGHT MBF21_WeaponProjectile("ID24IncineratorProjectile", -2.5, 0, 0, 0);
HETF A 0 BRIGHT MBF21_WeaponProjectile("ID24IncineratorProjectile", 2.5, 0, 0, 0);
HETF A 0 BRIGHT MBF21_WeaponProjectile("ID24IncineratorProjectile", 7.5, 0, 0, 0);
HETF A 0 BRIGHT MBF21_WeaponProjectile("ID24IncineratorProjectile", 12.5, 0, 0, 0);
HETF A 0 BRIGHT MBF21_WeaponProjectile("ID24IncineratorProjectile", 17.5, 0, 0, 0);
HETF A 0 BRIGHT MBF21_WeaponProjectile("ID24IncineratorProjectile", 22.5, 0, 0, 0);
HETF A 0 BRIGHT MBF21_WeaponProjectile("ID24IncineratorProjectile", 27.5, 0, 0, 0);
Goto FireAnim;
Hold2FireProjectiles:
HETF A 0 BRIGHT MBF21_WeaponProjectile("ID24IncineratorProjectile", -20, 0, 0, 0);
HETF A 0 BRIGHT MBF21_WeaponProjectile("ID24IncineratorProjectile", -15, 0, 0, 0);
HETF A 0 BRIGHT MBF21_WeaponProjectile("ID24IncineratorProjectile", -10, 0, 0, 0);
HETF A 0 BRIGHT MBF21_WeaponProjectile("ID24IncineratorProjectile", -5, 0, 0, 0);
HETF A 0 BRIGHT MBF21_WeaponProjectile("ID24IncineratorProjectile", 0, 0, 0, 0);
HETF A 0 BRIGHT MBF21_WeaponProjectile("ID24IncineratorProjectile", 5, 0, 0, 0);
HETF A 0 BRIGHT MBF21_WeaponProjectile("ID24IncineratorProjectile", 10, 0, 0, 0);
HETF A 0 BRIGHT MBF21_WeaponProjectile("ID24IncineratorProjectile", 15, 0, 0, 0);
HETF A 0 BRIGHT MBF21_WeaponProjectile("ID24IncineratorProjectile", 20, 0, 0, 0);
Goto FireAnim;
Hold1FireProjectiles:
HETF A 0 BRIGHT MBF21_WeaponProjectile("ID24IncineratorProjectile", -12.5, 0, 0, 0);
HETF A 0 BRIGHT MBF21_WeaponProjectile("ID24IncineratorProjectile", -7.5, 0, 0, 0);
HETF A 0 BRIGHT MBF21_WeaponProjectile("ID24IncineratorProjectile", -2.5, 0, 0, 0);
HETF A 0 BRIGHT MBF21_WeaponProjectile("ID24IncineratorProjectile", 2.5, 0, 0, 0);
HETF A 0 BRIGHT MBF21_WeaponProjectile("ID24IncineratorProjectile", 7.5, 0, 0, 0);
HETF A 0 BRIGHT MBF21_WeaponProjectile("ID24IncineratorProjectile", 12.5, 0, 0, 0);
Goto FireAnim;
Hold0FireProjectiles:
HETF A 0 BRIGHT MBF21_WeaponProjectile("ID24IncineratorProjectile", -5, 0, 0, 0);
HETF A 0 BRIGHT MBF21_WeaponProjectile("ID24IncineratorProjectile", 0, 0, 0, 0);
HETF A 0 BRIGHT MBF21_WeaponProjectile("ID24IncineratorProjectile", 5, 0, 0, 0);
Goto FireAnim;
FireAnim:
HETF A 0 BRIGHT A_StartSound("weapons/calamityblade/shoot", CHAN_WEAPON);
HETF A 3 BRIGHT A_GunFlash;
HETF B 5 BRIGHT;
HETG D 4;
HETG C 4;
HETG B 4;
HETG A 0 A_ReFire;
Goto Ready;
Hold0Flash:
HETC A 6 BRIGHT;
HETC BCD 5 BRIGHT;
Goto LightDone;
Hold1Flash:
HETC E 6 BRIGHT;
HETC FGH 5 BRIGHT;
Goto LightDone;
Hold2Flash:
HETC I 6 BRIGHT;
HETC JKL 5 BRIGHT;
Goto LightDone;
Hold3Flash:
HETC M 6 BRIGHT;
HETC NOP 5 BRIGHT;
Goto LightDone;
Hold4Flash:
HETC Q 6 BRIGHT;
HETC RST 5 BRIGHT;
Goto LightDone;
Flash:
TNT1 A 3 A_Light1;
TNT1 A 5 A_Light2;
Goto LightDone;
}
}

class ID24IncineratorProjectile : Actor // Heatwave Ripper
{
Default
{
Damage 10;
Speed 20;
Radius 16;
Height 8;

+NOBLOCKMAP;
+NOGRAVITY;
+DROPOFF;
+MISSILE;
+ZDOOMTRANS;
+RIPPER;

DeathSound "weapons/calamityblade/explode";
}

States
{
Spawn:
HETB ABC 3 Bright;
Loop;
Death:
HETB DEFGHI 3 Bright;
Stop;
}
}
Loading

0 comments on commit 92e76d9

Please sign in to comment.