This commit is contained in:
aozhiwei 2021-06-15 18:47:10 +08:00
parent 963031c2e1
commit c98ecd1a2e
2 changed files with 17 additions and 3 deletions

View File

@ -173,6 +173,18 @@ void Obstacle::FillMFObjectFull(Room* room, Human* hum, cs::MFObjectFull* full_d
p->set_door_height(door_state1_->height());
}
}
if (meta->i->thing_type() == kObstacleHideHouse) {
ObstacleData* data = room->GetPermanentObstacleData(GetUniId());
if (!a8::HasBitFlag(data->flags, kHealth)) {
data->health = health_;
a8::SetBitFlag(data->flags, kHealth);
}
if (GetInteractionData(hum)) {
p->set_button_name("躲藏");
} else {
p->set_button_name("脱离");
}
}
}
void Obstacle::GetAabbBox(AabbCollider& aabb_box)
@ -638,9 +650,10 @@ void Obstacle::DoHideHouseInteraction(Human* sender)
{
auto p = GetInteractionData(sender);
if (p) {
sender->SetPos(std::get<1>(*p));
ClearObstacleBuff(sender);
sender->SetPos(std::get<1>(*p));
} else {
a8::Vec2 old_pos = sender->GetPos();
sender->SetPos(GetPos());
AddObstacleBuff(sender);
ObstacleData* p = sender->room->GetPermanentObstacleData(GetUniId());
@ -652,8 +665,9 @@ void Obstacle::DoHideHouseInteraction(Human* sender)
p->interaction_humans = new std::map<int, std::tuple<long long, a8::Vec2>>();
}
(*p->interaction_humans)[sender->GetUniId()] = std::make_tuple
(sender->room->GetFrameNo(), sender->GetPos());
(sender->room->GetFrameNo(), old_pos);
}
sender->AddToNewObjects(this);
}
std::tuple<long long, a8::Vec2>* Obstacle::GetInteractionData(Human* sender)

View File

@ -284,7 +284,7 @@ message MFObstacleFull
optional float door_width = 27; //
optional float door_height = 28; //
optional int32 door_open_times = 29; //,/ ++times 0:
optional string button_name = 30; //
}
//-