<ClInclude Include="GameCampaign.h" />
<ClInclude Include="GameSurfaceSDL.h" />
<ClInclude Include="ItemBase.h" />
+ <ClInclude Include="ItemTemplate.h" />
<ClInclude Include="ItemTrait.h" />
<ClInclude Include="Karma.h" />
<ClInclude Include="ProbabilityTable.h" />
<ClCompile Include="CreatureTrait.cpp" />
<ClCompile Include="GameSurfaceSDL.cpp" />
<ClCompile Include="ItemBase.cpp" />
+ <ClCompile Include="ItemTemplate.cpp" />
<ClCompile Include="ItemTrait.cpp" />
<ClCompile Include="Karma.cpp" />
<ClCompile Include="ProbabilityTable.cpp" />
--- /dev/null
+/*!
+ * @file ItemTemplate.cpp
+ * @brief \83A\83C\83e\83\80\83e\83\93\83v\83\8c\81[\83g\82ð\92è\8b`\82·\82é
+ * @date 2014/04/04
+ * @author Deskull
+ * 2014 Sikabane Works.
+ */
+
+
+#include "stdafx.h"
+#include "ItemTemplate.h"
+
+ItemTemplate::ItemTemplate(ID id, TAG tag, GameWorld *gameWorld) : GameElement(id, tag, gameWorld)
+{
+ this->SetDammyData();
+}
+
+ItemTemplate::ItemTemplate(void)
+{
+ this->SetDammyData();
+}
+
+ItemTemplate::~ItemTemplate(void)
+{
+}
+
+void ItemTemplate::SetDammyData(void)
+{
+ this->weight = 0;
+}
+
+bool ItemTemplate::TakeEffect(Effect *effectPtr, POWER amount)
+{
+ if(effectPtr)
+ {
+ amount = 0;
+ }
+ return true;
+}
+
+void ItemTemplate::XMLSave(std::string filename)
+{
+ ItemTemplate ItemTemplate = *this;
+ std::ofstream ofs(filename);
+ assert(ofs);
+ boost::archive::xml_oarchive oa(ofs);
+ oa << BOOST_SERIALIZATION_NVP(ItemTemplate);
+}
--- /dev/null
+/*!
+ * @file ItemTemplate.h
+ * @brief \83A\83C\83e\83\80\82Ì\83X\83e\81[\83^\83X\83e\83\93\83v\83\8c\81[\83g
+ * @date 2014/04/04
+ * @author Deskull
+ * 2014 Sikabane Works.
+ */
+
+#pragma once
+
+#include "stdafx.h"
+#include "Deeangband.h"
+
+#include "Dice.h"
+#include "Effect.h"
+#include "GameElement.h"
+#include "SavingTable.h"
+
+/*!
+ * @class ItemTemplate
+ * @brief \83A\83C\83e\83\80\82Ì\83N\83\89\83X
+ */
+class ItemTemplate : public GameElement
+{
+private:
+
+ Dice baseDamage; //!< \83x\81[\83X\83_\83\81\81[\83W\82Ì\83_\83C\83X
+ WEIGHT weight; //!< \83A\83C\83e\83\80\82Ì\8fd\97Ê
+ SavingTable baseSaving; //!< \8aî\96{\83Z\81[\83r\83\93\83O\8fC\90³
+ SavingTable plusSaving; //!< \92Ç\89Á\83Z\81[\83r\83\93\83O\8fC\90³
+
+ friend class boost::serialization::access;
+
+ /*!
+ * @brief \83N\83\89\83X\82Ì\83V\83\8a\83A\83\89\83C\83Y\89»\82ð\90Ý\92è\82·\82é
+ * @param archive \83A\81[\83J\83C\83u\89»\82·\82é\83N\83\89\83X\82Ì\83A\83h\83\8c\83X
+ * @param version \83f\81[\83^\83o\81[\83W\83\87\83\93
+ * @return XMLSerialize\83e\83\93\83v\83\8c\81[\83g
+ */
+ template<class Archive> void serialize(Archive &archive, const unsigned int version)
+ {
+ if(version >= 0)
+ {
+ archive & BOOST_SERIALIZATION_NVP(baseDamage);
+ archive & BOOST_SERIALIZATION_NVP(weight);
+ archive & BOOST_SERIALIZATION_NVP(baseSaving);
+ archive & BOOST_SERIALIZATION_NVP(plusSaving);
+ }
+ }
+
+public:
+
+ /*!
+ * @brief ItemTemplate\83N\83\89\83X\83R\83\93\83X\83g\83\89\83N\83^(GameElement\83\81\83\93\83o\91Î\89\9e)
+ * @param id GameElement\82ÌID
+ * @param tag GameElement\82Ì\83^\83O
+ * @param gameWorld \8f\8a\91®\8c³gameWorld\8eQ\8fÆ\83|\83C\83\93\83^
+ */
+ ItemTemplate::ItemTemplate(ID id, TAG tag, GameWorld *gameWorld);
+
+ /*!
+ * @brief ItemTemplate\83N\83\89\83X\83R\83\93\83X\83g\83\89\83N\83^
+ */
+ ItemTemplate::ItemTemplate(void);
+
+ /*!
+ * @brief ItemTemplate\83N\83\89\83X\83f\83X\83g\83\89\83N\83^
+ */
+ ItemTemplate::~ItemTemplate(void);
+
+ /*!
+ * @brief \83_\83~\81[\83f\81[\83^\82É\82æ\82é\8f\89\8aú\89»
+ * @return \82È\82µ
+ */
+ void ItemTemplate::SetDammyData(void);
+
+ /*! \8eó\82¯\82½\8cø\89Ê\82ð\8f\88\97\9d\82·\82é */
+ bool ItemTemplate::TakeEffect(Effect *effectPtr, POWER amount);
+
+ /*! \8aî\96{\91\95\8db\8fC\90³\82ð\95Ô\82· */
+ AC ItemTemplate::GetBaseAC(void);
+
+ /*! \92Ç\89Á\91\95\8db\8fC\90³\82ð\95Ô\82· */
+ AC ItemTemplate::GetPlusAC(void);
+
+ /*! \8aî\96{\89ñ\94ð\8fC\90³\82ð\95Ô\82· */
+ EV ItemTemplate::GetBaseEV(void);
+
+ /*! \92Ç\89Á\89ñ\94ð\8fC\90³\82ð\95Ô\82· */
+ EV ItemTemplate::GetPlusEV(void);
+
+ /*! \8aî\96{\88Ó\8eu\8fC\90³\82ð\95Ô\82· */
+ VO ItemTemplate::GetBaseVO(void);
+
+ /*! \92Ç\89Á\88Ó\8eu\8fC\90³\82ð\95Ô\82· */
+ VO ItemTemplate::GetPlusVO(void);
+
+ /*!
+ * @brief XML\83V\83\8a\83A\83\89\83C\83Y\82É\82æ\82é\83Q\81[\83\80\83f\81[\83^\95Û\91¶\8f\88\97\9d
+ * @return \82È\82µ
+ */
+ void ItemTemplate::XMLSave(std::string filename);
+
+};