354 void Load(lua_State *l);
423 virtual void Action() = 0;
634 #endif // !__MISSILE_H__
Missile stays and plays it's animation several times.
Definition: missile.h:339
~MissileType()
Definition: missile.cpp:1344
bool MissileHandleBlocking(Missile &missile, const PixelPos &position)
Definition: missile.cpp:677
void SaveMissiles(CFile &file)
Save missiles.
Definition: missile.cpp:1282
LuaCallback * OnImpact
smoke particle
Definition: missile.h:402
MissileType * MissileBurningBuilding(int percent)
Get the burning building missile based on hp percent.
Definition: missile.cpp:1223
void InitMissileTypes()
Initialize missile-types.
Definition: missile.cpp:1316
int State
sprite frame counter
Definition: missile.h:439
SoundConfig ImpactSound
fired sound
Definition: missile.h:371
int Range
missile damage (used for non-direct missiles, e.g. impacts)
Definition: missile.h:396
const MissileType * Type
missile pixel destination
Definition: missile.h:437
int Damage
Units which are already pierced by this missile.
Definition: missile.h:449
static unsigned int Count
unique number for draw level.
Definition: missile.h:462
Definition: missile.h:490
virtual void Action()
Definition: missile_straightfly.cpp:45
MissileType * NewMissileTypeSlot(const std::string &ident)
allocate an empty missile-type slot
Definition: missile.cpp:136
PixelPos position
Missile source position.
Definition: missile.h:435
Missile wait on x,y until a non-air unit comes by, the explodes.
Definition: missile.h:333
virtual void Action()
Definition: missile_parabolic.cpp:120
Missile on the map.
Definition: missile.h:413
bool MissileInitMove(Missile &missile)
Definition: missile.cpp:635
CUnitPtr SourceUnit
delay to show up
Definition: missile.h:444
MissileType * Missile
HP percent.
Definition: missile.h:572
virtual void Action()
Definition: missile_tracer.cpp:121
bool Flip
restricts the radius damage depending on land, air, naval
Definition: missile.h:374
int Percent
Definition: missile.h:569
Definition: missile.h:566
Missile()
Definition: missile.cpp:147
PixelPos source
Definition: missile.h:434
int DestroyMissile
If this is 1 then the missile is invisible.
Definition: missile.h:453
void CleanMissiles()
Clean missiles.
Definition: missile.cpp:1383
Missile * MakeMissile(const MissileType &mtype, const PixelPos &startPos, const PixelPos &destPos)
create a missile
Definition: missile.cpp:256
Definition: missile.h:535
T y
Definition: vec2i.h:43
Missile surround x,y.
Definition: missile.h:335
PixelPos destination
missile pixel position
Definition: missile.h:436
virtual void Action()
Definition: missile_pointotpointwithhit.cpp:44
NumberDesc * Damage
On which terrain types missile won't fly.
Definition: missile.h:394
int SmokePrecision
Multiplier for reduce or increase damage dealt to the next unit.
Definition: missile.h:392
Definition: missile.h:530
virtual void Action()
Definition: missile_deathcoil.cpp:50
Missile appears at x,y, is whirlwind.
Definition: missile.h:334
bool NextMissileFrame(char sign, char longAnimation)
Definition: missile.cpp:1079
void MissileHandlePierce(Missile &missile, const Vec2i &pos)
Definition: missile.cpp:660
void NextMissileFrameCycle()
Definition: missile.cpp:1125
int SpriteFrame
missile-type pointer
Definition: missile.h:438
Definition: missileconfig.h:44
SoundConfig FiredSound
modify the max, if value will exceed it
Definition: missile.h:370
The big unit structure.
Definition: unit.h:119
Definition: missile.h:480
Missile does nothing.
Definition: missile.h:323
MissileConfig Smoke
missile produces an impact
Definition: missile.h:399
void MissileNewHeadingFromXY(const PixelPos &delta)
Definition: missile.cpp:605
bool Pierce
missile will always fire (even if target is dead)
Definition: missile.h:378
unsigned int Slot
missile is a local missile
Definition: missile.h:460
int Transparency
missile name
Definition: missile.h:361
void FindAndSortMissiles(const CViewport &vp, std::vector< Missile * > &table)
Definition: missile.cpp:571
int Class
missile kills first unit blocking it's way
Definition: missile.h:383
Definition: missile.h:510
int Speed
missile sleep
Definition: missile.h:388
CUnitPtr TargetUnit
unit that fires (could be killed)
Definition: missile.h:445
virtual void Action()
Definition: missile_none.cpp:43
static Missile * Init(const MissileType &mtype, const PixelPos &startPos, const PixelPos &destPos)
Definition: missile.cpp:172
unsigned Local
Total step.
Definition: missile.h:459
Missile * MakeLocalMissile(const MissileType &mtype, const PixelPos &startPos, const PixelPos &destPos)
create a local missile
Definition: missile.cpp:273
bool KillFirstUnit
missile ignores Wall units on it's way
Definition: missile.h:381
int ParabolCoefficient
number of bounces
Definition: missile.h:385
Missile flies from x,y to x1,y1 than shows hit animation.
Definition: missile.h:325
Definition: unitsound.h:54
std::vector< MissileConfig * > Impact
missile splash divisor
Definition: missile.h:398
bool PointToPointMissile(Missile &missile)
Definition: missile.cpp:741
int NumDirections
number of sprite frames in graphic
Definition: missile.h:365
Definition: missile.h:541
int ChangeAmount
variable to change
Definition: missile.h:367
Missile seeks towards to target unit.
Definition: missile.h:337
Missile remains clipped to target's current goal and plays his animation once.
Definition: missile.h:338
virtual void Action()
Definition: missile_pointtopointbounce.cpp:45
LuaCallback * ImpactParticle
trailing missile
Definition: missile.h:400
std::string Ident
Definition: missile.h:360
Missile flies from x,y to x1,y1 using a parabolic path.
Definition: missile.h:332
bool AlwaysFire
missile can't hit own units
Definition: missile.h:377
Definition: viewport.h:63
virtual void Action()
Definition: missile_landmine.cpp:66
int MissileStopFlags
How frequently the smoke missile will generate itself.
Definition: missile.h:393
bool CanHitOwner
flip image when facing left
Definition: missile.h:375
int NumBounces
missile class
Definition: missile.h:384
virtual void Action()
Definition: missile_continuous.cpp:43
int SplashFactor
missile damage range
Definition: missile.h:397
int Width() const
Definition: missile.h:356
virtual void Action()
Definition: missile_pointtopointcycleonce.cpp:43
int AnimWait
state
Definition: missile.h:440
bool ChangeMax
how many to change
Definition: missile.h:368
void LoadMissileSprites()
load all missile sprites
Definition: missile.cpp:102
int ChangeVariable
number of directions missile can face
Definition: missile.h:366
virtual void Action()
Definition: missile_flameshield.cpp:47
int Wait
Animation wait.
Definition: missile.h:441
Definition: missile.h:547
int Delay
delay between frames
Definition: missile.h:442
void MissileCclRegister()
Burning building frames.
Definition: script_missile.cpp:423
void FireMissile(CUnit &unit, CUnit *goal, const Vec2i &goalPos)
fire a missile
Definition: missile.cpp:347
void FreeBurningBuildingFrames()
Definition: missile.cpp:1397
int Hidden
time to live (ticks) used for spells
Definition: missile.h:452
bool PierceOnce
missile will hit every unit on his way
Definition: missile.h:379
int TTL
speed for blizzard shards
Definition: missile.h:390
void MissileHit(CUnit *unit=NULL)
Definition: missile.cpp:907
int ViewPointDistanceToMissile(const Missile &missile)
distance from view point to missile
Definition: missile.cpp:1208
int ReduceFactor
missile time-to-live
Definition: missile.h:391
void SaveMissile(CFile &file) const
Definition: missile.cpp:1248
void DrawMissile(const CViewport &vp) const
Definition: missile.cpp:530
virtual void Action()
Definition: missile_cycleonce.cpp:44
bool FriendlyFire
missile can hit the owner
Definition: missile.h:376
int SpriteFrames
Level to draw missile at.
Definition: missile.h:364
int Sleep
missile start delay
Definition: missile.h:387
std::vector< CUnit * > PiercedUnits
target unit, used for spells
Definition: missile.h:447
T x
Definition: vec2i.h:42
void MissileActions()
handle all missiles
Definition: missile.cpp:1195
void InitMissiles()
Initialize missiles.
Definition: missile.cpp:1368
int CurrentStep
this tells missile-class-straight-fly, that it's time to die
Definition: missile.h:456
int StartDelay
parabol coefficient in parabolic missile
Definition: missile.h:386
virtual void Action()
Definition: missile_whirlwind.cpp:47
void LoadMissileSprite()
load the graphics for a missile type
Definition: missile.cpp:84
virtual void Action()
Definition: missile_stay.cpp:43
BurningBuildingFrame()
Definition: missile.h:569
Definition: missile.h:495
Definition: missile.h:505
Base structure of missile-types.
Definition: missile.h:343
Missile is death coil.
Definition: missile.h:336
Missile shows the hit points.
Definition: missile.h:331
Missile appears at x,y, then cycle through the frames once.
Definition: missile.h:329
Definition: missile.h:559
int TTL
direct damage that missile applies
Definition: missile.h:451
Definition: luacallback.h:38
Definition: missile.h:322
void CleanMissileTypes()
Clean missile-types.
Definition: missile.cpp:1357
Definition: missile.h:553
std::vector< BurningBuildingFrame * > BurningBuildingFrames
Definition: missile.cpp:73
virtual void Action()
Definition: missile_cliptotarget.cpp:46
LuaCallback * SmokeParticle
impact particle
Definition: missile.h:401
Missile flies from x,y to x1,y1 and animates ONCE from start to finish and back.
Definition: missile.h:326
virtual ~Missile()
Definition: missile.cpp:1375
Definition: missile.h:520
bool CorrectSphashDamage
impact sound for this missile-type
Definition: missile.h:373
int Height() const
Definition: missile.h:357
bool IgnoreWalls
pierce every target only once
Definition: missile.h:380
virtual void Action()
Definition: missile_pointtopoint.cpp:43
CGraphic * G
called when
Definition: missile.h:405
Missile doesn't move, than checks the source unit for HP.
Definition: missile.h:330
Definition: missile.h:475
Definition: missile.h:500
Missile appears at x,y, does it's anim and vanishes.
Definition: missile.h:328
Definition: missile.h:470
MissileType(const std::string &ident)
Definition: missile.cpp:1326
virtual void Action()
Definition: missile_fire.cpp:46
Definition: missile.h:515
MissileType * MissileTypeByIdent(const std::string &ident)
Get missile-type by ident.
Definition: missile.cpp:117
Missile flies from x,y to x1,y1.
Definition: missile.h:324
void Load(lua_State *l)
Definition: script_missile.cpp:80
int CalculateDamage(const CUnit &attacker, const CUnit &goal, const NumberDesc *formula)
Calculates damage done to goal by attacker using formula.
Definition: missile.cpp:324
Missile flies from x,y to x1,y1 than bounces three times.
Definition: missile.h:327
int TotalStep
Current step (0 <= x < TotalStep).
Definition: missile.h:457
Definition: missile.h:485
Definition: missile.h:525
int DrawLevel
missile size in pixels
Definition: missile.h:363
PixelSize size
missile transparency
Definition: missile.h:362
void DrawMissileType(int frame, const PixelPos &pos) const
Definition: missile.cpp:489
void Init()
Definition: missile.cpp:1300
virtual void Action()
Definition: missile_hit.cpp:43
int BlizzardSpeed
missile speed
Definition: missile.h:389