This commit is contained in:
aozhiwei 2021-12-15 19:57:47 +08:00
parent f3204a4bd2
commit 43968dd48c
2 changed files with 43 additions and 25 deletions

View File

@ -40,34 +40,56 @@
const int kReviveTimeAdd = 12;
const int kSkinNum = 4;
void PlayerStats::IncWeaponTypeKills(int weapon_id, int val)
WeaponStats& PlayerStats::MustBeWeapon(int weapon_id)
{
auto itr = weapon_stats.find(weapon_id);
if (itr == weapon_stats.end()){
WeaponStats weapon;
weapon_stats[weapon_id] = weapon;
itr = weapon_stats.find(weapon_id);
}
return itr->second;
}
void PlayerStats::IncWeaponTypeDamageOut(int weapon_id, int val)
void PlayerStats::IncWeaponKills(int weapon_id, int val)
{
MustBeWeapon(weapon_id).kills += val;
}
void PlayerStats::IncWeaponTypeObtainCount(int weapon_id, int val)
void PlayerStats::IncWeaponDamageOut(int weapon_id, int val)
{
MustBeWeapon(weapon_id).damage_out += val;
}
void PlayerStats::IncWeaponSlotUseTimes(int weapon_id, int val)
void PlayerStats::IncWeaponObtainCount(int weapon_id, int val)
{
MustBeWeapon(weapon_id).obtain_count += val;
}
void PlayerStats::SetHeroSkillLv(int weapon_id, int skill_lv)
void PlayerStats::IncWeaponUseTimes(int weapon_id, int val)
{
MustBeWeapon(weapon_id).use_times += val;
}
void PlayerStats::SetHeroWeaponLv(int weapon_id, int weapon_lv)
HeroStats& PlayerStats::MustBeHero(int hero_id)
{
auto itr = hero_stats.find(hero_id);
if (itr == hero_stats.end()){
HeroStats hero;
hero_stats[hero_id] = hero;
itr = hero_stats.find(hero_id);
}
return itr->second;
}
void PlayerStats::SetHeroSkillLv(int hero_id, int skill_lv)
{
MustBeHero(hero_id).skill_lv = std::max(MustBeHero(hero_id).skill_lv, skill_lv);
}
void PlayerStats::SetHeroWeaponLv(int hero_id, int weapon_lv)
{
MustBeHero(hero_id).weapon_lv = std::max(MustBeHero(hero_id).weapon_lv, weapon_lv);
}
Human::Human():Creature()

View File

@ -22,17 +22,12 @@ struct HumanBehavior
int total_destory_box_times = 0;
};
struct WeaponTypeStats
struct WeaponStats
{
int weapon_id = 0;
int kills = 0;
int damage_out = 0;
int obtain_count = 0;
};
struct WeaponSlotStats
{
int slot = 0;
int use_times = 0;
};
@ -68,8 +63,7 @@ struct PlayerStats
int ride_car_kills = 0;
int max_hero_skill_lv = 0;
std::map<int, WeaponTypeStats> weapon_type_stats;
std::map<int, WeaponSlotStats> weapon_slot_stats;
std::map<int, WeaponStats> weapon_stats;
std::map<int, HeroStats> hero_stats;
int gold = 0;
@ -89,12 +83,14 @@ struct PlayerStats
int dead_times = 0;
void IncWeaponTypeKills(int weapon_id, int val);
void IncWeaponTypeDamageOut(int weapon_id, int val);
void IncWeaponTypeObtainCount(int weapon_id, int val);
void IncWeaponSlotUseTimes(int weapon_id, int val);
void SetHeroSkillLv(int weapon_id, int skill_lv);
void SetHeroWeaponLv(int weapon_id, int weapon_lv);
WeaponStats& MustBeWeapon(int weapon_id);
void IncWeaponKills(int weapon_id, int val);
void IncWeaponDamageOut(int weapon_id, int val);
void IncWeaponObtainCount(int weapon_id, int val);
void IncWeaponUseTimes(int weapon_id, int val);
HeroStats& MustBeHero(int hero_id);
void SetHeroSkillLv(int hero_id, int skill_lv);
void SetHeroWeaponLv(int hero_id, int weapon_lv);
};
struct xtimer_list;