diff options
author | Erik Schilling <ablu.erikschilling@googlemail.com> | 2013-08-26 23:07:02 +0200 |
---|---|---|
committer | Erik Schilling <ablu.erikschilling@googlemail.com> | 2013-08-26 23:07:02 +0200 |
commit | 6fb91e4220c1d98367ebdc9c90072517de70d9a9 (patch) | |
tree | bb2d04ae962f2a9b1039bf51197f571f81db69b3 | |
parent | 61766a59ad152ab6c9a6f3fd318ed9256b573be9 (diff) | |
download | manaserv-6fb91e4220c1d98367ebdc9c90072517de70d9a9.tar.gz manaserv-6fb91e4220c1d98367ebdc9c90072517de70d9a9.tar.bz2 manaserv-6fb91e4220c1d98367ebdc9c90072517de70d9a9.tar.xz manaserv-6fb91e4220c1d98367ebdc9c90072517de70d9a9.zip |
Added forgotten files
-rw-r--r-- | src/game-server/attributeinfo.cpp | 22 | ||||
-rw-r--r-- | src/game-server/attributeinfo.h | 77 |
2 files changed, 99 insertions, 0 deletions
diff --git a/src/game-server/attributeinfo.cpp b/src/game-server/attributeinfo.cpp new file mode 100644 index 00000000..c50a5325 --- /dev/null +++ b/src/game-server/attributeinfo.cpp @@ -0,0 +1,22 @@ +/* + * The Mana Server + * Copyright (C) 2013 The Mana Developers + * + * This file is part of The Mana Server. + * + * The Mana Server 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 Server 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 Server. If not, see <http://www.gnu.org/licenses/>. + */ + +#include "attributeinfo.h" + diff --git a/src/game-server/attributeinfo.h b/src/game-server/attributeinfo.h new file mode 100644 index 00000000..8b9adfe6 --- /dev/null +++ b/src/game-server/attributeinfo.h @@ -0,0 +1,77 @@ +/* + * The Mana Server + * Copyright (C) 2004 - 2013 The Mana Developers + * + * This file is part of The Mana Server. + * + * The Mana Server 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 Server 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 Server. If not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef ATTRIBUTEINFO_H_ +#define ATTRIBUTEINFO_H_ + +#include <limits> +#include <vector> + +/** + * Stackable types. + * @todo non-stackable malus layers + */ +enum StackableType +{ + Stackable, + NonStackable, + NonStackableBonus +}; + +/** + * Attribute augmentation methods. + */ +enum ModifierEffectType +{ + Multiplicative, + Additive +}; + +struct AttributeModifier +{ + AttributeModifier(StackableType s, ModifierEffectType effect) : + stackableType(s), + effectType(effect) + {} + + StackableType stackableType; + ModifierEffectType effectType; +}; + +struct AttributeInfo +{ + AttributeInfo(int id, const std::string &name): + id(id), + name(name), + minimum(std::numeric_limits<double>::min()), + maximum(std::numeric_limits<double>::max()), + modifiable(false) + {} + + int id; + std::string name; + + double minimum; + double maximum; + bool modifiable; + std::vector<AttributeModifier> modifiers; +}; + +#endif /* ATTRIBUTEINFO_H_ */ |