#pragma once #ifndef PROGRAMCOMMON_SOCKETSYSTEM_ZARDCOMPOSEINFOPARSER_H_ #define PROGRAMCOMMON_SOCKETSYSTEM_ZARDCOMPOSEINFOPARSER_H_ #include #include #include class SCItemSlotContainer; struct MSG_CG_ITEM_COMPOSE_OR_DECOMPOSE_SYN; // _NA_000251_20100727_SOCKET_SYSTEM struct ZardComposeInfo { enum { kSuccessRatioCount = 4 }; enum { kMaxRatio = 1000 }; typedef int ZardGrade; typedef WORD ZardRatio; ZardGrade zard_grade_; // Àðµå µî±Þ ZardRatio success_ratio_[kSuccessRatioCount]; // ¼º°ø È®·ü }; class ZardComposeInfoParser : public util::Singleton, public IParser { //////////////////////////////////////////////////////////////////////////////////////////////// // REGION : Define //////////////////////////////////////////////////////////////////////////////////////////////// public: enum { kMaterialSize = 3 }; // ÇÕ¼º¿¡ »ç¿ëÇÒ Àç·á °³¼ö //////////////////////////////////////////////////////////////////////////////////////////////// // REGION : Constructor & Destructor //////////////////////////////////////////////////////////////////////////////////////////////// public: ZardComposeInfoParser(); ~ZardComposeInfoParser(); //////////////////////////////////////////////////////////////////////////////////////////////// // REGION : Public //////////////////////////////////////////////////////////////////////////////////////////////// public: virtual void Release() {} virtual BOOL LoadScript(eSCRIPT_CODE script_code, BOOL is_reload); public: const ZardComposeInfo* FindZardCompose(const ZardComposeInfo::ZardGrade zard_grade) const; public: // Àðµå ÇÕ¼º ¼º°ø È®·üÀ» ¾ò´Â´Ù. // ¸®Åϰª : 0ÀÌ¸é ¼º°ø È®·üÀ» ¾ò´Âµ¥ ½ÇÆÐ ZardComposeInfo::ZardRatio GetZardCompositionSuccessRatio( SCItemSlotContainer& inventory, const POSTYPE zard_position_list[kMaterialSize], const POSTYPE additive_position, int fail_number) const; // Àðµå ÇÕ¼º ¿äûÀ» ¾ò´Â´Ù. bool GetZardCompositionRequest( SCItemSlotContainer& inventory, const POSTYPE zard_position_list[kMaterialSize], const POSTYPE additive_position, MSG_CG_ITEM_COMPOSE_OR_DECOMPOSE_SYN& OUT request) const; //////////////////////////////////////////////////////////////////////////////////////////////// // REGION : Private //////////////////////////////////////////////////////////////////////////////////////////////// private: bool IsValid(const ZardComposeInfo& zard_compose) const; bool LoadZardCompose(const bool is_reload); private: ZardComposeInfo zard_compose_list_[kZardGradeMax-1]; __DISABLE_COPY(ZardComposeInfoParser); }; #endif // PROGRAMCOMMON_SOCKETSYSTEM_ZARDCOMPOSEINFOPARSER_H_