1
This commit is contained in:
parent
6ac6bf7748
commit
b463c11be1
@ -144,29 +144,6 @@ void FrameEvent::AddBulletNumChg(Human* hum)
|
||||
hum->chged_bullet_nums_.push_back(idx);
|
||||
}
|
||||
|
||||
#if 0
|
||||
void FrameEvent::AddTankBulletNumChg(Human* hum)
|
||||
{
|
||||
chged_tank_bullet_nums_.push_back(hum);
|
||||
int idx = chged_tank_bullet_nums_.size() - 1;
|
||||
hum->chged_tank_bullet_nums_.push_back(idx);
|
||||
}
|
||||
|
||||
void FrameEvent::AddTankOilValueChg(Human* hum)
|
||||
{
|
||||
chged_tank_oil_value_.push_back(hum);
|
||||
int idx = chged_tank_oil_value_.size() - 1;
|
||||
hum->chged_tank_oil_value_.push_back(idx);
|
||||
}
|
||||
|
||||
void FrameEvent::AddTankOilMaxChg(Human* hum)
|
||||
{
|
||||
chged_tank_oil_max_.push_back(hum);
|
||||
int idx = chged_tank_oil_max_.size() - 1;
|
||||
hum->chged_tank_oil_max_.push_back(idx);
|
||||
}
|
||||
#endif
|
||||
|
||||
void FrameEvent::AddSmoke(Bullet* bullet, int item_id, a8::Vec2 pos)
|
||||
{
|
||||
{
|
||||
@ -365,17 +342,6 @@ void FrameEvent::Clear()
|
||||
if (!chged_bullet_nums_.empty()) {
|
||||
chged_bullet_nums_.clear();
|
||||
}
|
||||
#if 0
|
||||
if (!chged_tank_bullet_nums_.empty()) {
|
||||
chged_tank_bullet_nums_.clear();
|
||||
}
|
||||
if (!chged_tank_oil_value_.empty()) {
|
||||
chged_tank_oil_value_.clear();
|
||||
}
|
||||
if (!chged_tank_oil_max_.empty()) {
|
||||
chged_tank_oil_max_.clear();
|
||||
}
|
||||
#endif
|
||||
if (!chged_buffs_.empty()) {
|
||||
chged_buffs_.clear();
|
||||
}
|
||||
|
@ -17,11 +17,6 @@ public:
|
||||
void AddSmoke(Bullet* bullet, int item_id, a8::Vec2 pos);
|
||||
void AddExplosionEx(Human* sender, int item_id, a8::Vec2 bomb_pos, int effect);
|
||||
void AddBulletNumChg(Human* hum);
|
||||
#if 0
|
||||
void AddTankBulletNumChg(Human* hum);
|
||||
void AddTankOilValueChg(Human* hum);
|
||||
void AddTankOilMaxChg(Human* hum);
|
||||
#endif
|
||||
void AddHpChg(Human* hum);
|
||||
void AddWeaponAmmoChg(Human* hum);
|
||||
void AddBuff(Human* hum, Buff* buff);
|
||||
@ -46,11 +41,6 @@ private:
|
||||
std::vector<std::tuple<Human*, ::cs::MFBuffChg>> chged_buffs_;
|
||||
std::vector<std::tuple<Human*, int, int>> chged_items_;
|
||||
std::vector<Human*> chged_bullet_nums_;
|
||||
#if 0
|
||||
std::vector<Human*> chged_tank_bullet_nums_;
|
||||
std::vector<Human*> chged_tank_oil_value_;
|
||||
std::vector<Human*> chged_tank_oil_max_;
|
||||
#endif
|
||||
std::vector<std::tuple<Human*, int, int>> chged_weapon_ammo_;
|
||||
std::vector<Human*> chged_hps_;
|
||||
std::vector<Human*> chged_skillcds_;
|
||||
|
@ -458,6 +458,24 @@ void Human::Shot(a8::Vec2& target_dir, bool& shot_ok)
|
||||
shot_ok = true;
|
||||
}
|
||||
|
||||
void Human::CarShot(a8::Vec2& target_dir)
|
||||
{
|
||||
if (!car_weapon.meta) {
|
||||
return;
|
||||
}
|
||||
|
||||
InternalShot(this,
|
||||
car_weapon.meta,
|
||||
car_weapon.GetUpgradeMeta(),
|
||||
car_weapon.bullet_meta,
|
||||
car_weapon.weapon_lv,
|
||||
0,
|
||||
5,
|
||||
false);
|
||||
|
||||
last_shot_frameno_ = room->GetFrameNo();
|
||||
}
|
||||
|
||||
void Human::RecalcSelfCollider()
|
||||
{
|
||||
if (!self_collider_) {
|
||||
@ -470,7 +488,10 @@ void Human::RecalcSelfCollider()
|
||||
Buff* buff = GetBuffByEffectId(kBET_Car);
|
||||
if (buff) {
|
||||
MetaData::Equip* equip_meta = MetaMgr::Instance()->GetEquip(buff->meta->param4);
|
||||
if (equip_meta && equip_meta->i->rad() > 1) {
|
||||
if (equip_meta &&
|
||||
equip_meta->i->rad() > 1 &&
|
||||
equip_meta->i->equip_type() == EQUIP_TYPE_CAR
|
||||
) {
|
||||
self_collider_->rad = equip_meta->i->rad();
|
||||
}
|
||||
}
|
||||
@ -2092,17 +2113,6 @@ void Human::ClearFrameData()
|
||||
if (!chged_bullet_nums_.empty()) {
|
||||
chged_bullet_nums_.clear();
|
||||
}
|
||||
#if 0
|
||||
if (!chged_tank_bullet_nums_.empty()) {
|
||||
chged_tank_bullet_nums_.clear();
|
||||
}
|
||||
if (!chged_tank_oil_value_.empty()){
|
||||
chged_tank_oil_value_.clear();
|
||||
}
|
||||
if (!chged_tank_oil_max_.empty()){
|
||||
chged_tank_oil_max_.clear();
|
||||
}
|
||||
#endif
|
||||
if (!chged_hps_.empty()) {
|
||||
chged_hps_.clear();
|
||||
}
|
||||
@ -2866,6 +2876,21 @@ void Human::ProcBuffEffect(Human* caster, Buff* buff)
|
||||
RecalcBuffAttr();
|
||||
if (buff->meta->i->buff_effect() == kBET_Car) {
|
||||
RecalcSelfCollider();
|
||||
MetaData::Equip* equip_meta = MetaMgr::Instance()->GetEquip(buff->meta->param4);
|
||||
if (equip_meta &&
|
||||
equip_meta->i->equip_type() == EQUIP_TYPE_CAR &&
|
||||
equip_meta->i->equip_subtype() == 1
|
||||
) {
|
||||
MetaData::Equip* car_weapon_meta = MetaMgr::Instance()->GetEquip(equip_meta->int_param1);
|
||||
if (car_weapon_meta) {
|
||||
car_weapon.weapon_idx = 100;
|
||||
car_weapon.weapon_id = car_weapon_meta->i->id();
|
||||
car_weapon.weapon_lv = 1;
|
||||
car_weapon.ammo = 1;
|
||||
car_weapon.meta = car_weapon_meta;
|
||||
car_weapon.Recalc();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -99,6 +99,7 @@ class Human : public MoveableEntity
|
||||
long long real_dead_frameno = 0;
|
||||
|
||||
Weapon default_weapon;
|
||||
Weapon car_weapon;
|
||||
std::vector<Weapon> weapons;
|
||||
Weapon* curr_weapon = nullptr;
|
||||
|
||||
@ -164,6 +165,7 @@ class Human : public MoveableEntity
|
||||
long long GetRealDeadFrameNo(Room* room);
|
||||
void FillMFTeamData(cs::MFTeamData* team_data, bool is_game_over);
|
||||
void Shot(a8::Vec2& target_dir, bool& shot_ok);
|
||||
void CarShot(a8::Vec2& target_dir);
|
||||
void RecalcSelfCollider();
|
||||
bool IsCollisionInMapService();
|
||||
void FindPathInMapService();
|
||||
@ -352,11 +354,6 @@ protected:
|
||||
std::vector<int> chged_buffs_;
|
||||
std::set<Human*> observers_;
|
||||
std::vector<int> chged_bullet_nums_;
|
||||
#if 0
|
||||
std::vector<int> chged_tank_bullet_nums_;
|
||||
std::vector<int> chged_tank_oil_value_;
|
||||
std::vector<int> chged_tank_oil_max_;
|
||||
#endif
|
||||
std::vector<int> chged_hps_;
|
||||
std::vector<int> chged_skillcds_;
|
||||
std::vector<int> chged_items_;
|
||||
|
@ -169,6 +169,9 @@ void Player::UpdateShot()
|
||||
return;
|
||||
}
|
||||
Weapon* p_weapon = curr_weapon;
|
||||
if (car_weapon.meta) {
|
||||
p_weapon = &car_weapon;
|
||||
}
|
||||
if (shot_hold) {
|
||||
++series_shot_frames;
|
||||
if (last_shot_frameno_ == 0 ||
|
||||
@ -319,6 +322,11 @@ void Player::UpdateUseSkill()
|
||||
|
||||
void Player::Shot()
|
||||
{
|
||||
if (car_weapon.meta) {
|
||||
CarShot(attack_dir);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!curr_weapon->meta) {
|
||||
return;
|
||||
}
|
||||
@ -406,11 +414,7 @@ void Player::Shot()
|
||||
AutoLoadingBullet();
|
||||
}
|
||||
last_shot_frameno_ = room->GetFrameNo();
|
||||
#if 1
|
||||
room->frame_event.AddWeaponAmmoChg(this);
|
||||
#else
|
||||
need_sync_active_player = true;
|
||||
#endif
|
||||
}
|
||||
|
||||
void Player::ProcInteraction()
|
||||
|
Loading…
x
Reference in New Issue
Block a user