Classes:FireBall

From ECWolf Wiki
Revision as of 05:25, 11 June 2013 by Blzut3 (talk | contribs) (→‎DECORATE Definition)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Note: Wait! Stop! Before you copy this actor's definition into your mod, remember the following things:
  1. You do not need to copy that actor, since it is already defined.
  2. In fact, it's not just useless, it's actually harmful as it can cause problems.
  3. If you want to modify it, or use a modified version, using inheritance is the way to go.
  4. The actor definitions here are put on the wiki for reference purpose only. Learn from them, don't copy them.
  5. There is only one exception: if what you want is changing Ammo capacity, you need to create a new type from Ammo.
Fire Ball
Actor type Explosive Game MiniWolf3DLogoIcon.png
DoomEd Number None Class Name FireBall


Classes: ActorFireBall

Overview

The fake Hitler flamethrower fireball.

Adaptive speed bug

In the original version of the game this actor was glitched by only performing the movement during the state change. This resulted in the fireball moving up to 6 times slower than it was supposed to. This bug would not have been easily noticed by the developers at the time since computers weren't capable of reaching a high enough frame rate for it to make a significant difference. (The original game accounted for dropped frames in the movement function.)

ECWolf fixes this bug by restoring the intended speed since keeping the original behavior would result in non-deterministic behavior (critical for network/demo sync) or render the game much easier than intended. It is, however, easily possible to set the speed to whatever the user prefers by loading a decorate file with the following contents:

actor SlowFireball : FireBall replaces FireBall
{
  // Set this to some value between 1.5 to 9 at your preference
  Speed 1.5
}

DECORATE Definition

actor FireBall
{
  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
  }
}