This commit is contained in:
aozhiwei 2024-08-23 16:40:40 +08:00
parent 17166c21d3
commit c02c4542c4

View File

@ -67,22 +67,26 @@ void BoxDrop::OnHumanDeadDrop(Human* hum)
if (room_->GetVictoryTeam()) {
return;
}
int rnd = a8::RandEx(0, 100);
if (hum->stats->abandon_battle) {
if (rnd <= mt::Param::s().battle_event_end_loss_rate_quit * 100) {
Drop(hum->box_num, hum->GetPos().ToGlmVec3());
hum->box_num = 0;
room_->frame_event.AddPropChgEx(hum->GetWeakPtrRef(), kPropBoxNum, 0, hum->box_num,
0, 0, false);
}
} else {
if (rnd <= mt::Param::s().battle_event_end_loss_rate_dead * 100) {
Drop(hum->box_num, hum->GetPos().ToGlmVec3());
hum->box_num = 0;
room_->frame_event.AddPropChgEx(hum->GetWeakPtrRef(), kPropBoxNum, 0, hum->box_num,
0, 0, false);
int drop_num = 0;
for (int i = 0; i < hum->box_num; ++i) {
int rnd = a8::RandEx(0, 100);
if (hum->stats->abandon_battle) {
if (rnd <= mt::Param::s().battle_event_end_loss_rate_quit * 100) {
++drop_num;
}
} else {
if (rnd <= mt::Param::s().battle_event_end_loss_rate_dead * 100) {
++drop_num;
}
}
}
drop_num = std::max(drop_num, hum->box_num);
if (drop_num > 0) {
Drop(drop_num, hum->GetPos().ToGlmVec3());
hum->box_num -= drop_num;
room_->frame_event.AddPropChgEx(hum->GetWeakPtrRef(), kPropBoxNum, 0, hum->box_num,
0, 0, false);
}
}
void BoxDrop::Drop(int num, const glm::vec3& center)