Wolfenstein 3D Wiki
Advertisement

Projectiles are damaging actors which are launched as an attack. In the Wolfenstein 3D family of games there are some enemies, usually bosses, who attack with visible projectiles instead of bullets or melee attacks. In the Mac family of games the player can also obtain weapons which fire projectiles.

Projectiles[]

Syringe[]

Sprite0426 copy

The thrown syringe full of mutant serum.

The syringe, or needle, is a projectile thrown exclusively by Doctor Schabbs, the boss of the second episode. It deals massive damage and moves at an astounding speed.

Because the syringe is full of Schabbs's mutant serum, the syringe has the unique ability of any enemy attack of giving the player an alternate death face on the HUD. Instead of the typical depiction of BJ's bloodied face, a death by syringe results in BJ's face turning grey and his expression grim, a sign that he has been converted into a mutant.

ECWolf DECORATE Definition[]

actor Needle
{
    radius 11
    speed 16
    damage (random[MissileDamage](20, 51))
    seesound "schabbs/throw"
    PROJECTILE
    states
    {
        Spawn:
            HYPO A .5
        Loop:
            HYPO BCDA 3
            loop
        Death:
            // Keep the actor alive so our temporary damage type hack works consistantly
            TNT1 A 1
            stop
    }
}

Fake Hitler Fire[]

Sprite0433 copy

A fireball from the Fake Hitler

The Fake Hitler's fire moves at roughly half the speed of the syringe or rocket and deals a medium amount of damage per hit. What makes this a far more devastating attack is that it is often delivered in volleys of 8 in a row, creating a stream of inferno which can quickly kill the player if they aren't careful.

Due to a bug in how the original actor was coded, the fireball does not move according to the game's "thinker" timeline system but rather the action system. The result is that on faster systems the fireball moves at an incredibly slow speed (roughly 16% of its original speed) and bunches up when originally fired. This can be seen as a blessing or a curse, as it means that the fireballs are much easier to dodge, but also linger much longer in more compressed and damaging form.

This is the only projectile in the Wolfenstein 3D family of games that is fired by an enemy that is not a unique boss.

ECWolf DECORATE Definition[]

actor FireBall
{
    // Due to a bug in the original code, the projectile movement was handled
    // by the action function instead of the thinker function.  Because of this
    // the speed of the fireball was framerate dependent.  On fast systems it
    // would slow down to 1.5.
    radius 11
    speed 9
    damage (random[MissileDamage](0, 31))
    seesound "fake/attack"
    PROJECTILE
    states
    {
        Spawn:
            // When spawning a new projectile Wolf3D set ticcount to 1 for first frame
            FIRE A .5 bright
        Loop:
            FIRE BA 3 bright
            loop
    }
}

Rocket[]

Rocket

A rocket and its trail

Rocket le

Mission Packs rocket and trail

The rocket is the only projectile in the Wolfenstein 3D family of games shared by multiple bosses and games.

The rocket first appears as the method of attack for Otto Giftmacher at the end of Episode 4. It later appears again as one of two attacks used by General Fettgesicht in the final level of Episode 6. In Spear of Destiny it is one of two attacks used by Barnacle Wilhelm and a version of it whose sprites are raised higher toward the ceiling is used in devastating volleys by The Death Knight; respectively, this is mimicked (with new sprites) by Professor Quarkblitz and The Robot in The Spear Mission Packs.

The behavior of the rocket is very similar to the syringe: they travel the same speed and the rocket only deals slightly higher damage (roughly 119% of the syringe damage). Despite featuring an explosion animation on detonation, the rocket does not deal splash damage.

The smoke trail is an additional actor which animates for four frames before destroying itself, being created every one and a half step by the rocket.

LqCxroF

An example of the rocket glitch captured by AryanWolf3d. The squares marked "9421" are supposed to denote a rocket exists there, but the rocket has already passed through these areas.

The Death Knight's and Robot's rockets have different sprites from the normal robots, but they are just the same sprites as Barnacle Wilhelm's and Professor Quarkblitz's rockets, respectively, raised several pixels to match the positioning of their launchers. Behaviorally, their rockets are identical to any other rockets ingame.

The rockets in The Spear Mission Packs are sometimes referred to as "chemical rockets" due to their turquoise payload and colorful smoke trail and explosion, as well as their use as experimental weapons in the Nazi laboratories in the Mission Packs' lore.

There is a glitch caused by rockets marking their position on the map but not unmarking them when they leave said position.  One effect of this bug is that when a rocket passes through a door the door will no longer be able to close.

ECWolf DECORATE Definitions[]

Otto/Fatface/Wilhelm Rocket:

actor Rocket
{
    // Note: Wolfenstein 3D defines the projectile size twice.
    // When doing collisions against walls it uses a radius of 8
    // When doing collisions against the player the delta needs to be within 48
    // So what to do?  I say we just copy Doom's radius for now.
    radius 11
    speed 16
    damage (random[MissileDamage](30, 61)) // random(0, 31) + 30
    seesound "missile/fire"
    deathsound "missile/hit"
    PROJECTILE
    states
    {
        Spawn:
            ROCK A 1.5 bright A_SpawnItem("Smoke")
            loop
        Death:
            BOOM ABC 3 bright
            stop
    }
}

actor Smoke
{
    states
    {
        Spawn:
            SMOK ABCD 1.5
            stop
    }
}

Quarkblitz Rocket:

actor ChemicalRocket : Rocket
{
    states
    {
        Spawn:
            CRCK A 1.5 bright A_SpawnItem("ChemicalSmoke")
            loop
        Death:
            CBOM ABC 3 bright
            stop
    }
}

actor ChemicalSmoke : Smoke
{
    states
    {
        Spawn:
            CSMK ABCD 1.5
            stop
    }
}

Death Knight Rocket:

actor HighRocket
{
    radius 11
    speed 16
    damage (random[MissileDamage](30, 61))
    seesound "knight/missile"
    deathsound "missile/hit"
    PROJECTILE
    states
    {
        Spawn:
            HRCK A 1.5 bright A_SpawnItem("HighSmoke")
            loop
        Death:
            HBOM ABC 3 bright
            stop
    }
}

actor HighSmoke
{
    states
    {
        Spawn:
            HSMK ABCD 3
            stop
    }
}

Robot Rocket:

actor HighChemicalRocket : HighRocket
{
    states
    {
        Spawn:
            CHRK A 1.5 bright A_SpawnItem("HighChemicalSmoke")
            loop
        Death:
            CHBM ABC 3 bright
            stop
    }
}

actor HighChemicalSmoke : HighSmoke
{
    states
    {
        Spawn:
            CHSM ABCD 3
            stop
    }
}

Energy Ball[]

Sprite0457 copy

The Angel of Death's energy ball

Sprite0457 copy le

The Devil Incarnate's energy ball

The energy ball (or spark, plasma ball) is the projectile used by the Angel of Death in Spear of Destiny and by the Devil Incarnate in the Mission Packs. The Angel of Death's energy ball is a green orb housing sparkling electrical current surrounded by a glowing green halo, while the Devil Incarnate's energy ball is a bright gaseous orb which cycles between being magenta, green, turquoise, and blue.

The energy ball travels at the same speed as a rocket or syringe and deals roughly 102% of the damage a rocket deals. It is usually lobbed by its attacker 1-3 in a row.

Compared to other projectiles, the sprite for the energy ball is a little off-center (several pixels to the left), which may cause the player to overshoot or undershoot dodging it.

ECWolf DECORATE Definitions[]

Angel of Death Energy Ball

actor Spark
{
    speed 16
    damage (random[MissileDamage](30, 62))
    seesound "angel/attack"
    PROJECTILE
    states
    {
        Spawn:
            SPRK A .5 bright
        Loop:
            SPRK BCDA 3 bright
            loop
    }
}

Death Incarnate Energy Ball

actor EnergyBall : Spark
{
    seesound "devil/attack"
    states
    {
        Spawn:
            EBAL A .5 bright
        Loop:
            EBAL BCDA 3 bright
            loop
    }
}
Advertisement