2022-09-08 19:45:40 +08:00

71 lines
1.3 KiB
C++

#include "precompile.h"
#include "weapon.h"
#include "cs_proto.pb.h"
#include "metamgr.h"
void Weapon::Clear()
{
weapon_uniid = 0;
weapon_id = 0;
weapon_lv = 0;
ammo = 0;
meta = 0;
bullet_meta = nullptr;
}
void Weapon::ToPB(cs::MFWeapon* pb_obj)
{
pb_obj->set_weapon_uniid(a8::XValue(weapon_uniid).GetString());
pb_obj->set_weapon_id(weapon_id);
pb_obj->set_weapon_lv(weapon_lv);
pb_obj->set_ammo(ammo);
pb_obj->set_volume(GetClipVolume());
}
void Weapon::Recalc()
{
bullet_meta = MetaMgr::Instance()->GetEquip(meta->i->use_bullet());
}
int Weapon::GetClipVolume()
{
return GetAttrValue(kHAT_Volume);
}
float Weapon::GetAttrValue(HumanAttrType_e attr_type)
{
if (!meta) {
return 0;
}
switch (attr_type) {
case kHAT_Atk:
{
return meta->i->atk();
}
break;
case kHAT_FireRate:
{
return meta->i->fire_rate();
}
break;
case kHAT_Volume:
{
return meta->i->clip_volume();
}
break;
case kHAT_MaxHp:
{
return meta->i->max_hp();
}
break;
case kHAT_ReloadTime:
{
return meta->i->reload_time();
}
break;
default:
return 0;
}
}