diff options
author | Chuck Miller <shadowmil@gmail.com> | 2009-07-17 14:11:30 -0400 |
---|---|---|
committer | Chuck Miller <shadowmil@gmail.com> | 2009-07-17 14:11:30 -0400 |
commit | 1923fcab4fc9aefd3eaa97fd9ca9b1c507bb4bcb (patch) | |
tree | 9400828ce46de3dd8246f012d78af6bf8f4d744b /src/game-server/statuseffect.cpp | |
parent | 053d2fa151ae209fe15c0a38fddb10abf1f6ad8a (diff) | |
download | manaserv-1923fcab4fc9aefd3eaa97fd9ca9b1c507bb4bcb.tar.gz manaserv-1923fcab4fc9aefd3eaa97fd9ca9b1c507bb4bcb.tar.bz2 manaserv-1923fcab4fc9aefd3eaa97fd9ca9b1c507bb4bcb.tar.xz manaserv-1923fcab4fc9aefd3eaa97fd9ca9b1c507bb4bcb.zip |
Adds scripted status effects
Diffstat (limited to 'src/game-server/statuseffect.cpp')
-rw-r--r-- | src/game-server/statuseffect.cpp | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/src/game-server/statuseffect.cpp b/src/game-server/statuseffect.cpp new file mode 100644 index 00000000..a8179a17 --- /dev/null +++ b/src/game-server/statuseffect.cpp @@ -0,0 +1,48 @@ +/* + * The Mana World + * Copyright 2004 The Mana World Development Team + * + * This file is part of The Mana World. + * + * The Mana World is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * any later version. + * + * The Mana World is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with The Mana World; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include "game-server/statuseffect.hpp" + +#include "scripting/script.hpp" +#include "game-server/being.hpp" + +StatusEffect::StatusEffect(int id) +{ + mId = id; + mScript = NULL; +} + +StatusEffect::~StatusEffect() +{ + if (mScript) delete mScript; +} + +void StatusEffect::tick(Being *target, int count) +{ + if (mScript) + { + mScript->setMap(target->getMap()); + mScript->prepare("tick"); + mScript->push(target); + mScript->push(count); + mScript->execute(); + } +} |