00001 /* 00002 * The Mana World 00003 * Copyright (C) 2008 The Mana World Development Team 00004 * 00005 * This file is part of The Mana World. 00006 * 00007 * This program is free software; you can redistribute it and/or modify 00008 * it under the terms of the GNU General Public License as published by 00009 * the Free Software Foundation; either version 2 of the License, or 00010 * any later version. 00011 * 00012 * This program is distributed in the hope that it will be useful, 00013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 * GNU General Public License for more details. 00016 * 00017 * You should have received a copy of the GNU General Public License 00018 * along with this program; if not, write to the Free Software 00019 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00020 */ 00021 00022 #ifndef STATUS_EFFECT_H 00023 #define STATUS_EFFECT_H 00024 00025 #include "resources/animation.h" 00026 #include "particle.h" 00027 #include "animatedsprite.h" 00028 #include "sound.h" 00029 00030 class StatusEffect 00031 { 00032 public: 00033 StatusEffect(); 00034 ~StatusEffect(); 00035 00039 void playSFX(); 00040 00045 void deliverMessage(); 00046 00051 Particle *getParticle(); 00052 00056 AnimatedSprite *getIcon(); 00057 00061 SpriteAction getAction(); 00062 00067 bool particleEffectIsPersistent() const { return mPersistentParticleEffect; } 00068 00069 00077 static StatusEffect *getStatusEffect(int index, bool enabling); 00078 00086 static StatusEffect *getStunEffect(int index, bool enabling); 00087 00095 static int blockEffectIndexToEffectIndex(int blocKIndex); 00096 00097 static void load(); 00098 00099 static void unload(); 00100 private: 00101 00102 std::string mMessage; 00103 std::string mSFXEffect; 00104 std::string mParticleEffect; 00105 std::string mIcon; 00106 std::string mAction; 00107 bool mPersistentParticleEffect; 00108 }; 00109 00110 #endif // !defined(STATUS_EFFECT_H)