191 lines
4.5 KiB
C++
191 lines
4.5 KiB
C++
#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;
|
|
}
|