/*
* The Mana World Server
* 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
*/
#ifndef _TMWSERV_DEFINES_H_
#define _TMWSERV_DEFINES_H_
/**
* Enumeration type for account levels.
* A normal player would have permissions of 1
* A tester would have permissions of 3 (AL_PLAYER | AL_TESTER)
* A dev would have permissions of 7 (AL_PLAYER | AL_TESTER | AL_DEV)
* A gm would have permissions of 11 (AL_PLAYER | AL_TESTER | AL_GM)
* A admin would have permissions of 255 (*)
*/
enum
{
AL_BANNED = 0, /**< This user is currently banned. */
AL_PLAYER = 1, /**< User has regular rights. */
AL_TESTER = 2, /**< User can perform testing tasks. */
AL_DEV = 4, /**< User is a developer and can perform dev tasks */
AL_GM = 8, /**< User is a moderator and can perform mod tasks */
AL_ADMIN = 128 /**< User can perform administrator tasks. */
};
/**
* Guild member permissions
* Members with NONE cannot invite users or set permissions
* Members with TOPIC_CHANGE can change the guild channel topic
* Members with INVIT can invite other users
* Memeber with KICK can remove other users
* Members with OWNER can invite users and set permissions
*/
enum
{
GAL_NONE = 0,
GAL_TOPIC_CHANGE = 1,
GAL_INVITE = 2,
GAL_KICK = 4,
GAL_OWNER = 255
};
/**
* Determine the default area in which a character is aware of other beings
*/
const int DEFAULT_INTERACTION_TILES_AREA = 20;
/**
* Default tile length in pixel
*/
const int DEFAULT_TILE_LENGTH = 32;
/**
* Possible states of beings.
* States can be multiple for the same being.
* To be used as bitmask values.
*/
enum BeingState
{
STATE_POISONED = 1,
STATE_STONED = 2,
STATE_STUNNED = 4,
STATE_SLOWED = 8,
STATE_TIRED = 16,
STATE_MAD = 32,
STATE_BERSERK = 64,
STATE_HASTED = 128,
STATE_FLOATING = 256
};
/**
* Element attribute for beings, actors, and items.
* Subject to change until Pauan and Dabe are finished with the element system.
* Please keep element modifier of BeingAttribute in sync.
*/
enum Element
{
ELEMENT_NEUTRAL = 0,
ELEMENT_FIRE,
ELEMENT_WATER,
ELEMENT_EARTH,
ELEMENT_AIR,
ELEMENT_LIGHTNING,
ELEMENT_METAL,
ELEMENT_WOOD,
ELEMENT_ICE,
ELEMENT_ILLEGAL
};
/**
* Attributes used during combat. Available to all the beings.
*/
enum
{
BASE_ATTR_BEGIN = 0,
BASE_ATTR_PHY_ATK_MIN = BASE_ATTR_BEGIN,
BASE_ATTR_PHY_ATK_DELTA,
/**< Physical attack power. */
BASE_ATTR_MAG_ATK, /**< Magical attack power. */
BASE_ATTR_PHY_RES, /**< Resistance to physical damage. */
BASE_ATTR_MAG_RES, /**< Resistance to magical damage. */
BASE_ATTR_EVADE, /**< Ability to avoid hits. */
BASE_ATTR_HIT, /**< Ability to hit stuff. */
BASE_ATTR_HP, /**< Hit Points (Base value: maximum, Modded value: current) */
BASE_ATTR_HP_REGEN,/**< number of HP regenerated every 10 game ticks */
BASE_ATTR_END,
BASE_ATTR_NB = BASE_ATTR_END - BASE_ATTR_BEGIN,
BASE_ELEM_BEGIN = BASE_ATTR_END,
BASE_ELEM_NEUTRAL = BASE_ELEM_BEGIN,
BASE_ELEM_FIRE,
BASE_ELEM_WATER,
BASE_ELEM_EARTH,
BASE_ELEM_AIR,
BASE_ELEM_SACRED,
BASE_ELEM_DEATH,
BASE_ELEM_END,
BASE_ELEM_NB = BASE_ELEM_END - BASE_ELEM_BEGIN,
NB_BEING_ATTRIBUTES = BASE_ELEM_END
};
/**
* Attributes of characters. Used to derive being attributes.
*/
enum
{
CHAR_ATTR_BEGIN = NB_BEING_ATTRIBUTES,
CHAR_ATTR_STRENGTH = CHAR_ATTR_BEGIN,
CHAR_ATTR_AGILITY,
CHAR_ATTR_DEXTERITY,
CHAR_ATTR_VITALITY,
CHAR_ATTR_INTELLIGENCE,
CHAR_ATTR_WILLPOWER,
CHAR_ATTR_END,
CHAR_ATTR_NB = CHAR_ATTR_END - CHAR_ATTR_BEGIN
};
#endif // _TMWSERV_DEFINES_H_