Files
Leviathan/Client/Game/game/Interface/Arena/ArenaUtility.h
T
2026-06-01 12:46:52 +02:00

72 lines
2.6 KiB
C

#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