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_CREATURES_HUMANOIDS_HUMAN_H
00026 # define OGS_CREATURES_HUMANOIDS_HUMAN_H
00027
00028 # include <ogs/core/Die.h>
00029 # include <ogs/core/details/Maturity.h>
00030 # include <ogs/creatures/Humanoid.h>
00031 # include <ogs/creatures/humanoids/Namespace.h>
00032
00033 OGS_BEGIN_CREATURES_HUMANOIDS_NAMESPACE
00034
00046 class Human: public ogs::creatures::Humanoid,
00047 public ogs::core::details::Maturity {
00048 public:
00049 Human ();
00050
00051 unsigned getAdultAge () const;
00052 unsigned getMiddleAge () const;
00053 unsigned getOldAge () const;
00054 unsigned getVenerableAge () const;
00055 const ogs::core::Die& getMaximumAge () const;
00056
00057 protected:
00058 static ogs::core::Abilities createAbilities ();
00059
00060 private:
00061 static const ogs::core::Die _maximumAge;
00062 };
00063
00067 inline Human::Human ():
00068 Humanoid (ogs::core::Die (HIT_DIE, 1), createAbilities ()) {
00069
00070 }
00071
00078 inline unsigned
00079 Human::getAdultAge () const {
00080 return (15);
00081 }
00082
00089 inline unsigned
00090 Human::getMiddleAge () const {
00091 return (35);
00092 }
00093
00100 inline unsigned
00101 Human::getOldAge () const {
00102 return (53);
00103 }
00104
00111 inline unsigned
00112 Human::getVenerableAge () const {
00113 return (70);
00114 }
00115
00122 inline const ogs::core::Die&
00123 Human::getMaximumAge () const {
00124 return (this->_maximumAge);
00125 }
00126
00127 OGS_END_CREATURES_HUMANOIDS_NAMESPACE
00128
00129 # endif
00130
00131 #endif
00132