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_MAGIC_PHYSICAL_COMPONENT_H
00026 # define OGS_MAGIC_PHYSICAL_COMPONENT_H
00027
00028 # include <string>
00029
00030 # include <ogs/magic/Component.h>
00031 # include <ogs/magic/Namespace.h>
00032
00033 OGS_BEGIN_MAGIC_NAMESPACE
00034
00041 class PhysicalComponent: public Component {
00042 public:
00043 static PhysicalComponent
00044 Material (const std::string& details,
00045 float cost = 0.0,
00046 bool useDivineFocus = false);
00047 static PhysicalComponent
00048 Focus (const std::string& details,
00049 float cost = 0.0,
00050 bool useDivineFocus = false);
00051
00052 const std::string& getDetails () const;
00053 float getCost () const;
00054 bool useDivineFocus () const;
00055
00056 protected:
00057 PhysicalComponent (Component::Type type,
00058 const std::string& details,
00059 float cost = 0.0,
00060 bool useDivineFocus = false);
00061
00062 private:
00063 std::string _details;
00064 float _cost;
00065 bool _useDivineFocus;
00066 };
00067
00077 inline PhysicalComponent
00078 PhysicalComponent::Material (const std::string& details,
00079 float cost,
00080 bool useDivineFocus) {
00081 return (PhysicalComponent (Component::MATERIAL, details,
00082 cost, useDivineFocus));
00083 }
00084
00094 inline PhysicalComponent
00095 PhysicalComponent::Focus (const std::string& details,
00096 float cost,
00097 bool useDivineFocus) {
00098 return (PhysicalComponent (Component::FOCUS, details,
00099 cost, useDivineFocus));
00100 }
00101
00107 inline const std::string& PhysicalComponent::getDetails () const {
00108 return (this->_details);
00109 }
00110
00116 inline float PhysicalComponent::getCost () const {
00117 return (this->_cost);
00118 }
00119
00126 inline bool PhysicalComponent::useDivineFocus () const {
00127 return (this->_useDivineFocus);
00128 }
00129
00139 inline
00140 PhysicalComponent::PhysicalComponent (Component::Type type,
00141 const std::string& details,
00142 float cost,
00143 bool useDivineFocus):
00144 Component (type), _details (details), _cost (cost),
00145 _useDivineFocus (useDivineFocus) {
00146
00147 }
00148
00149 OGS_END_MAGIC_NAMESPACE
00150
00151 # endif
00152
00153 #endif
00154