[Game][Arrows] ArrowItem should not send deletion game commands by itself (#6932)

Took 13 minutes

Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
This commit is contained in:
BruebachL 2026-05-23 02:20:41 +02:00 committed by GitHub
parent d2164c3f08
commit 98c00c55ed
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 13 additions and 6 deletions

View file

@ -38,11 +38,11 @@ ArrowItem::ArrowItem(PlayerLogic *_player,
if (startItem) {
connect(startItem, &ArrowTarget::scenePositionChanged, this, doUpdate);
connect(startItem, &QObject::destroyed, this, &ArrowItem::delArrow);
connect(startItem, &QObject::destroyed, this, &ArrowItem::onTargetDestroyed);
}
if (targetItem) {
connect(targetItem, &ArrowTarget::scenePositionChanged, this, doUpdate);
connect(targetItem, &QObject::destroyed, this, &ArrowItem::delArrow);
connect(targetItem, &QObject::destroyed, this, &ArrowItem::onTargetDestroyed);
}
if (startItem && targetItem) {
@ -50,6 +50,11 @@ ArrowItem::ArrowItem(PlayerLogic *_player,
}
}
void ArrowItem::onTargetDestroyed()
{
emit requestDeletion(id);
}
void ArrowItem::delArrow()
{
if (targetItem) {
@ -151,9 +156,7 @@ void ArrowItem::mousePressEvent(QGraphicsSceneMouseEvent *event)
event->accept();
if (event->button() == Qt::RightButton) {
Command_DeleteArrow cmd;
cmd.set_arrow_id(id);
player->getPlayerActions()->sendGameCommand(cmd);
emit requestDeletion(id);
}
}