#ifndef _ArenaUtility_h_ #define _ArenaUtility_h_ #include "BattleArenaBase.h" struct sArenaUtility { enum MODE { MODE_CLASSIC = _BATTLE_ARENA_TYPE::BAT_CLASSIC, MODE_BINGO = _BATTLE_ARENA_TYPE::BAT_BINGO, MODE_SLAUGHTER = _BATTLE_ARENA_TYPE::BAT_SLAUGHTER , MAX_MODE_NUM }; /// NONE이 -1이므로 참조할 때, else 보다는 else if를 쓰도록 하자 enum TEAM { TEAM_NONE = -1, TEAM_ALLIANCE, TEAM_WITCH, MAX_TEAM_NUM }; enum MEMBER { MEMBER_2_BY_2, MEMBER_4_BY_4, MEMBER_8_BY_8, MEMBER_16_BY_16 }; enum MAX_MEMBER { MAX_MEMBER_4 = 4, MAX_MEMBER_8 = 8, MAX_MEMBER_16 = 16, MAX_MEMBER_32 = 32, MAX_MEMBER_ONE_TEAM = 16, /// 한팀이 가질 수 있는 최대 플레이어 수 }; enum RANK { RANK_NONE , /// 참가 못 함 (1 ~ 49Lv) RANK_R, /// 루키 (50 ~ 99Lv) RANK_G, /// 그로우(100 ~ 149Lv) RANK_M, /// 메이저(150 ~ ) RANK_TOTAL }; enum { JOIN_MIN_MEMBER_COUNT_RATE = 75 }; /// 최소 경기 가능 인원수 비율 enum { EXERCISE_ARENA_ID = 2501 }; /// 연습경기 ID, 나중에 연습경기가 추가되면 DB 컬럼을 추가 하기로 함, 기획팀에서 정해주면 바꾸어야 한다 /// memberType에 맞는 min, max 참여 인원을 구한다. void calcBattleArenaJoinMemberCount(int memberType, int& minMember, int& maxMember); /// maxMember를 가지고 minMember를 구한다 int getBattleArenaJoinMinMemberCount(int maxMember); /// 최소 경기 가능 인원수가 만족 하는지 bool isValidBattleArenaMinMemberCount(int curMember, int maxMember); /// 최소 참여 인원에 따른 색 char const* getMinMemberCountColor(int curMember, int maxMember); /// mode : MODE char const* modeToStr(int mode); /// char const* teamToStr(int team); /// char const* teamToPartyTitleAniName(int team); /// max member -> enum MEMBER string char const* maxMemberToMemberStr(int maxMember); /// 각 팀에 해당되는 랭크 bg ani name을 리턴한다. 메뉴에서만 쓰임 char const* getMenuRankBgAniName(int team); /// 각 팀에 해당되는 타이틀바 bg ani name을 리턴한다. 메뉴에서만 쓰임 char const* getMenuTitleBgAniName(int team); /// 슬래터 점령 아이콘 애니 네임, status : _PROP_STATE char const* getSlaughterPropIconAniName(int status); /// 상대 팀 타입을 구한다 int convertOpponentTeam(int team); /// arenaId로 각 게임에 해당되는 window id를 구한다 int getArenaGameWindowId(int arendId); /// 최소 경기 시간 float getMinimumPlayTime(int maxMember); bool isValidTeam(int team) const; }; #endif