#include "stdafx.h" //#include "SGameMessageUI.h" #include "SGameMessage.h" #include "SBattleArenaDB.h" #include "ArenaUtility.h" #include "SStringDB.h" void sArenaUtility::calcBattleArenaJoinMemberCount(int memberType, int& minMember, int& maxMember) { if (sArenaUtility::MEMBER_2_BY_2 == memberType) { maxMember = MAX_MEMBER_4; } else if (sArenaUtility::MEMBER_4_BY_4 == memberType) { maxMember = MAX_MEMBER_8; } else if (sArenaUtility::MEMBER_8_BY_8 == memberType) { maxMember = MAX_MEMBER_16; } else if (sArenaUtility::MEMBER_16_BY_16 == memberType) { maxMember = MAX_MEMBER_32; } minMember = getBattleArenaJoinMinMemberCount(maxMember); } int sArenaUtility::getBattleArenaJoinMinMemberCount(int maxMember) { if (4 == maxMember) return 4; int minMember = (maxMember * sArenaUtility::JOIN_MIN_MEMBER_COUNT_RATE)/100; return minMember; } bool sArenaUtility::isValidBattleArenaMinMemberCount(int curMember, int maxMember) { int minMember = getBattleArenaJoinMinMemberCount(maxMember); return minMember <= curMember; } char const* sArenaUtility::getMinMemberCountColor(int curMember, int maxMember) { if (isValidBattleArenaMinMemberCount(curMember, maxMember)) { return "<#00a651>"; } else { return "<#ffffff>"; } } char const* sArenaUtility::modeToStr(int mode) { int stringId; switch (mode) { case MODE_CLASSIC: stringId = 2314; break; case MODE_BINGO: stringId = 2316; break; case MODE_SLAUGHTER: stringId = 2315; break; default: return ""; } return S(stringId); } char const* sArenaUtility::teamToStr(int team) { int stringId; switch (team) { case TEAM_ALLIANCE: stringId = 2382; break; case TEAM_WITCH: stringId = 2383; break; default: return ""; } return S(stringId); } char const* sArenaUtility::teamToPartyTitleAniName(int team) { switch (team) { case sArenaUtility::TEAM_ALLIANCE: return "game_panel_arena_titlebar_party_bg_alliance"; case sArenaUtility::TEAM_WITCH: return "game_panel_arena_titlebar_party_bg_witch"; case sArenaUtility::TEAM_NONE: return "common_titlebar_trim_beamblue_party_bg"; default: return "common_titlebar_trim_beamblue_party_bg"; } } char const* sArenaUtility::maxMemberToMemberStr(int maxMember) { int stringId; switch (maxMember) { case MAX_MEMBER_4: stringId = 2327; break; case MAX_MEMBER_8: stringId = 2328; break; case MAX_MEMBER_16: stringId = 2329; break; case MAX_MEMBER_32: stringId = 2330; break; default: return ""; } return S(stringId); } char const* sArenaUtility::getMenuRankBgAniName(int team) { switch (team) { case TEAM_ALLIANCE: return "game_panel_titanium_arena_alliance_team"; case TEAM_WITCH: return "game_panel_titanium_arena_witch_team"; default: return "game_panel_titanium_arena_default"; } } char const* sArenaUtility::getMenuTitleBgAniName(int team) { switch (team) { case TEAM_ALLIANCE: return "game_panel_arena_titlebar_bg_alliance_team"; case TEAM_WITCH: return "game_panel_arena_titlebar_bg_witch_team"; default: return "game_panel_arena_titlebar_bg_default"; } } char const* sArenaUtility::getSlaughterPropIconAniName(int status) { switch (status) { case _PROP_STATE::PS_OWNED_BY_TEAM_0: return "game_panel_arena_mode_slaughter_alliance"; case _PROP_STATE::PS_OWNED_BY_TEAM_1: return "game_panel_arena_mode_slaughter_witch"; default: return "game_panel_arena_mode_slaughter_default"; } } int sArenaUtility::convertOpponentTeam(int team) { switch (team) { case TEAM_ALLIANCE: return TEAM_WITCH; case TEAM_WITCH: return TEAM_ALLIANCE; default: return TEAM_NONE; } } int sArenaUtility::getArenaGameWindowId(int arenaId) { if (EXERCISE_ARENA_ID == arenaId) return SIMSG_TOGGLE_UIWINDOW::UIWINDOW_ARENA_GAME_SLAUGHTER_PRACTICE; BattleArenaBase* data = GetBattleArenaDB().getData(arenaId); if (!data) return 0; int wndId; switch (data->eType) { case BAT_CLASSIC: wndId = SIMSG_TOGGLE_UIWINDOW::UIWINDOW_ARENA_GAME_CLASSIC; break; case BAT_BINGO: wndId = SIMSG_TOGGLE_UIWINDOW::UIWINDOW_ARENA_GAME_BINGO; break; case BAT_SLAUGHTER: wndId = SIMSG_TOGGLE_UIWINDOW::UIWINDOW_ARENA_GAME_SLAUGHTER; break; } return wndId; } float sArenaUtility::getMinimumPlayTime(int maxMember) { float m; switch (maxMember) { case MAX_MEMBER_4: m = 5.0f; break; case MAX_MEMBER_8: m = 8.0f; break; case MAX_MEMBER_16: m = 8.0f; break; case MAX_MEMBER_32: m = 10.0f; break; default: m = 0.0f; break; } return m * 60.0f; } bool sArenaUtility::isValidTeam(int team) const { if (TEAM_NONE == team) return false; if (MAX_TEAM_NUM <= team) return false; return true; }