00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifdef __cplusplus
00024
00025 # ifndef OGS_ITEMS_ARMOR_H
00026 # define OGS_ITEMS_ARMOR_H
00027
00028 # include <ogs/core/Item.h>
00029 # include <ogs/core/Modifier.h>
00030 # include <ogs/items/Namespace.h>
00031
00032 OGS_BEGIN_ITEMS_NAMESPACE
00033
00043 class Armor: public ogs::core::Item {
00044 public:
00046 enum Proficiency {
00047
00049 LIGHT = 1,
00050
00052 MEDIUM = 2,
00053
00055 HEAVY = 3
00056 };
00057
00064 virtual Proficiency getProficiency () const = 0;
00065
00071 virtual ogs::core::Modifier& getDefenseBonus () = 0;
00072
00073 virtual ogs::core::Modifier& getArmorCheckPenalty () = 0;
00074
00075 virtual int getArcaneSpellFailure () = 0;
00076
00077 virtual ~Armor ();
00078 };
00079
00080 inline Armor::~Armor () { }
00081
00082 OGS_END_ITEMS_NAMESPACE
00083
00084 # endif
00085
00086 #endif
00087