This commit is contained in:
aozhiwei 2023-04-07 21:20:33 +08:00
parent 170650a4ac
commit 2a25b7b7c3

View File

@ -298,6 +298,24 @@ bool Obstacle::DoInteraction(Human* sender)
Die(sender->room);
sender->DropItems(this);
BroadcastFullState(sender->room);
if (meta->delay_destroy() > 0) {
sender->room->xtimer.SetTimeoutEx
(meta->delay_destroy() / FRAME_RATE_MS,
[sender, obj_uniid = GetUniId()] (int event, const a8::Args* args)
{
if (a8::TIMER_EXEC_EVENT == event) {
Entity* entity = sender->room->GetEntityByUniId(obj_uniid);
if (entity && entity->IsEntityType(ET_Obstacle)) {
Obstacle* ob = (Obstacle*)entity;
if (ob->IsRoomObstacle()) {
sender->room->RemoveObjectLater((RoomObstacle*)entity);
}
}
return;
}
},
&sender->xtimer_attacher);
}
}
}
break;