_________ __                 __
        /   _____//  |_____________ _/  |______     ____  __ __  ______
        \_____  \\   __\_  __ \__  \\   __\__  \   / ___\|  |  \/  ___/
        /        \|  |  |  | \// __ \|  |  / __ \_/ /_/  >  |  /\___ \
       /_______  /|__|  |__|  (____  /__| (____  /\___  /|____//____  >
               \/                  \/          \//_____/            \/
    ______________________                           ______________________
                          T H E   W A R   B E G I N S
                   Stratagus - A free fantasy real time strategy game engine

action_spellcast.h
Go to the documentation of this file.
1 // _________ __ __
2 // / _____// |_____________ _/ |______ ____ __ __ ______
3 // \_____ \\ __\_ __ \__ \\ __\__ \ / ___\| | \/ ___/
4 // / \| | | | \// __ \| | / __ \_/ /_/ > | /\___ |
5 // /_______ /|__| |__| (____ /__| (____ /\___ /|____//____ >
6 // \/ \/ \//_____/ \/
7 // ______________________ ______________________
8 // T H E W A R B E G I N S
9 // Stratagus - A free fantasy real time strategy game engine
10 //
12 //
13 // (c) Copyright 1998-2012 by Lutz Sammer and Jimmy Salmon
14 //
15 // This program is free software; you can redistribute it and/or modify
16 // it under the terms of the GNU General Public License as published by
17 // the Free Software Foundation; only version 2 of the License.
18 //
19 // This program is distributed in the hope that it will be useful,
20 // but WITHOUT ANY WARRANTY; without even the implied warranty of
21 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22 // GNU General Public License for more details.
23 //
24 // You should have received a copy of the GNU General Public License
25 // along with this program; if not, write to the Free Software
26 // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
27 // 02111-1307, USA.
28 //
29 
30 #ifndef __ACTION_SPELLCAST_H__
31 #define __ACTION_SPELLCAST_H__
32 
33 #include "actions.h"
34 
36 
37 class COrder_SpellCast : public COrder
38 {
39  friend COrder *COrder::NewActionSpellCast(const SpellType &spell, const Vec2i &pos, CUnit *target, bool isAutocast);
40 public:
41  COrder_SpellCast(bool autocast = false) : COrder(UnitActionSpellCast), Spell(NULL), State(0), Range(0), isAutocast(autocast)
42  {
43  goalPos.x = -1;
44  goalPos.y = -1;
45  }
46 
47  virtual COrder_SpellCast *Clone() const { return new COrder_SpellCast(*this); }
48 
49  virtual bool IsValid() const;
50 
51  virtual void Save(CFile &file, const CUnit &unit) const;
52  virtual bool ParseSpecificData(lua_State *l, int &j, const char *value, const CUnit &unit);
53 
54  virtual void Execute(CUnit &unit);
55  virtual PixelPos Show(const CViewport &vp, const PixelPos &lastScreenPos) const;
56  virtual void UpdatePathFinderData(PathFinderInput &input);
57 
58  virtual void OnAnimationAttack(CUnit &unit);
59 
60  virtual const Vec2i GetGoalPos() const;
61  const SpellType &GetSpell() const { return *Spell; }
62  void SetSpell(const SpellType &spell) { Spell = &spell; }
63 private:
64  bool CheckForDeadGoal(CUnit &unit);
65  bool SpellMoveToTarget(CUnit &unit);
66 private:
67  const SpellType *Spell;
68  int State;
69  int Range;
70  Vec2i goalPos;
71  bool isAutocast;
72 };
73 
75 
76 #endif // !__ACTION_SPELLCAST_H__
COrder_SpellCast::IsValid
virtual bool IsValid() const
Definition: action_spellcast.cpp:131
COrder_SpellCast::OnAnimationAttack
virtual void OnAnimationAttack(CUnit &unit)
Definition: action_spellcast.cpp:177
COrder::NewActionSpellCast
static COrder * NewActionSpellCast(const SpellType &spell, const Vec2i &pos, CUnit *target, bool isAutocast=false)
Definition: action_spellcast.cpp:64
COrder_SpellCast::ParseSpecificData
virtual bool ParseSpecificData(lua_State *l, int &j, const char *value, const CUnit &unit)
Definition: action_spellcast.cpp:109
COrder
Definition: actions.h:94
Vec2T::y
T y
Definition: vec2i.h:43
COrder_SpellCast::GetSpell
const SpellType & GetSpell() const
Definition: action_spellcast.h:61
COrder_SpellCast::Save
virtual void Save(CFile &file, const CUnit &unit) const
Definition: action_spellcast.cpp:90
COrder_SpellCast::Show
virtual PixelPos Show(const CViewport &vp, const PixelPos &lastScreenPos) const
Definition: action_spellcast.cpp:141
CViewport
Definition: viewport.h:63
Vec2T< short int >
COrder_SpellCast::COrder_SpellCast
COrder_SpellCast(bool autocast=false)
Definition: action_spellcast.h:41
PathFinderInput
Definition: pathfinder.h:67
UnitActionSpellCast
@ UnitActionSpellCast
unit dies
Definition: actions.h:61
COrder_SpellCast::GetGoalPos
virtual const Vec2i GetGoalPos() const
Definition: action_spellcast.cpp:191
actions.h
COrder_SpellCast::SetSpell
void SetSpell(const SpellType &spell)
Definition: action_spellcast.h:62
COrder_SpellCast::UpdatePathFinderData
virtual void UpdatePathFinderData(PathFinderInput &input)
Definition: action_spellcast.cpp:156
COrder_SpellCast
Definition: action_spellcast.h:37
COrder_SpellCast::Clone
virtual COrder_SpellCast * Clone() const
Definition: action_spellcast.h:47
Vec2T::x
T x
Definition: vec2i.h:42
COrder_SpellCast::Execute
virtual void Execute(CUnit &unit)
Definition: action_spellcast.cpp:296
SpellType
Definition: spells.h:205
CFile
Definition: iolib.h:102
CUnit
The big unit structure.
Definition: unit.h:135
(C) Copyright 1998-2012 by The Stratagus Project under the GNU General Public License.
All trademarks and copyrights on this page are owned by their respective owners.