00001 #ifndef __LINEPIECEPOWERUP_H__ 00002 #define __LINEPIECEPOWERUP_H__ 00003 00004 #include "Powerup.h" 00005 00006 /// The target player's next piece will be a line piece. 00007 class LinePiecePowerup : public Powerup 00008 { 00009 public: 00010 virtual PowerupId GetPowerupId() { return powerupId; } 00011 virtual GuiImageData* GetImageData() { return imageData; } 00012 virtual string* GetHelpText() { return helpText; } 00013 00014 protected: 00015 LinePiecePowerup() 00016 { 00017 STATIC 00018 ( 00019 vector<Powerup *> &powerupVector = Powerup::GetVector(); 00020 powerupId = powerupVector.size(); 00021 powerupVector.push_back(this); 00022 ) 00023 } 00024 virtual ~LinePiecePowerup() { } 00025 00026 /// Returns a new powerup instance. 00027 virtual Powerup* GetInstance() { return new LinePiecePowerup(); } 00028 00029 /// Returns a static powerup instance. 00030 //static Powerup* GetStaticInstance() { return instance; } 00031 00032 virtual void StartEffect(u8 player); 00033 virtual void StopEffect(u8 player); 00034 virtual u32 GetDuration() { return 1000; } 00035 00036 private: 00037 static PowerupId powerupId; 00038 static Powerup *instance; 00039 static GuiImageData *imageData; 00040 static string helpText[2]; 00041 }; 00042 00043 #endif // __LINEPIECEPOWERUP_H__