2023-04-09 05:35:35 +00:00
|
|
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
|
2023-03-01 13:41:16 +00:00
|
|
|
import QtQuick
|
|
|
|
|
|
|
|
GraphicsBox {
|
|
|
|
property int spacing: 5
|
|
|
|
property string currentPlayerName: ""
|
|
|
|
property bool interactive: false
|
|
|
|
|
|
|
|
id: root
|
|
|
|
title.text: Backend.translate("Please choose cards")
|
|
|
|
width: cards.count * 100 + spacing * (cards.count - 1) + 25
|
|
|
|
height: 180
|
|
|
|
|
|
|
|
ListModel {
|
|
|
|
id: cards
|
|
|
|
}
|
|
|
|
|
|
|
|
Row {
|
|
|
|
x: 20
|
|
|
|
y: 35
|
|
|
|
spacing: root.spacing
|
|
|
|
|
|
|
|
Repeater {
|
|
|
|
model: cards
|
|
|
|
|
|
|
|
CardItem {
|
|
|
|
cid: model.cid
|
|
|
|
name: model.name
|
|
|
|
suit: model.suit
|
|
|
|
number: model.number
|
|
|
|
autoBack: false
|
|
|
|
selectable: model.selectable
|
|
|
|
footnote: model.footnote
|
|
|
|
footnoteVisible: true
|
|
|
|
onClicked: {
|
|
|
|
if (root.interactive && selectable) {
|
|
|
|
root.interactive = false;
|
|
|
|
roomScene.state = "notactive";
|
|
|
|
ClientInstance.replyToServer("", cid.toString());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function addIds(ids) {
|
|
|
|
ids.forEach((id) => {
|
|
|
|
let data = Backend.callLuaFunction("GetCardData", [id]);
|
|
|
|
data = JSON.parse(data);
|
|
|
|
data.selectable = true;
|
|
|
|
data.footnote = "";
|
|
|
|
cards.append(data);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
function takeAG(g, cid) {
|
|
|
|
for (let i = 0; i < cards.count; i++) {
|
|
|
|
let item = cards.get(i);
|
|
|
|
if (item.cid !== cid) continue;
|
|
|
|
item.footnote = g;
|
|
|
|
item.selectable = false;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|