projects
/
supertux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Rolled back bomb to old behaviour, some bomb gfx tuning
[supertux.git]
/
src
/
badguy
/
ghosttree.hpp
diff --git
a/src/badguy/ghosttree.hpp
b/src/badguy/ghosttree.hpp
index
109ba3d
..
7e57d5c
100644
(file)
--- a/
src/badguy/ghosttree.hpp
+++ b/
src/badguy/ghosttree.hpp
@@
-23,6
+23,7
@@
#include "badguy.hpp"
class TreeWillOWisp;
#include "badguy.hpp"
class TreeWillOWisp;
+class Lantern;
class GhostTree : public BadGuy
{
class GhostTree : public BadGuy
{
@@
-30,22
+31,44
@@
public:
GhostTree(const lisp::Lisp& lisp);
~GhostTree();
GhostTree(const lisp::Lisp& lisp);
~GhostTree();
+ virtual bool is_flammable() const { return false; }
+ virtual bool is_freezable() const { return false; }
+ virtual void kill_fall() { }
+
void activate();
void active_update(float elapsed_time);
void willowisp_died(TreeWillOWisp* willowisp);
void activate();
void active_update(float elapsed_time);
void willowisp_died(TreeWillOWisp* willowisp);
+ virtual void draw(DrawingContext& context);
+
+ virtual bool collides(GameObject& other, const CollisionHit& hit);
+ virtual HitResponse collision(GameObject& other, const CollisionHit& hit);
+
+ void die();
private:
private:
+ enum MyState {
+ STATE_IDLE, STATE_SUCKING, STATE_SWALLOWING, STATE_DYING
+ };
+ MyState mystate;
Timer willowisp_timer;
float willo_spawn_y;
float willo_radius;
float willo_speed;
int willo_color;
Timer willowisp_timer;
float willo_spawn_y;
float willo_radius;
float willo_speed;
int willo_color;
+ std::auto_ptr<Sprite> glow_sprite;
Timer colorchange_timer;
Timer colorchange_timer;
+ Timer suck_timer;
Timer root_timer;
int treecolor;
Timer root_timer;
int treecolor;
+ Color suck_lantern_color;
+
+ Lantern* suck_lantern; /**< Lantern that is currently being sucked in */
std::vector<TreeWillOWisp*> willowisps;
std::vector<TreeWillOWisp*> willowisps;
+
+ bool is_color_deadly(Color color) const;
+ void spawn_lantern();
};
#endif
};
#endif