#ifndef _RYL_DBAGENT_CASTLE_DB_H_ #define _RYL_DBAGENT_CASTLE_DB_H_ #pragma once #include #include #include #include // Àü¹æ ÂüÁ¶ class CSiegeObjectDB; class CDBComponent; namespace Castle { class CCastleDB { public: ~CCastleDB(); // ŸÀÔ Á¤ÀÇ typedef std::map MineralInfoMap; // typedef std::map CastleObjectMap; // bool ChangeCastleMaster(unsigned char cNation); // ¼ºÁÖ º¯°æ void LoseOwnership(); // ¼º ¼ÒÀ¯¸¦ Á߸³È­ void CloseCastleGate(); // ¼º¹®À» ´Ý´Â´Ù. void OpenCastleGate(); // ¼º¹®À» ¿¬´Ù. (ºÎ¼ÅÁø °æ¿ì º¹±¸) void ChangeCastleObjectNation(unsigned char cNation); // ¼ö¼º ¿ÀºêÁ§Æ®µéÀÇ ±¹ÀûÀ» º¯°æ void DestroyAllCastleArms(); // ¼ö¼º º´±âµéÀ» º´±â °ü¸® NPC ·Î ¸¸µç´Ù. bool InsertCastleObject(CSiegeObjectDB* lpCastleObject); // ¼º ¿ÀºêÁ§Æ® Ãß°¡ bool DeleteCastleObject(unsigned long dwCID); // °ø¼º º´±â »èÁ¦ bool DeleteCastleObject(CSiegeObjectDB* lpCastleObject); // °ø¼º º´±â »èÁ¦ CSiegeObjectDB* GetCastleEmblem(); CSiegeObjectDB* GetCastleGate(); CSiegeObjectDB* GetCastleObject(unsigned long dwCastleObjectID); void CheckEnableSiege(bool bIsSiegeTime); // °ø¼º ½Ã°£ÀÌ ³¡³­ ÈÄ °»½ÅµÈ ¼º Á¤º¸ Àü¼Û void UpdateSiegeCount(); void SetTax(unsigned char cType, unsigned char cTax); // ¼¼À² º¯°æ void TakeTaxMoney(unsigned char cType, unsigned long dwTakeTaxMoney); // ¼¼±Ý ȸ¼ö bool GainMineral(unsigned short wMineralID, unsigned short wAmount); // ±¤¹° ¼¼±Ý ȸ¼ö bool SetTempTaxMoney(unsigned long* dwTempTaxMoney, unsigned long* dwTaxMoney); // °ÔÀÓ ¼­¹ö·ÎºÎÅÍ Àӽà ¼¼±ÝÁ¤º¸ ¾÷µ¥ÀÌÆ® bool SetMineralInfo(unsigned char cMineralType, unsigned char cNum, CastleMineral* lpMineralInfo); // °ÔÀÓ ¼­¹ö·ÎºÎÅÍ ±¤¹° ¼¼±ÝÁ¤º¸ ¾÷µ¥ÀÌÆ® bool InsertMineralInfo(unsigned char cMineralType, const CastleMineral& mineralInfo); // Mineral Ãß°¡ void SetRight(CastleRight castleRight); // °ü¸® ±ÇÇÑ º¯°æ void SetUpgradeItemInfo(unsigned short wItemID, unsigned char cItemNum); bool SetTaxInfo(const CastleTaxInfoDB& taxInfo); // DB ¿¡¼­ ÀоîµéÀÎ Tax Á¤º¸ ¼³Á¤ bool SetMineralInfo(const CastleMineralInfoDB& mineralInfo); // DB ¿¡¼­ ÀоîµéÀÎ Mineral Á¤º¸ ¼³Á¤ unsigned long GetCastleID() const { return m_dwCastleID; } unsigned long GetNation() const { return m_cNation; } unsigned char GetZone() const { return m_cZone; } unsigned char GetChannel() const { return m_cChannel; } unsigned char GetTax(unsigned char cType) const { return m_CastleTax[cType].m_cTax; } unsigned long GetTaxMoney(unsigned char cType) const { return m_CastleTax[cType].m_dwTaxMoney; } unsigned char GetSiegeCount() const { return m_cSiegeCount; } unsigned char GetInvincibleCount() const { return m_cInvincibleCount; } unsigned short GetTotalSiegeCount() const { return m_wTotalSiegeCount; } unsigned long GetTotalTaxMoney() const { return m_dwTotalTaxMoney; } bool GetEnableSiege() const { return m_bEnableSiege; } private: CCastleDB(CDBComponent& DBComponent, const CastleInfoDB& CastleInfo); CastleObjectMap m_CastleObjectMap; // ¼º °ü·Ã ¿ÀºêÁ§Æ®¸Ê unsigned long m_dwCastleID; // ¼º ȤÀº ¸¶À» ID unsigned char m_cNation; // ¼ºÀ» Â÷ÁöÇÑ ±¹°¡ unsigned char m_cZone; // ¼ºÀÌ ÀÖ´Â Á¸ ¹øÈ£ unsigned char m_cChannel; // ¼ºÀÌ Àִ ä³Î ¹øÈ£ unsigned char m_cNameID; // ¼ºÀÇ À̸§ ID ( 1ºÎÅÍ~~ ) unsigned char m_cSiegeCount; // °ø¼º Ƚ¼ö unsigned char m_cInvincibleCount; // ¹«Àû Ƚ¼ö unsigned short m_wTotalSiegeCount; // ´©Àû °ø¼º Ƚ¼ö unsigned long m_dwTotalTaxMoney; // ´©Àû ¼¼±Ý ȸ¼ö·® unsigned short m_wItemID; // ¾÷±×·¹À̵忡 »ç¿ëÇÒ º¸¼® ¾ÆÀÌÅÛ ID unsigned char m_cItemNum; // ¾÷±×·¹À̵忡 »ç¿ëÇÒ º¸¼® ¾ÆÀÌÅÛ °¹¼ö CastleRight m_CastleRight; // ¼º °ü¸® ±ÇÇÑ Position m_BackDoorPos[2]; // µÞ¹® »ç¿ë½Ã ¾È/¹ÛÀ§Ä¡ CastleTaxInfo m_CastleTax[Castle::MAX_TAX_TYPE]; // ¼¼À² ¹× ¼¼±Ý Á¤º¸ MineralInfoMap m_AccumulatedMineralMap; // ´©Àû ±¤¹° ¼¼±Ý MineralInfoMap m_TemporaryMineralMap; // Àӽà ±¤¹° ¼¼±Ý bool m_bEnableSiege; // ÇöÀç °ø¼ºÀÌ °¡´ÉÇѰ¡? CDBComponent& m_DBComponent; friend class CCastleDBMgr; }; } #endif // _RYL_DBAGENT_CASTLE_DB_H_