1
This commit is contained in:
parent
c98ecd1a2e
commit
ac113de096
@ -180,9 +180,9 @@ void Obstacle::FillMFObjectFull(Room* room, Human* hum, cs::MFObjectFull* full_d
|
||||
a8::SetBitFlag(data->flags, kHealth);
|
||||
}
|
||||
if (GetInteractionData(hum)) {
|
||||
p->set_button_name("躲藏");
|
||||
} else {
|
||||
p->set_button_name("脱离");
|
||||
} else {
|
||||
p->set_button_name("躲藏");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -648,23 +648,25 @@ void Obstacle::OnCollisionTrigger(Creature* c)
|
||||
|
||||
void Obstacle::DoHideHouseInteraction(Human* sender)
|
||||
{
|
||||
ObstacleData* data = sender->room->GetPermanentObstacleData(GetUniId());
|
||||
if (!a8::HasBitFlag(data->flags, kHealth)) {
|
||||
data->health = health_;
|
||||
a8::SetBitFlag(data->flags, kHealth);
|
||||
}
|
||||
|
||||
auto p = GetInteractionData(sender);
|
||||
if (p) {
|
||||
ClearObstacleBuff(sender);
|
||||
sender->SetPos(std::get<1>(*p));
|
||||
data->interaction_humans->erase(sender->GetUniId());
|
||||
} else {
|
||||
a8::Vec2 old_pos = sender->GetPos();
|
||||
sender->SetPos(GetPos());
|
||||
AddObstacleBuff(sender);
|
||||
ObstacleData* p = sender->room->GetPermanentObstacleData(GetUniId());
|
||||
if (!a8::HasBitFlag(p->flags, kHealth)) {
|
||||
p->health = health_;
|
||||
a8::SetBitFlag(p->flags, kHealth);
|
||||
if (!data->interaction_humans) {
|
||||
data->interaction_humans = new std::map<int, std::tuple<long long, a8::Vec2>>();
|
||||
}
|
||||
if (!p->interaction_humans) {
|
||||
p->interaction_humans = new std::map<int, std::tuple<long long, a8::Vec2>>();
|
||||
}
|
||||
(*p->interaction_humans)[sender->GetUniId()] = std::make_tuple
|
||||
(*data->interaction_humans)[sender->GetUniId()] = std::make_tuple
|
||||
(sender->room->GetFrameNo(), old_pos);
|
||||
}
|
||||
sender->AddToNewObjects(this);
|
||||
|
Loading…
x
Reference in New Issue
Block a user