147 lines
3.9 KiB
C++
147 lines
3.9 KiB
C++
#include "StdAfx.h"
|
|
#include ".\BattleRecorder.h"
|
|
|
|
// _NA_0_20091118_GAMEROOM_BATTLE_RESULT
|
|
|
|
BattleRecorder::BattleRecorder()
|
|
{
|
|
ClearRecord();
|
|
}
|
|
|
|
BattleRecorder::~BattleRecorder()
|
|
{
|
|
}
|
|
|
|
void BattleRecorder::ClearRecord()
|
|
{
|
|
record_.total_damage_to_enemy = 0;
|
|
record_.total_damage_by_enemy = 0;
|
|
record_.total_heal_to_party = 0;
|
|
record_.max_damage_to_enemy = 0;
|
|
record_.monster_kill_count = 0;
|
|
record_.player_kill_count = 0;
|
|
record_.dead_count = 0;
|
|
record_.level = 0;
|
|
//_NA_005026_20120527_CHAOS_ZONE_BATTLE_GROUND
|
|
record_.strongpoint_attack = 0;
|
|
record_.strongpoint_defense = 0;
|
|
#ifdef _NA_006633_20130415_ADD_BATTLEGROUND_ASSIST
|
|
record_.assist_count = 0;
|
|
#endif //_NA_006633_20130415_ADD_BATTLEGROUND_ASSIST
|
|
#ifdef _NA_007065_20140217_CHAOSZONE_GOLDRUSH
|
|
record_.gold_point = 0;
|
|
record_.cumulative_required_gold_point = 0;
|
|
#endif //_NA_007065_20140217_CHAOSZONE_GOLDRUSH
|
|
}
|
|
|
|
#ifdef _NA_007065_20140217_CHAOSZONE_GOLDRUSH
|
|
bool BattleRecorder::DoRecord(eBATTLE_RECORD_TYPE record_type, int impact_value)
|
|
#else
|
|
bool BattleRecorder::DoRecord(eBATTLE_RECORD_TYPE record_type, uint impact_value)
|
|
#endif //_NA_007065_20140217_CHAOSZONE_GOLDRUSH
|
|
{
|
|
bool dirty = false;
|
|
switch (record_type)
|
|
{
|
|
case BATTLE_RECORD_ATTACK:
|
|
{
|
|
if (impact_value > 0)
|
|
{
|
|
if (record_.max_damage_to_enemy < impact_value)
|
|
record_.max_damage_to_enemy = impact_value;
|
|
record_.total_damage_to_enemy += impact_value;
|
|
dirty = true;
|
|
}
|
|
}
|
|
break;
|
|
case BATTLE_RECORD_DAMAGE:
|
|
{
|
|
if (impact_value > 0)
|
|
{
|
|
record_.total_damage_by_enemy += impact_value;
|
|
dirty = true;
|
|
}
|
|
}
|
|
break;
|
|
case BATTLE_RECORD_MONSTER_KILL:
|
|
{
|
|
++(record_.monster_kill_count);
|
|
dirty = true;
|
|
}
|
|
break;
|
|
case BATTLE_RECORD_PLAYER_KILL:
|
|
{
|
|
++(record_.player_kill_count);
|
|
dirty = true;
|
|
}
|
|
break;
|
|
case BATTLE_RECORD_DEAD:
|
|
{
|
|
++(record_.dead_count);
|
|
dirty = true;
|
|
}
|
|
break;
|
|
case BATTLE_RECORD_HEAL:
|
|
{
|
|
if (impact_value > 0)
|
|
{
|
|
record_.total_heal_to_party += impact_value;
|
|
dirty = true;
|
|
}
|
|
}
|
|
break;
|
|
case BATTLE_RECORD_LEVEL:
|
|
{
|
|
if (impact_value > 0 && ((record_.level == 0) || (record_.level != impact_value)))
|
|
{
|
|
record_.level = impact_value;
|
|
dirty = true;
|
|
}
|
|
}
|
|
break;
|
|
case BATTLE_RECORD_STRONGPOINT_ATTACK:
|
|
{
|
|
++(record_.strongpoint_attack);
|
|
dirty = true;
|
|
}
|
|
break;
|
|
case BATTLE_RECORD_STRONGPOINT_DEFENSE:
|
|
{
|
|
++(record_.strongpoint_defense);
|
|
dirty = true;
|
|
}
|
|
break;
|
|
#ifdef _NA_006633_20130415_ADD_BATTLEGROUND_ASSIST
|
|
case BATTLE_RECORD_ASSIST:
|
|
{
|
|
++(record_.assist_count);
|
|
dirty = true;
|
|
}
|
|
break;
|
|
#endif //_NA_006633_20130415_ADD_BATTLEGROUND_ASSIST
|
|
#ifdef _NA_007065_20140217_CHAOSZONE_GOLDRUSH
|
|
case BATTLE_RECORD_GOLDPOINT:
|
|
{
|
|
if (impact_value <= 0 && abs(impact_value) > record_.gold_point) {
|
|
// 골드 감소량이 소지골드보다 클 때
|
|
record_.gold_point = 0;
|
|
}
|
|
else
|
|
{
|
|
record_.gold_point += impact_value;
|
|
if (impact_value > 0) {
|
|
//누적 골드획득량 계산
|
|
record_.cumulative_required_gold_point += impact_value;
|
|
}
|
|
}
|
|
dirty = true;
|
|
}
|
|
break;
|
|
#endif //_NA_007065_20140217_CHAOSZONE_GOLDRUSH
|
|
default:
|
|
break;
|
|
}
|
|
|
|
return dirty;
|
|
}
|