完成爆炸逻辑

This commit is contained in:
aozhiwei 2019-07-11 11:01:49 +08:00
parent af0efac2a5
commit bc2151140b
3 changed files with 11 additions and 11 deletions

View File

@ -5,6 +5,7 @@
#include "bullet.h"
#include "metamgr.h"
#include "typeconvert.h"
#include "room.h"
void FrameEvent::AddAirDrop(int appear_time, int box_id, a8::Vec2 box_pos)
{
@ -86,24 +87,25 @@ void FrameEvent::AddBullet(Human* hum, a8::Vec2 born_pos, a8::Vec2 dir, float fl
void FrameEvent::AddExplosion(int item_id, a8::Vec2 bomb_pos, int effect)
{
#if 0
{
auto& tuple = a8::FastAppend(explosions_);
std::get<0>(tuple) = bullet->player;
auto& p = std::get<1>(tuple);
auto& p = a8::FastAppend(explosions_);
p.set_item_id(item_id);
TypeConvert::ToPb(bomb_pos, p.mutable_pos());
if (effect != 0) {
p.set_effect(effect);
}
}
{
int explosion_idx = explosions_.size() - 1;
for (auto& cell : bullet->player->grid_list) {
std::set<GridCell*> grid_list;
room->grid_service.GetAllCellsByXy(bomb_pos.x, bomb_pos.y, grid_list);
for (auto& cell : grid_list) {
for (auto& hum : cell->human_list) {
hum->explosions_.push_back(explosion_idx);
}
}
}
#endif
}
void FrameEvent::AddSmoke(Bullet* bullet, int item_id, a8::Vec2 pos)

View File

@ -28,7 +28,7 @@ private:
::google::protobuf::RepeatedPtrField<::cs::MFAirDrop> airdrops_;
std::vector<std::tuple<Human*, ::cs::MFShot>> shots_;
std::vector<std::tuple<Human*, ::cs::MFBullet>> bullets_;
std::vector<std::tuple<Human*, ::cs::MFExplosion>> explosions_;
std::vector<::cs::MFExplosion> explosions_;
std::vector<std::tuple<Human*, ::cs::MFSmoke>> smokes_;
std::vector<std::tuple<Human*, ::cs::MFEmote>> emotes_;
std::vector<std::tuple<Human*, ::cs::MFAddBuff>> add_buffs_;

View File

@ -41,10 +41,8 @@ cs::SMUpdate* FrameMaker::MakeUpdateMsg(const Human* hum)
}
for (int idx : hum->explosions_) {
if (idx < room->frame_event.explosions_.size()) {
auto& tuple = room->frame_event.explosions_[idx];
if (hum->CanSee(std::get<0>(tuple))) {
*msg->add_explosions() = std::get<1>(tuple);
}
auto& p = room->frame_event.explosions_[idx];
*msg->add_explosions() = p;
}
}
for (int idx : hum->smokes_) {