From 6fb91e4220c1d98367ebdc9c90072517de70d9a9 Mon Sep 17 00:00:00 2001 From: Erik Schilling Date: Mon, 26 Aug 2013 23:07:02 +0200 Subject: Added forgotten files --- src/game-server/attributeinfo.cpp | 22 +++++++++++ src/game-server/attributeinfo.h | 77 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 99 insertions(+) create mode 100644 src/game-server/attributeinfo.cpp create mode 100644 src/game-server/attributeinfo.h (limited to 'src') 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 . + */ + +#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 . + */ + +#ifndef ATTRIBUTEINFO_H_ +#define ATTRIBUTEINFO_H_ + +#include +#include + +/** + * 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::min()), + maximum(std::numeric_limits::max()), + modifiable(false) + {} + + int id; + std::string name; + + double minimum; + double maximum; + bool modifiable; + std::vector modifiers; +}; + +#endif /* ATTRIBUTEINFO_H_ */ -- cgit v1.2.3-70-g09d2