_________ __ __
/ _____// |_____________ _/ |______ ____ __ __ ______
\_____ \\ __\_ __ \__ \\ __\__ \ / ___\| | \/ ___/
/ \| | | | \// __ \| | / __ \_/ /_/ > | /\___ \
/_______ /|__| |__| (____ /__| (____ /\___ /|____//____ >
\/ \/ \//_____/ \/
______________________ ______________________
T H E W A R B E G I N S
Stratagus - A free fantasy real time strategy game engine
Base structure of missile-types. More...
#include <missile.h>
Public Member Functions | |
| int | Width () const |
| int | Height () const |
missile.cpp - The missiles. | |
| MissileType (const std::string &ident) | |
| ~MissileType () | |
| void | LoadMissileSprite () |
| load the graphics for a missile type More... | |
| void | Init () |
| void | DrawMissileType (int frame, const PixelPos &pos) const |
script_missile.cpp - The missile-type ccl functions. | |
| void | Load (lua_State *l) |
Public Attributes | |
| std::string | Ident |
| int | Transparency |
| missile name More... | |
| PixelSize | size |
| missile transparency More... | |
| int | DrawLevel |
| missile size in pixels More... | |
| int | SpriteFrames |
| Level to draw missile at. More... | |
| int | NumDirections |
| number of sprite frames in graphic More... | |
| int | ChangeVariable |
| number of directions missile can face More... | |
| int | ChangeAmount |
| variable to change More... | |
| bool | ChangeMax |
| how many to change More... | |
| SoundConfig | FiredSound |
| modify the max, if value will exceed it More... | |
| SoundConfig | ImpactSound |
| fired sound More... | |
| bool | CorrectSphashDamage |
| impact sound for this missile-type More... | |
| bool | Flip |
| restricts the radius damage depending on land, air, naval More... | |
| bool | CanHitOwner |
| flip image when facing left More... | |
| bool | FriendlyFire |
| missile can hit the owner More... | |
| bool | AlwaysFire |
| missile can't hit own units More... | |
| bool | Pierce |
| missile will always fire (even if target is dead) More... | |
| bool | PierceOnce |
| missile will hit every unit on his way More... | |
| bool | IgnoreWalls |
| pierce every target only once More... | |
| bool | KillFirstUnit |
| missile ignores Wall units on it's way More... | |
| int | Class |
| missile kills first unit blocking it's way More... | |
| int | NumBounces |
| missile class More... | |
| int | ParabolCoefficient |
| number of bounces More... | |
| int | StartDelay |
| parabol coefficient in parabolic missile More... | |
| int | Sleep |
| missile start delay More... | |
| int | Speed |
| missile sleep More... | |
| int | BlizzardSpeed |
| missile speed More... | |
| int | TTL |
| speed for blizzard shards More... | |
| int | ReduceFactor |
| missile time-to-live More... | |
| int | SmokePrecision |
| Multiplier for reduce or increase damage dealt to the next unit. More... | |
| int | MissileStopFlags |
| How frequently the smoke missile will generate itself. More... | |
| NumberDesc * | Damage |
| On which terrain types missile won't fly. More... | |
| int | Range |
| missile damage (used for non-direct missiles, e.g. impacts) More... | |
| int | SplashFactor |
| missile damage range More... | |
| std::vector< MissileConfig * > | Impact |
| missile splash divisor More... | |
| MissileConfig | Smoke |
| missile produces an impact More... | |
| LuaCallback * | ImpactParticle |
| trailing missile More... | |
| LuaCallback * | SmokeParticle |
| impact particle More... | |
| LuaCallback * | OnImpact |
| smoke particle More... | |
| CGraphic * | G |
| called when More... | |
Base structure of missile-types.
#include "missile.h"
This structure defines the base type information of all missiles. It contains all information that all missiles of the same type shares. The fields are filled from the configuration files.
The missile-type structure members:
Unique identifier of the missile-type, used to reference it in config files and during startup.
The Level/Order to draw the missile in, usually 0-255
MissileType::Width MissileType::Height
Size (width and height) of a frame in the image. All sprite frames of the missile-type must have the same size.
Total number of sprite frames in the graphic image.
Number of directions missile can face.
Set a missile transparency.
Sound of the missile, if fired.
Impact sound for this missile.
Can hit the unit that have fired the missile.
Can't hit the units of the same player, that has the missile fired.
Class of the missile-type, defines the basic effects of the missile. Look at the different class identifiers for more information (MissileClassNone, ...).
This is the number of bounces, and it is only valid with MissileClassBounce. The missile will hit this many times in a row.
Delay in game cycles after the missile generation, until the missile animation and effects starts. Delay denotes the number of display cycles to skip before drawing the first sprite frame and only happens once at start.
This are the number of game cycles to wait for the next animation or the sleeping between the animation steps. All animations steps use the same delay. 0 is the fastest and 255 the slowest animation.
The speed how fast the missile moves. 0 the missile didn't move, 1 is the slowest speed and 32 s the fastest supported speed. This is how many pixels the missiles moves with each animation step. The real use of this member depends on the MissileType::Class
Determines the range in which a projectile will deal its damage. A range of 0 will mean that the damage will be limited to the targeted unit only. So if you shot a missile at a unit, it would only damage that unit. A value of 1 only affects the field where the missile hits. A value of 2 would mean that the damage for that particular missile would be dealt for a range of 1 around the impact spot. All fields that aren't the center get only 1/SpashFactor of the damage. Fields 2 away get 1/(SplashFactor*2), and following...
Determines The Splash damage divisor, see Range
The config of the next (other) missile to generate, when this missile reached its end point or its life time is over. So it can be used to generate a chain of missiles.
The config of the next (other) missile to generate a trailing smoke. So it can be used to generate a chain of missiles.
MissileType::Sprite
Missile sprite image loaded from MissileType::File
File containing the image (sprite) graphics of the missile. The file can contain multiple sprite frames. The sprite frames for the different directions are placed in the row. The different animations steps are placed in the column. But the correct order depends on MissileType::Class. Missiles like fire have no directions, missiles like arrows have a direction.
|
explicit |
Constructor.
| MissileType::~MissileType | ( | ) |
Destructor.
Draw missile.
| frame | Animation frame |
| pos | Screen pixel position |
|
inline |
| void MissileType::Init | ( | ) |
Initialize missile type.
| void MissileType::Load | ( | lua_State * | l | ) |
| void MissileType::LoadMissileSprite | ( | ) |
load the graphics for a missile type
Damage calculation for missile.
Load the graphics for a missile type
|
inline |
| bool MissileType::AlwaysFire |
missile can't hit own units
| int MissileType::BlizzardSpeed |
missile speed
| bool MissileType::CanHitOwner |
flip image when facing left
| int MissileType::ChangeAmount |
variable to change
| bool MissileType::ChangeMax |
how many to change
| int MissileType::ChangeVariable |
number of directions missile can face
| int MissileType::Class |
missile kills first unit blocking it's way
| bool MissileType::CorrectSphashDamage |
impact sound for this missile-type
| NumberDesc* MissileType::Damage |
On which terrain types missile won't fly.
| int MissileType::DrawLevel |
missile size in pixels
| SoundConfig MissileType::FiredSound |
modify the max, if value will exceed it
| bool MissileType::Flip |
restricts the radius damage depending on land, air, naval
| bool MissileType::FriendlyFire |
missile can hit the owner
| CGraphic* MissileType::G |
called when
| std::string MissileType::Ident |
| bool MissileType::IgnoreWalls |
pierce every target only once
| std::vector<MissileConfig *> MissileType::Impact |
missile splash divisor
| LuaCallback* MissileType::ImpactParticle |
trailing missile
| SoundConfig MissileType::ImpactSound |
fired sound
| bool MissileType::KillFirstUnit |
missile ignores Wall units on it's way
| int MissileType::MissileStopFlags |
How frequently the smoke missile will generate itself.
| int MissileType::NumBounces |
missile class
| int MissileType::NumDirections |
number of sprite frames in graphic
| LuaCallback* MissileType::OnImpact |
smoke particle
| int MissileType::ParabolCoefficient |
number of bounces
| bool MissileType::Pierce |
missile will always fire (even if target is dead)
| bool MissileType::PierceOnce |
missile will hit every unit on his way
| int MissileType::Range |
missile damage (used for non-direct missiles, e.g. impacts)
| int MissileType::ReduceFactor |
missile time-to-live
| PixelSize MissileType::size |
missile transparency
| int MissileType::Sleep |
missile start delay
| MissileConfig MissileType::Smoke |
missile produces an impact
| LuaCallback* MissileType::SmokeParticle |
impact particle
| int MissileType::SmokePrecision |
Multiplier for reduce or increase damage dealt to the next unit.
| int MissileType::Speed |
missile sleep
| int MissileType::SplashFactor |
missile damage range
| int MissileType::SpriteFrames |
Level to draw missile at.
| int MissileType::StartDelay |
parabol coefficient in parabolic missile
| int MissileType::Transparency |
missile name
| int MissileType::TTL |
speed for blizzard shards
1.8.17
(C) Copyright 1998-2012 by The Stratagus Project under the GNU General Public License.