Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifndef __INC_METIN_II_GAME_DRAGON_SOUL_H__
- #define __INC_METIN_II_GAME_DRAGON_SOUL_H__
- #include "../../common/length.h"
- class CHARACTER;
- class CItem;
- class DragonSoulTable;
- class DSManager : public singleton<DSManager>
- {
- public:
- DSManager();
- ~DSManager();
- bool ReadDragonSoulTableFile(const char * c_pszFileName);
- void GetDragonSoulInfo(DWORD dwVnum, OUT BYTE& bType, OUT BYTE& bGrade, OUT BYTE& bStep, OUT BYTE& bRefine) const;
- // fixme : titempos·Î
- WORD GetBasePosition(const LPITEM pItem) const;
- bool IsValidCellForThisItem(const LPITEM pItem, const TItemPos& Cell) const;
- int GetDuration(const LPITEM pItem) const;
- // żëČĄĽ®Ŕ» ąŢľĆĽ ĆŻÁ¤ żë˝ÉŔ» ĂßĂâÇĎ´Â ÇÔĽö
- bool ExtractDragonHeart(LPCHARACTER ch, LPITEM pItem, LPITEM pExtractor = NULL);
- // ĆŻÁ¤ żëČĄĽ®(pItem)Ŕ» Ŕĺşń⿡Ľ Á¦°ĹÇŇ ¶§żˇ Ľş°ř ż©şÎ¸¦ °áÁ¤Çϰí,
- // ˝ÇĆнà şÎ»ęą°Ŕ» ÁÖ´Â ÇÔĽö.(şÎ»ęą°Ŕş dragon_soul_table.txtżˇ Á¤ŔÇ)
- // DestCellżˇ invalidÇŃ °ŞŔ» łÖŔ¸¸é Ľş°ř ˝Ă, żëČĄĽ®Ŕ» şó °ř°Łżˇ ŔÚµż Ăß°ˇ.
- // ˝ÇĆĐ ˝Ă, żëČĄĽ®(pItem)Ŕş deleteµĘ.
- // ĂßĂâľĆŔĚĹŰŔĚ Ŕִٸé ĂßĂâ Ľş°ř Č®·üŔĚ pExtractor->GetValue(0)%¸¸Ĺ Áő°ˇÇÔ.
- // şÎ»ęą°Ŕş ľđÁ¦łŞ ŔÚµż Ăß°ˇ.
- bool PullOut(LPCHARACTER ch, TItemPos DestCell, IN OUT LPITEM& pItem, LPITEM pExtractor = NULL);
- // żëČĄĽ® ľ÷±×·ąŔ̵ĺ ÇÔĽö
- bool DoRefineGrade(LPCHARACTER ch, TItemPos (&aItemPoses)[DRAGON_SOUL_REFINE_GRID_SIZE]);
- bool DoRefineStep(LPCHARACTER ch, TItemPos (&aItemPoses)[DRAGON_SOUL_REFINE_GRID_SIZE]);
- bool DoRefineStrength(LPCHARACTER ch, TItemPos (&aItemPoses)[DRAGON_SOUL_REFINE_GRID_SIZE]);
- bool DragonSoulItemInitialize(LPITEM pItem);
- bool IsTimeLeftDragonSoul(LPITEM pItem) const;
- int LeftTime(LPITEM pItem) const;
- bool ActivateDragonSoul(LPITEM pItem);
- bool DeactivateDragonSoul(LPITEM pItem, bool bSkipRefreshOwnerActiveState = false);
- bool IsActiveDragonSoul(LPITEM pItem) const;
- private:
- void SendRefineResultPacket(LPCHARACTER ch, BYTE bSubHeader, const TItemPos& pos);
- // Äł¸ŻĹÍŔÇ żëČĄĽ® µ¦Ŕ» »ěĆ캸°í, ȰĽşČ µČ żëČĄĽ®ŔĚ ľř´Ů¸é, Äł¸ŻĹÍŔÇ żëČĄĽ® ȰĽş »óŸ¦ off ˝ĂŰ´Â ÇÔĽö.
- void RefreshDragonSoulState(LPCHARACTER ch);
- DWORD MakeDragonSoulVnum(BYTE bType, BYTE grade, BYTE step, BYTE refine);
- bool PutAttributes(LPITEM pDS);
- bool RefreshItemAttributes(LPITEM pItem);
- DragonSoulTable* m_pTable;
- };
- #endif
Advertisement
Add Comment
Please, Sign In to add comment