Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Donald Haase
Cockatrice
Commits
61b82bd6
Commit
61b82bd6
authored
Jun 27, 2010
by
Max-Wilhelm Bruker
Browse files
arrows can target players now
parent
cbf201ed
Changes
25
Show whitespace changes
Inline
Side-by-side
cockatrice/cockatrice.pro
View file @
61b82bd6
...
...
@@ -16,6 +16,7 @@ HEADERS += src/counter.h \
src
/
window_main
.
h
\
src
/
cardzone
.
h
\
src
/
player
.
h
\
src
/
playertarget
.
h
\
src
/
cardlist
.
h
\
src
/
abstractcarditem
.
h
\
src
/
carditem
.
h
\
...
...
@@ -45,6 +46,7 @@ HEADERS += src/counter.h \
src
/
phasestoolbar
.
h
\
src
/
gamescene
.
h
\
src
/
arrowitem
.
h
\
src
/
arrowtarget
.
h
\
src
/
tab
.
h
\
src
/
tab_server
.
h
\
src
/
tab_chatchannel
.
h
\
...
...
@@ -71,6 +73,7 @@ SOURCES += src/counter.cpp \
src
/
window_main
.
cpp
\
src
/
gamesmodel
.
cpp
\
src
/
player
.
cpp
\
src
/
playertarget
.
cpp
\
src
/
cardzone
.
cpp
\
src
/
cardlist
.
cpp
\
src
/
abstractcarditem
.
cpp
\
...
...
@@ -101,6 +104,7 @@ SOURCES += src/counter.cpp \
src
/
phasestoolbar
.
cpp
\
src
/
gamescene
.
cpp
\
src
/
arrowitem
.
cpp
\
src
/
arrowtarget
.
cpp
\
src
/
tab_server
.
cpp
\
src
/
tab_chatchannel
.
cpp
\
src
/
tab_game
.
cpp
\
...
...
cockatrice/src/abstractcarditem.cpp
View file @
61b82bd6
...
...
@@ -9,7 +9,7 @@
#include
<QDebug>
AbstractCardItem
::
AbstractCardItem
(
const
QString
&
_name
,
QGraphicsItem
*
parent
)
:
A
bstractGraphicsItem
(
parent
),
info
(
db
->
getCard
(
_name
)),
name
(
_name
),
tapped
(
false
)
:
A
rrowTarget
(
parent
),
info
(
db
->
getCard
(
_name
)),
name
(
_name
),
tapped
(
false
)
{
setCursor
(
Qt
::
OpenHandCursor
);
setFlag
(
ItemIsSelectable
);
...
...
@@ -51,7 +51,7 @@ void AbstractCardItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *
}
painter
->
drawPixmap
(
translatedPixmap
->
rect
(),
*
translatedPixmap
,
translatedPixmap
->
rect
());
}
else
{
QFont
f
(
"
Serif
"
);
QFont
f
(
"
Times
"
);
f
.
setStyleHint
(
QFont
::
Serif
);
f
.
setPixelSize
(
12
);
painter
->
setFont
(
f
);
...
...
cockatrice/src/abstractcarditem.h
View file @
61b82bd6
#ifndef ABSTRACTCARDITEM_H
#define ABSTRACTCARDITEM_H
#include
"a
bstractgraphicsitem
.h"
#include
"a
rrowtarget
.h"
class
CardInfo
;
const
int
CARD_WIDTH
=
72
;
const
int
CARD_HEIGHT
=
102
;
enum
CardItemType
{
typeCard
=
QGraphicsItem
::
UserType
+
1
,
typeCardDrag
=
QGraphicsItem
::
UserType
+
2
,
typeZone
=
QGraphicsItem
::
UserType
+
3
,
typeOther
=
QGraphicsItem
::
UserType
+
5
};
class
AbstractCardItem
:
public
QObject
,
public
AbstractGraphicsItem
{
class
AbstractCardItem
:
public
QObject
,
public
ArrowTarget
{
Q_OBJECT
protected:
CardInfo
*
info
;
...
...
cockatrice/src/abstractgraphicsitem.h
View file @
61b82bd6
...
...
@@ -3,6 +3,14 @@
#include
<QGraphicsItem>
enum
GraphicsItemType
{
typeCard
=
QGraphicsItem
::
UserType
+
1
,
typeCardDrag
=
QGraphicsItem
::
UserType
+
2
,
typeZone
=
QGraphicsItem
::
UserType
+
3
,
typePlayerTarget
=
QGraphicsItem
::
UserType
+
4
,
typeOther
=
QGraphicsItem
::
UserType
+
5
};
class
AbstractGraphicsItem
:
public
QGraphicsItem
{
protected:
void
paintNumberEllipse
(
int
number
,
int
radius
,
const
QColor
&
color
,
int
position
,
int
count
,
QPainter
*
painter
);
...
...
cockatrice/src/arrowitem.cpp
View file @
61b82bd6
#include
"arrowitem.h"
#include
"playertarget.h"
#include
"carditem.h"
#include
"cardzone.h"
#include
"player.h"
...
...
@@ -8,7 +9,7 @@
#include
<QGraphicsSceneMouseEvent>
#include
<QGraphicsScene>
ArrowItem
::
ArrowItem
(
Player
*
_player
,
int
_id
,
CardItem
*
_startItem
,
CardItem
*
_targetItem
,
const
QColor
&
_color
)
ArrowItem
::
ArrowItem
(
Player
*
_player
,
int
_id
,
ArrowTarget
*
_startItem
,
ArrowTarget
*
_targetItem
,
const
QColor
&
_color
)
:
QGraphicsItem
(),
player
(
_player
),
id
(
_id
),
startItem
(
_startItem
),
targetItem
(
_targetItem
),
color
(
_color
),
fullColor
(
true
)
{
setZValue
(
2000000005
);
...
...
@@ -96,7 +97,7 @@ void ArrowItem::mousePressEvent(QGraphicsSceneMouseEvent *event)
player
->
sendGameCommand
(
new
Command_DeleteArrow
(
-
1
,
id
));
}
ArrowDragItem
::
ArrowDragItem
(
CardItem
*
_startItem
,
const
QColor
&
_color
)
ArrowDragItem
::
ArrowDragItem
(
ArrowTarget
*
_startItem
,
const
QColor
&
_color
)
:
ArrowItem
(
static_cast
<
CardZone
*>
(
_startItem
->
parentItem
())
->
getPlayer
(),
-
1
,
_startItem
,
0
,
_color
)
{
}
...
...
@@ -111,10 +112,12 @@ void ArrowDragItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
QPointF
endPos
=
event
->
scenePos
();
QList
<
QGraphicsItem
*>
colliding
=
scene
()
->
items
(
endPos
);
CardItem
*
cursorItem
=
0
;
ArrowTarget
*
cursorItem
=
0
;
for
(
int
i
=
colliding
.
size
()
-
1
;
i
>=
0
;
i
--
)
if
((
cursorItem
=
qgraphicsitem_cast
<
CardItem
*>
(
colliding
.
at
(
i
))))
if
(
qgraphicsitem_cast
<
PlayerTarget
*>
(
colliding
.
at
(
i
))
||
qgraphicsitem_cast
<
CardItem
*>
(
colliding
.
at
(
i
)))
{
cursorItem
=
static_cast
<
ArrowTarget
*>
(
colliding
.
at
(
i
));
break
;
}
if
((
cursorItem
!=
targetItem
)
&&
targetItem
)
targetItem
->
setBeingPointedAt
(
false
);
if
(
!
cursorItem
)
{
...
...
@@ -139,18 +142,36 @@ void ArrowDragItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
if
(
targetItem
&&
(
targetItem
!=
startItem
))
{
targetItem
->
setBeingPointedAt
(
false
);
CardZone
*
startZone
=
static_cast
<
CardZone
*>
(
startItem
->
parentItem
());
// For now, we can safely assume that the start item is always a card.
// The target item can be a player as well.
CardItem
*
startCard
=
qgraphicsitem_cast
<
CardItem
*>
(
startItem
);
CardItem
*
targetCard
=
qgraphicsitem_cast
<
CardItem
*>
(
targetItem
);
if
(
targetCard
)
{
CardZone
*
targetZone
=
static_cast
<
CardZone
*>
(
targetItem
->
parentItem
());
player
->
sendGameCommand
(
new
Command_CreateArrow
(
-
1
,
startZone
->
getPlayer
()
->
getId
(),
startZone
->
getName
(),
start
Item
->
getId
(),
start
Card
->
getId
(),
targetZone
->
getPlayer
()
->
getId
(),
targetZone
->
getName
(),
targetItem
->
getId
(),
targetCard
->
getId
(),
color
));
}
else
{
PlayerTarget
*
targetPlayer
=
qgraphicsitem_cast
<
PlayerTarget
*>
(
targetItem
);
player
->
sendGameCommand
(
new
Command_CreateArrow
(
-
1
,
startZone
->
getPlayer
()
->
getId
(),
startZone
->
getName
(),
startCard
->
getId
(),
static_cast
<
Player
*>
(
targetPlayer
->
parentItem
())
->
getId
(),
QString
(),
-
1
,
color
));
}
}
deleteLater
();
for
(
int
i
=
0
;
i
<
childArrows
.
size
();
++
i
)
...
...
cockatrice/src/arrowitem.h
View file @
61b82bd6
...
...
@@ -7,6 +7,7 @@ class CardItem;
class
QGraphicsSceneMouseEvent
;
class
QMenu
;
class
Player
;
class
ArrowTarget
;
class
ArrowItem
:
public
QObject
,
public
QGraphicsItem
{
Q_OBJECT
...
...
@@ -16,12 +17,12 @@ private:
protected:
Player
*
player
;
int
id
;
CardItem
*
startItem
,
*
targetItem
;
ArrowTarget
*
startItem
,
*
targetItem
;
QColor
color
;
bool
fullColor
;
void
mousePressEvent
(
QGraphicsSceneMouseEvent
*
event
);
public:
ArrowItem
(
Player
*
_player
,
int
_id
,
CardItem
*
_startItem
,
CardItem
*
_targetItem
,
const
QColor
&
color
);
ArrowItem
(
Player
*
_player
,
int
_id
,
ArrowTarget
*
_startItem
,
ArrowTarget
*
_targetItem
,
const
QColor
&
color
);
void
paint
(
QPainter
*
painter
,
const
QStyleOptionGraphicsItem
*
option
,
QWidget
*
widget
);
QRectF
boundingRect
()
const
{
return
path
.
boundingRect
();
}
QPainterPath
shape
()
const
{
return
path
;
}
...
...
@@ -29,10 +30,10 @@ public:
void
updatePath
(
const
QPointF
&
endPoint
);
int
getId
()
const
{
return
id
;
}
void
setStartItem
(
CardItem
*
_item
)
{
startItem
=
_item
;
}
void
setTargetItem
(
CardItem
*
_item
)
{
targetItem
=
_item
;
}
CardItem
*
getStartItem
()
const
{
return
startItem
;
}
CardItem
*
getTargetItem
()
const
{
return
targetItem
;
}
void
setStartItem
(
ArrowTarget
*
_item
)
{
startItem
=
_item
;
}
void
setTargetItem
(
ArrowTarget
*
_item
)
{
targetItem
=
_item
;
}
ArrowTarget
*
getStartItem
()
const
{
return
startItem
;
}
ArrowTarget
*
getTargetItem
()
const
{
return
targetItem
;
}
};
class
ArrowDragItem
:
public
ArrowItem
{
...
...
@@ -40,7 +41,7 @@ class ArrowDragItem : public ArrowItem {
private:
QList
<
ArrowDragItem
*>
childArrows
;
public:
ArrowDragItem
(
CardItem
*
_startItem
,
const
QColor
&
_color
);
ArrowDragItem
(
ArrowTarget
*
_startItem
,
const
QColor
&
_color
);
void
addChildArrow
(
ArrowDragItem
*
childArrow
);
protected:
void
mouseMoveEvent
(
QGraphicsSceneMouseEvent
*
event
);
...
...
cockatrice/src/arrowtarget.cpp
0 → 100644
View file @
61b82bd6
#include
"arrowtarget.h"
ArrowTarget
::
ArrowTarget
(
QGraphicsItem
*
parent
)
:
AbstractGraphicsItem
(
parent
),
beingPointedAt
(
false
)
{
}
void
ArrowTarget
::
setBeingPointedAt
(
bool
_beingPointedAt
)
{
beingPointedAt
=
_beingPointedAt
;
update
();
}
cockatrice/src/arrowtarget.h
0 → 100644
View file @
61b82bd6
#ifndef ARROWTARGET_H
#define ARROWTARGET_H
#include
"abstractgraphicsitem.h"
class
ArrowTarget
:
public
AbstractGraphicsItem
{
private:
bool
beingPointedAt
;
public:
ArrowTarget
(
QGraphicsItem
*
parent
=
0
);
void
setBeingPointedAt
(
bool
_beingPointedAt
);
bool
getBeingPointedAt
()
const
{
return
beingPointedAt
;
}
};
#endif
\ No newline at end of file
cockatrice/src/carditem.cpp
View file @
61b82bd6
...
...
@@ -12,7 +12,7 @@
#include
"settingscache.h"
CardItem
::
CardItem
(
Player
*
_owner
,
const
QString
&
_name
,
int
_cardid
,
QGraphicsItem
*
parent
)
:
AbstractCardItem
(
_name
,
parent
),
owner
(
_owner
),
id
(
_cardid
),
attacking
(
false
),
facedown
(
false
),
destroyOnZoneChange
(
false
),
doesntUntap
(
false
),
beingPointedAt
(
false
),
dragItem
(
NULL
)
:
AbstractCardItem
(
_name
,
parent
),
owner
(
_owner
),
id
(
_cardid
),
attacking
(
false
),
facedown
(
false
),
destroyOnZoneChange
(
false
),
doesntUntap
(
false
),
dragItem
(
NULL
)
{
owner
->
addCard
(
this
);
...
...
@@ -117,8 +117,8 @@ void CardItem::retranslateUi()
aDoesntUntap
->
setText
(
tr
(
"Toggle &normal untapping"
));
aFlip
->
setText
(
tr
(
"&Flip"
));
aClone
->
setText
(
tr
(
"&Clone"
));
aAttach
->
setText
(
tr
(
"Attach to card..."
));
aUnattach
->
setText
(
tr
(
"Unattach"
));
aAttach
->
setText
(
tr
(
"
&
Attach to card..."
));
aUnattach
->
setText
(
tr
(
"Unattac
&
h"
));
aSetPT
->
setText
(
tr
(
"Set &P/T..."
));
aSetAnnotation
->
setText
(
tr
(
"&Set annotation..."
));
QStringList
counterColors
;
...
...
@@ -157,7 +157,7 @@ void CardItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
++
i
;
}
if
(
!
pt
.
isEmpty
())
{
QFont
font
(
"
Serif
"
);
QFont
font
(
"
Times
"
);
font
.
setPixelSize
(
16
);
painter
->
setFont
(
font
);
QPen
pen
(
Qt
::
white
);
...
...
@@ -168,7 +168,7 @@ void CardItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
painter
->
drawText
(
QRectF
(
0
,
0
,
boundingRect
().
width
()
-
5
,
boundingRect
().
height
()
-
5
),
Qt
::
AlignRight
|
Qt
::
AlignBottom
,
pt
);
}
if
(
b
eingPointedAt
)
if
(
getB
eingPointedAt
()
)
painter
->
fillRect
(
boundingRect
(),
QBrush
(
QColor
(
255
,
0
,
0
,
100
)));
painter
->
restore
();
}
...
...
@@ -214,12 +214,6 @@ void CardItem::setPT(const QString &_pt)
update
();
}
void
CardItem
::
setBeingPointedAt
(
bool
_beingPointedAt
)
{
beingPointedAt
=
_beingPointedAt
;
update
();
}
void
CardItem
::
resetState
()
{
attacking
=
false
;
...
...
@@ -286,7 +280,7 @@ void CardItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
QListIterator
<
QGraphicsItem
*>
itemIterator
(
scene
()
->
selectedItems
());
while
(
itemIterator
.
hasNext
())
{
CardItem
*
c
=
qgraphicsitem_cast
<
CardItem
*>
(
itemIterator
.
next
());
if
(
!
c
)
if
(
!
c
||
(
c
==
this
)
)
continue
;
if
(
c
->
parentItem
()
!=
parentItem
())
continue
;
...
...
cockatrice/src/carditem.h
View file @
61b82bd6
...
...
@@ -25,7 +25,6 @@ private:
bool
destroyOnZoneChange
;
bool
doesntUntap
;
QPoint
gridPoint
;
bool
beingPointedAt
;
CardDragItem
*
dragItem
;
QList
<
QAction
*>
aAddCounter
,
aSetCounter
,
aRemoveCounter
;
...
...
@@ -62,7 +61,6 @@ public:
void
setPT
(
const
QString
&
_pt
);
bool
getDestroyOnZoneChange
()
const
{
return
destroyOnZoneChange
;
}
void
setDestroyOnZoneChange
(
bool
_destroy
)
{
destroyOnZoneChange
=
_destroy
;
}
void
setBeingPointedAt
(
bool
_beingPointedAt
);
void
resetState
();
void
processCardInfo
(
ServerInfo_Card
*
info
);
...
...
cockatrice/src/messagelogwidget.cpp
View file @
61b82bd6
...
...
@@ -212,8 +212,16 @@ void MessageLogWidget::logCreateToken(Player *player, QString cardName, QString
append
(
tr
(
"%1 creates token: %2%3."
).
arg
(
sanitizeHtml
(
player
->
getName
())).
arg
(
QString
(
"<font color=
\"
blue
\"
>%1</font>"
).
arg
(
sanitizeHtml
(
cardName
))).
arg
(
pt
.
isEmpty
()
?
QString
()
:
QString
(
" (%1)"
).
arg
(
sanitizeHtml
(
pt
))));
}
void
MessageLogWidget
::
logCreateArrow
(
Player
*
player
,
Player
*
startPlayer
,
QString
startCard
,
Player
*
targetPlayer
,
QString
targetCard
)
void
MessageLogWidget
::
logCreateArrow
(
Player
*
player
,
Player
*
startPlayer
,
QString
startCard
,
Player
*
targetPlayer
,
QString
targetCard
,
bool
playerTarget
)
{
if
(
playerTarget
)
append
(
tr
(
"%1 points from %2's %3 to %4."
)
.
arg
(
sanitizeHtml
(
player
->
getName
()))
.
arg
(
sanitizeHtml
(
startPlayer
->
getName
()))
.
arg
(
sanitizeHtml
(
startCard
))
.
arg
(
sanitizeHtml
(
targetPlayer
->
getName
()))
);
else
append
(
tr
(
"%1 points from %2's %3 to %4's %5."
)
.
arg
(
sanitizeHtml
(
player
->
getName
()))
.
arg
(
sanitizeHtml
(
startPlayer
->
getName
()))
...
...
@@ -323,7 +331,7 @@ void MessageLogWidget::connectToPlayer(Player *player)
connect
(
player
,
SIGNAL
(
logSay
(
Player
*
,
QString
)),
this
,
SLOT
(
logSay
(
Player
*
,
QString
)));
connect
(
player
,
SIGNAL
(
logShuffle
(
Player
*
)),
this
,
SLOT
(
logShuffle
(
Player
*
)));
connect
(
player
,
SIGNAL
(
logRollDie
(
Player
*
,
int
,
int
)),
this
,
SLOT
(
logRollDie
(
Player
*
,
int
,
int
)));
connect
(
player
,
SIGNAL
(
logCreateArrow
(
Player
*
,
Player
*
,
QString
,
Player
*
,
QString
)),
this
,
SLOT
(
logCreateArrow
(
Player
*
,
Player
*
,
QString
,
Player
*
,
QString
)));
connect
(
player
,
SIGNAL
(
logCreateArrow
(
Player
*
,
Player
*
,
QString
,
Player
*
,
QString
,
bool
)),
this
,
SLOT
(
logCreateArrow
(
Player
*
,
Player
*
,
QString
,
Player
*
,
QString
,
bool
)));
connect
(
player
,
SIGNAL
(
logCreateToken
(
Player
*
,
QString
,
QString
)),
this
,
SLOT
(
logCreateToken
(
Player
*
,
QString
,
QString
)));
connect
(
player
,
SIGNAL
(
logSetCounter
(
Player
*
,
QString
,
int
,
int
)),
this
,
SLOT
(
logSetCounter
(
Player
*
,
QString
,
int
,
int
)));
connect
(
player
,
SIGNAL
(
logSetCardCounter
(
Player
*
,
QString
,
int
,
int
,
int
)),
this
,
SLOT
(
logSetCardCounter
(
Player
*
,
QString
,
int
,
int
,
int
)));
...
...
cockatrice/src/messagelogwidget.h
View file @
61b82bd6
...
...
@@ -41,7 +41,7 @@ public slots:
void
logMoveCard
(
Player
*
player
,
QString
cardName
,
CardZone
*
startZone
,
int
oldX
,
CardZone
*
targetZone
,
int
newX
);
void
logDestroyCard
(
Player
*
player
,
QString
cardName
);
void
logCreateToken
(
Player
*
player
,
QString
cardName
,
QString
pt
);
void
logCreateArrow
(
Player
*
player
,
Player
*
startPlayer
,
QString
startCard
,
Player
*
targetPlayer
,
QString
targetCard
);
void
logCreateArrow
(
Player
*
player
,
Player
*
startPlayer
,
QString
startCard
,
Player
*
targetPlayer
,
QString
targetCard
,
bool
playerTarget
);
void
logSetCardCounter
(
Player
*
player
,
QString
cardName
,
int
counterId
,
int
value
,
int
oldValue
);
void
logSetTapped
(
Player
*
player
,
QString
cardName
,
bool
tapped
);
void
logSetCounter
(
Player
*
player
,
QString
counterName
,
int
value
,
int
oldValue
);
...
...
cockatrice/src/player.cpp
View file @
61b82bd6
#include
"player.h"
#include
"client.h"
#include
"cardzone.h"
#include
"playertarget.h"
#include
"counter.h"
#include
"arrowitem.h"
#include
"zoneviewzone.h"
...
...
@@ -28,6 +29,9 @@ Player::Player(const QString &_name, int _id, bool _local, Client *_client, TabG
connect
(
settingsCache
,
SIGNAL
(
playerBgPathChanged
()),
this
,
SLOT
(
updateBgPixmap
()));
updateBgPixmap
();
playerTarget
=
new
PlayerTarget
(
name
,
CARD_WIDTH
+
counterAreaWidth
+
5
,
this
);
playerTarget
->
setPos
(
QPointF
(
0
,
0
));
QPointF
base
=
QPointF
(
counterAreaWidth
,
50
);
PileZone
*
deck
=
new
PileZone
(
this
,
"deck"
,
true
,
false
,
this
);
...
...
@@ -207,6 +211,7 @@ Player::Player(const QString &_name, int _id, bool _local, Client *_client, TabG
countersMenu
=
0
;
sbMenu
=
0
;
aCreateAnotherToken
=
0
;
aCardMenu
=
0
;
}
rearrangeZones
();
...
...
@@ -490,7 +495,13 @@ void Player::eventCreateArrows(Event_CreateArrows *event)
ArrowItem
*
arrow
=
addArrow
(
eventArrowList
[
i
]);
if
(
!
arrow
)
return
;
emit
logCreateArrow
(
this
,
arrow
->
getStartItem
()
->
getOwner
(),
arrow
->
getStartItem
()
->
getName
(),
arrow
->
getTargetItem
()
->
getOwner
(),
arrow
->
getTargetItem
()
->
getName
());
CardItem
*
startCard
=
static_cast
<
CardItem
*>
(
arrow
->
getStartItem
());
CardItem
*
targetCard
=
qgraphicsitem_cast
<
CardItem
*>
(
arrow
->
getTargetItem
());
if
(
targetCard
)
emit
logCreateArrow
(
this
,
startCard
->
getOwner
(),
startCard
->
getName
(),
targetCard
->
getOwner
(),
targetCard
->
getName
(),
false
);
else
emit
logCreateArrow
(
this
,
startCard
->
getOwner
(),
startCard
->
getName
(),
static_cast
<
Player
*>
(
arrow
->
getTargetItem
()
->
parentItem
()),
QString
(),
true
);
}
}
...
...
@@ -722,20 +733,11 @@ QRectF Player::boundingRect() const
void
Player
::
paint
(
QPainter
*
painter
,
const
QStyleOptionGraphicsItem
*/
*
option
*/
,
QWidget
*/
*
widget
*/
)
{
QString
nameStr
=
getName
();
QFont
font
(
"Times"
);
font
.
setPixelSize
(
20
);
// font.setWeight(QFont::Bold);
int
totalWidth
=
CARD_WIDTH
+
counterAreaWidth
+
5
;
if
(
bgPixmap
.
isNull
())
painter
->
fillRect
(
QRectF
(
0
,
0
,
totalWidth
,
boundingRect
().
height
()),
QColor
(
200
,
200
,
200
));
else
painter
->
fillRect
(
QRectF
(
0
,
0
,
totalWidth
,
boundingRect
().
height
()),
QBrush
(
bgPixmap
));
painter
->
setFont
(
font
);
painter
->
setPen
(
QPen
(
Qt
::
black
));
painter
->
drawText
(
QRectF
(
0
,
0
,
totalWidth
,
40
),
Qt
::
AlignCenter
,
nameStr
);
}
void
Player
::
processPlayerInfo
(
ServerInfo_Player
*
info
)
...
...
@@ -827,20 +829,25 @@ ArrowItem *Player::addArrow(ServerInfo_Arrow *arrow)
CardZone
*
startZone
=
startPlayer
->
getZones
().
value
(
arrow
->
getStartZone
(),
0
);
CardZone
*
targetZone
=
targetPlayer
->
getZones
().
value
(
arrow
->
getTargetZone
(),
0
);
if
(
!
startZone
||
!
targetZone
)
if
(
!
startZone
||
(
!
targetZone
&&
!
arrow
->
getTargetZone
().
isEmpty
())
)
return
0
;
CardItem
*
startCard
=
startZone
->
getCard
(
arrow
->
getStartCardId
(),
QString
());
CardItem
*
targetCard
=
targetZone
->
getCard
(
arrow
->
getTargetCardId
(),
QString
());
if
(
!
startCard
||
!
targetCard
)
CardItem
*
targetCard
=
0
;
if
(
targetZone
)
targetCard
=
targetZone
->
getCard
(
arrow
->
getTargetCardId
(),
QString
());
if
(
!
startCard
||
(
!
targetCard
&&
!
arrow
->
getTargetZone
().
isEmpty
()))
return
0
;
if
(
targetCard
)
return
addArrow
(
arrow
->
getId
(),
startCard
,
targetCard
,
arrow
->
getColor
());
else
return
addArrow
(
arrow
->
getId
(),
startCard
,
targetPlayer
->
getPlayerTarget
(),
arrow
->
getColor
());
}
ArrowItem
*
Player
::
addArrow
(
int
arrowId
,
CardItem
*
startCard
,
CardItem
*
target
Card
,
const
QColor
&
color
)
ArrowItem
*
Player
::
addArrow
(
int
arrowId
,
CardItem
*
startCard
,
ArrowTarget
*
target
Item
,
const
QColor
&
color
)
{
ArrowItem
*
arrow
=
new
ArrowItem
(
this
,
arrowId
,
startCard
,
target
Card
,
color
);
ArrowItem
*
arrow
=
new
ArrowItem
(
this
,
arrowId
,
startCard
,
target
Item
,
color
);
arrows
.
insert
(
arrowId
,
arrow
);
scene
()
->
addItem
(
arrow
);
return
arrow
;
...
...
@@ -909,6 +916,7 @@ void Player::cardMenuAction()
{
QAction
*
a
=
static_cast
<
QAction
*>
(
sender
());
QList
<
QGraphicsItem
*>
sel
=
scene
()
->
selectedItems
();
QList
<
Command
*>
commandList
;
while
(
!
sel
.
isEmpty
())
{
unsigned
int
i
=
(
unsigned
int
)
(((
double
)
sel
.
size
())
*
qrand
()
/
(
RAND_MAX
+
1.0
));
CardItem
*
card
=
qgraphicsitem_cast
<
CardItem
*>
(
sel
.
takeAt
(
i
));
...
...
@@ -916,38 +924,39 @@ void Player::cardMenuAction()
switch
(
a
->
data
().
toInt
())
{
case
0
:
if
(
!
card
->
getTapped
())
sendGameComma
nd
(
new
Command_SetCardAttr
(
-
1
,
qgraphicsitem_cast
<
CardZone
*>
(
card
->
parentItem
())
->
getName
(),
card
->
getId
(),
"tapped"
,
"1"
));
commandList
.
appe
nd
(
new
Command_SetCardAttr
(
-
1
,
qgraphicsitem_cast
<
CardZone
*>
(
card
->
parentItem
())
->
getName
(),
card
->
getId
(),
"tapped"
,
"1"
));
break
;
case
1
:
if
(
card
->
getTapped
())
sendGameComma
nd
(
new
Command_SetCardAttr
(
-
1
,
qgraphicsitem_cast
<
CardZone
*>
(
card
->
parentItem
())
->
getName
(),
card
->
getId
(),
"tapped"
,
"0"
));
commandList
.
appe
nd
(
new
Command_SetCardAttr
(
-
1
,
qgraphicsitem_cast
<
CardZone
*>
(
card
->
parentItem
())
->
getName
(),
card
->
getId
(),
"tapped"
,
"0"
));
break
;
case
2
:
sendGameComma
nd
(
new
Command_SetCardAttr
(
-
1
,
qgraphicsitem_cast
<
CardZone
*>
(
card
->
parentItem
())
->
getName
(),
card
->
getId
(),
"doesnt_untap"
,
QString
::
number
(
!
card
->
getDoesntUntap
())));
commandList
.
appe
nd
(
new
Command_SetCardAttr
(
-
1
,
qgraphicsitem_cast
<
CardZone
*>
(
card
->
parentItem
())
->
getName
(),
card
->
getId
(),
"doesnt_untap"
,
QString
::
number
(
!
card
->
getDoesntUntap
())));
break
;
case
3
:
{
QString
zone
=
qgraphicsitem_cast
<
CardZone
*>
(
card
->
parentItem
())
->
getName
();
sendGameComma
nd
(
new
Command_MoveCard
(
-
1
,
zone
,
card
->
getId
(),
zone
,
card
->
getGridPoint
().
x
(),
card
->
getGridPoint
().
y
(),
!
card
->
getFaceDown
()));
commandList
.
appe
nd
(
new
Command_MoveCard
(
-
1
,
zone
,
card
->
getId
(),
zone
,
card
->
getGridPoint
().
x
(),
card
->
getGridPoint
().
y
(),
!
card
->
getFaceDown
()));
break
;
}
case
4
:
sendGameComma
nd
(
new
Command_CreateToken
(
-
1
,
static_cast
<
CardZone
*>
(
card
->
parentItem
())
->
getName
(),
card
->
getName
(),
card
->
getColor
(),
card
->
getPT
(),
card
->
getAnnotation
(),
card
->
getDestroyOnZoneChange
(),
-
1
,
card
->
getGridPoint
().
y
()));
commandList
.
appe
nd
(
new
Command_CreateToken
(
-
1
,
static_cast
<
CardZone
*>
(
card
->
parentItem
())
->
getName
(),
card
->
getName
(),
card
->
getColor
(),
card
->
getPT
(),
card
->
getAnnotation
(),
card
->
getDestroyOnZoneChange
(),
-
1
,
card
->
getGridPoint
().
y
()));
break
;
case
5
:
sendGameComma
nd
(
new
Command_MoveCard
(
-
1
,
static_cast
<
CardZone
*>
(
card
->
parentItem
())
->
getName
(),
card
->
getId
(),
"deck"
,
0
,
0
,
false
));
commandList
.
appe
nd
(
new
Command_MoveCard
(
-
1
,
static_cast
<
CardZone
*>
(
card
->
parentItem
())
->
getName
(),
card
->
getId
(),
"deck"
,
0
,
0
,
false
));
break
;
case
6
:
sendGameComma
nd
(
new
Command_MoveCard
(
-
1
,
static_cast
<
CardZone
*>
(
card
->
parentItem
())
->
getName
(),
card
->
getId
(),
"deck"
,
-
1
,
0
,
false
));
commandList
.
appe
nd
(
new
Command_MoveCard
(
-
1
,
static_cast
<
CardZone
*>
(
card
->
parentItem
())
->
getName
(),
card
->
getId
(),
"deck"
,
-
1
,
0
,
false
));
break
;
case
7
:
sendGameComma
nd
(
new
Command_MoveCard
(
-
1
,
static_cast
<
CardZone
*>
(
card
->
parentItem
())
->
getName
(),
card
->
getId
(),
"grave"
,
0
,
0
,
false
));
commandList
.
appe
nd
(
new
Command_MoveCard
(
-
1
,
static_cast
<
CardZone
*>
(
card
->
parentItem
())
->
getName
(),
card
->
getId
(),
"grave"
,
0
,
0
,
false
));
break
;
case
8
:
sendGameComma
nd
(
new
Command_MoveCard
(
-
1
,
static_cast
<
CardZone
*>
(
card
->
parentItem
())
->
getName
(),
card
->
getId
(),
"rfg"
,
0
,
0
,
false
));
commandList
.
appe
nd
(
new
Command_MoveCard
(
-
1
,
static_cast
<
CardZone
*>
(
card
->
parentItem
())
->
getName
(),
card
->
getId
(),
"rfg"
,
0
,
0
,
false
));
break
;
default:
;
}
}
sendCommandContainer
(
new
CommandContainer
(
commandList
));
}
void
Player
::
actSetPT
()
...
...
@@ -1045,12 +1054,15 @@ void Player::actCardCounterTrigger()
void
Player
::
setCardMenu
(
QMenu
*
menu
)
{
if
(
aCardMenu
)
aCardMenu
->
setMenu
(
menu
);
}
QMenu
*
Player
::
getCardMenu
()
const
{
if
(
aCardMenu
)
return
aCardMenu
->
menu
();
return
0
;
}
qreal
Player
::
getMinimumWidth
()
const
...
...
cockatrice/src/player.h
View file @
61b82bd6
...
...
@@ -17,6 +17,7 @@ class ArrowItem;
class
CardZone
;
class
TableZone
;
class
HandZone
;
class
PlayerTarget
;
class
ServerInfo_Player
;
class
ServerInfo_Arrow
;
class
ServerInfo_Counter
;
...
...
@@ -49,7 +50,7 @@ signals:
void
logSay
(
Player
*
player
,
QString
message
);
void
logShuffle
(
Player
*
player
);
void
logRollDie
(
Player
*
player
,
int
sides
,
int
roll
);
void
logCreateArrow
(
Player
*
player
,
Player
*
startPlayer
,
QString
startCard
,
Player
*
targetPlayer
,
QString
targetCard
);
void
logCreateArrow
(
Player
*
player
,
Player
*
startPlayer
,
QString
startCard
,
Player
*
targetPlayer
,
QString
targetCard
,
bool
_playerTarget
);
void
logCreateToken
(
Player
*
player
,
QString
cardName
,
QString
pt
);
void
logDrawCards
(
Player
*
player
,
int
number
);
void
logMoveCard
(
Player
*
player
,
QString
cardName
,
CardZone
*
startZone
,
int
oldX
,
CardZone
*
targetZone
,
int
newX
);
...
...
@@ -90,7 +91,6 @@ public slots:
void
actCardCounterTrigger
();
private
slots
:
void
updateBgPixmap
();
void
updateBoundingRect
();
void
rearrangeZones
();
...
...
@@ -104,9 +104,6 @@ private:
*
aUntapAll
,
*
aRollDie
,
*
aCreateToken
,
*
aCreateAnotherToken
,
*
aCardMenu
;
typedef
void
(
Player
::*
CardMenuHandler
)(
CardItem
*
card
);
QHash
<
QAction
*
,
CardMenuHandler
>
cardMenuHandlers
;
int
defaultNumberTopCards
;
QString
lastTokenName
,
lastTokenColor
,
lastTokenPT
,
lastTokenAnnotation
;
bool
lastTokenDestroy
;
...
...
@@ -119,6 +116,7 @@ private:
QMap
<
QString
,
CardZone
*>
zones
;
TableZone
*
table
;
HandZone
*
hand
;
PlayerTarget
*
playerTarget
;
void
setCardAttrHelper
(
CardItem
*
card
,
const
QString
&
aname
,
const
QString
&
avalue
,
bool
allCards
);
...
...
@@ -164,9 +162,10 @@ public:
void
clearCounters
();
ArrowItem
*
addArrow
(
ServerInfo_Arrow
*
arrow
);
ArrowItem
*
addArrow
(
int
arrowId
,
CardItem
*
startCard
,
CardItem
*
target
Card
,
const
QColor
&
color
);
ArrowItem
*
addArrow
(
int
arrowId
,
CardItem
*
startCard
,
ArrowTarget
*
target
Item
,
const
QColor
&
color
);
void
delArrow
(
int
arrowId
);
void
clearArrows
();
PlayerTarget
*
getPlayerTarget
()
const
{
return
playerTarget
;
}
Client
*
client
;
Player
(
const
QString
&
_name
,
int
_id
,
bool
_local
,
Client
*
_client
,
TabGame
*
_parent
);
...
...
cockatrice/src/playertarget.cpp
0 → 100644
View file @
61b82bd6
#include
"playertarget.h"
#include
<QPainter>
PlayerTarget
::
PlayerTarget
(
const
QString
&
_name
,
int
_maxWidth
,
QGraphicsItem
*
parent
)
:
ArrowTarget
(
parent
),
name
(
_name
),
maxWidth
(
_maxWidth
)
{
font
=
QFont
(
"Times"
);
font
.
setStyleHint
(
QFont
::
Serif
);
font
.
setPixelSize
(
20
);
}
QRectF
PlayerTarget
::
boundingRect
()
const
{
return
QRectF
(
0
,
0
,
maxWidth
,
30
);
}
void
PlayerTarget
::
paint
(
QPainter
*
painter
,
const
QStyleOptionGraphicsItem
*
/*option*/
,
QWidget
*
/*widget*/
)
{
painter
->
fillRect
(
boundingRect
(),
QColor
(
255
,
255
,
255
,
100
));
painter
->
setFont
(
font
);
painter
->
setPen
(
Qt
::
black
);
painter
->
drawText
(
boundingRect
(),
Qt
::
AlignCenter
,
name
);
}
cockatrice/src/playertarget.h
0 → 100644
View file @
61b82bd6
#ifndef PLAYERTARGET_H
#define PLAYERTARGET_H
#include
"arrowtarget.h"
#include
<QFont>
class
PlayerTarget
:
public
ArrowTarget
{
private:
QString
name
;
QFont
font
;
int
maxWidth
;
public:
enum
{
Type
=
typePlayerTarget
};
int
type
()
const
{
return
Type
;
}
PlayerTarget
(
const
QString
&
_name
,
int
_maxWidth
,
QGraphicsItem
*
parent
=
0
);
QRectF
boundingRect
()
const
;
void
paint
(
QPainter
*
painter
,
const
QStyleOptionGraphicsItem
*
option
,
QWidget
*
widget
);
};
#endif
\ No newline at end of file
cockatrice/translations/cockatrice_de.ts
View file @
61b82bd6
...
...
@@ -152,115 +152,223 @@
<
translation
type
=
"
obsolete
"
>
Das
Kartenhintergrundbild
konnte
nicht
geladen
werden
.
<
/translation
>
<
/message
>
<
/context
>
<
context
>
<
name
>
CardItem
<
/name
>
<
message
>
<
location
filename
=
"
../src/carditem.cpp
"
line
=
"
115
"
/>
<
source
>&
amp
;
Tap
<
/source
>
<
translation
>&
amp
;
Tappen
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/carditem.cpp
"
line
=
"
116
"
/>
<
source
>&
amp
;
Untap
<
/source
>
<
translation
>
E
&
amp
;
nttappen
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/carditem.cpp
"
line
=
"
117
"
/>
<
source
>
Toggle
&
amp
;
normal
untapping
<
/source
>
<
translation
>
N
&
amp
;
ormales
Enttappen
umschalten
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/carditem.cpp
"
line
=
"
118
"
/>
<
source
>&
amp
;
Flip
<
/source
>
<
translation
>&
amp
;
Umdrehen
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/carditem.cpp
"
line
=
"
119
"
/>
<
source
>&
amp
;
Clone
<
/source
>
<
translation
>&
amp
;
Kopieren
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/carditem.cpp
"
line
=
"
120
"
/>
<
source
>&
amp
;
Attach
to
card
...
<
/source
>
<
translation
>&
amp
;
An
Karte
anlegen
...
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/carditem.cpp
"
line
=
"
121
"
/>
<
source
>
Unattac
&
amp
;
h
<
/source
>
<
translation
>&
amp
;
Von
Karte
lösen
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/carditem.cpp
"
line
=
"
122
"
/>
<
source
>
Set
&
amp
;
P
/
T
...
<
/source
>
<
translation
>&
amp
;
Kampfwerte
setzen
...
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/carditem.cpp
"
line
=
"
123
"
/>
<
source
>&
amp
;
Set
annotation
...
<
/source
>
<
translation
>&
amp
;
Hinweis
setzen
...
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/carditem.cpp
"
line
=
"
125
"
/>
<
source
>
red
<
/source
>
<
translation
>
rot
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/carditem.cpp
"
line
=
"
126
"
/>
<
source
>
yellow
<
/source
>
<
translation
>
gelb
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/carditem.cpp
"
line
=
"
127
"
/>
<
source
>
green
<
/source
>
<
translation
>
grün
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/carditem.cpp
"
line
=
"
129
"
/>
<
source
>&
amp
;
Add
counter
(
%
1
)
<
/source
>
<
translation
>
Zählmarke
&
amp
;
hinzufügen
(
%
1
)
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/carditem.cpp
"
line
=
"
131
"
/>
<
source
>&
amp
;
Remove
counter
(
%
1
)
<
/source
>
<
translation
>
Zählmarke
&
amp
;
entfernen
(
%
1
)
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/carditem.cpp
"
line
=
"
133
"
/>
<
source
>&
amp
;
Set
counters
(
%
1
)...
<
/source
>
<
translation
>
Zählmarken
&
amp
;
setzen
(
%
1
)...
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/carditem.cpp
"
line
=
"
134
"
/>
<
source
>&
amp
;
top
of
library
<
/source
>
<
translation
>&
amp
;
auf
die
Bibliothek
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/carditem.cpp
"
line
=
"
135
"
/>
<
source
>&
amp
;
bottom
of
library
<
/source
>
<
translation
>&
amp
;
unter
die
Bibliothek
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/carditem.cpp
"
line
=
"
136
"
/>
<
source
>&
amp
;
graveyard
<
/source
>
<
translation
>
in
den
&
amp
;
Friedhof
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/carditem.cpp
"
line
=
"
137
"
/>
<
source
>
Ctrl
+
Del
<
/source
>
<
translation
>
Ctrl
+
Del
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/carditem.cpp
"
line
=
"
138
"
/>
<
source
>&
amp
;
exile
<
/source
>
<
translation
>
ins
&
amp
;
Exil
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/carditem.cpp
"
line
=
"
140
"
/>
<
source
>&
amp
;
Move
to
<
/source
>
<
translation
>&
amp
;
Verschieben
<
/translation
>
<
/message
>
<
/context
>
<
context
>
<
name
>
CardZone
<
/name
>
<
message
>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
35
"
/>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
3
7
"
/>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
41
"
/>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
4
3
"
/>
<
source
>
his
hand
<
/source
>
<
translation
>
seine
Hand
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
35
"
/>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
3
7
"
/>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
41
"
/>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
4
3
"
/>
<
source
>%
1
&
apos
;
s
hand
<
/source
>
<
translation
>%
1
s
Hand
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
36
"
/>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
42
"
/>
<
source
>
of
his
hand
<
/source
>
<
translation
>
seiner
Hand
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
36
"
/>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
42
"
/>
<
source
>
of
%
1
&
apos
;
s
hand
<
/source
>
<
translation
>
von
%
1
s
Hand
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
4
1
"
/>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
4
3
"
/>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
4
7
"
/>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
4
9
"
/>
<
source
>
his
library
<
/source
>
<
translation
>
seine
Bibliothek
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
4
1
"
/>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
4
3
"
/>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
4
7
"
/>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
4
9
"
/>
<
source
>%
1
&
apos
;
s
library
<
/source
>
<
translation
>%
1
s
Bibliothek
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
4
2
"
/>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
4
8
"
/>
<
source
>
of
his
library
<
/source
>
<
translation
>
seiner
Bibliothek
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
4
2
"
/>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
4
8
"
/>
<
source
>
of
%
1
&
apos
;
s
library
<
/source
>
<
translation
>
von
%
1
s
Bibliothek
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
47
"
/>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
49
"
/>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
53
"
/>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
55
"
/>
<
source
>
his
graveyard
<
/source
>
<
translation
>
sein
Friedhof
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
47
"
/>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
49
"
/>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
53
"
/>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
55
"
/>
<
source
>%
1
&
apos
;
s
graveyard
<
/source
>
<
translation
>%
1
s
Friedhof
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
4
8
"
/>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
5
4
"
/>
<
source
>
of
his
graveyard
<
/source
>
<
translation
>
seines
Friedhofs
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
4
8
"
/>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
5
4
"
/>
<
source
>
of
%
1
&
apos
;
s
graveyard
<
/source
>
<
translation
>
von
%
1
s
Friedhof
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
5
3
"
/>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
55
"
/>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
5
9
"
/>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
61
"
/>
<
source
>
his
exile
<
/source
>
<
translation
>
sein
Exil
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
5
3
"
/>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
55
"
/>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
5
9
"
/>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
61
"
/>
<
source
>%
1
&
apos
;
s
exile
<
/source
>
<
translation
>%
1
s
Exil
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
54
"
/>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
60
"
/>
<
source
>
of
his
exile
<
/source
>
<
translation
>
seines
Exils
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
54
"
/>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
60
"
/>
<
source
>
of
%
1
&
apos
;
s
exile
<
/source
>
<
translation
>
von
%
1
s
Exil
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
5
9
"
/>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
6
1
"
/>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
6
5
"
/>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
6
7
"
/>
<
source
>
his
sideboard
<
/source
>
<
translation
>
sein
Sideboard
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
5
9
"
/>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
6
1
"
/>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
6
5
"
/>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
6
7
"
/>
<
source
>%
1
&
apos
;
s
sideboard
<
/source
>
<
translation
>%
1
s
Sideboard
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
6
0
"
/>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
6
6
"
/>
<
source
>
of
his
sideboard
<
/source
>
<
translation
>
seines
Sideboards
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
6
0
"
/>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
6
6
"
/>
<
source
>
of
%
1
&
apos
;
s
sideboard
<
/source
>
<
translation
>
von
%
1
s
Sideboard
<
/translation
>
<
/message
>
...
...
@@ -607,16 +715,21 @@
<
/message
>
<
message
>
<
location
filename
=
"
../src/dlg_create_token.cpp
"
line
=
"
30
"
/>
<
source
>&
amp
;
Destroy
token
when
it
leaves
the
table
<
/source
>
<
translation
>
Spielstein
&
amp
;
zerstören
,
wenn
er
das
Spielfeld
verlässt
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/dlg_create_token.cpp
"
line
=
"
33
"
/>
<
source
>&
amp
;
OK
<
/source
>
<
translation
>&
amp
;
OK
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/dlg_create_token.cpp
"
line
=
"
3
2
"
/>
<
location
filename
=
"
../src/dlg_create_token.cpp
"
line
=
"
3
5
"
/>
<
source
>&
amp
;
Cancel
<
/source
>
<
translation
>
A
&
amp
;
bbrechen
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/dlg_create_token.cpp
"
line
=
"
5
4
"
/>
<
location
filename
=
"
../src/dlg_create_token.cpp
"
line
=
"
5
8
"
/>
<
source
>
Create
token
<
/source
>
<
translation
>
Spielstein
erstellen
<
/translation
>
<
/message
>
...
...
@@ -1644,16 +1757,30 @@
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
207
"
/>
<
source
>%
1
creates
token
:
%
2
(
%
3
)
.
<
/source
>
<
translation
>%
1
erst
ellt
einen
Spielstein
:
%
2
(
%
3
)
.
<
/translation
>
<
source
>%
1
destroys
%
2
.
<
/source
>
<
translation
>%
1
z
erst
ört
%
2
.
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
212
"
/>
<
source
>%
1
creates
token
:
%
2
%
3
.
<
/source
>
<
translation
>%
1
erstellt
Token
:
%
2
%
3
.
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
218
"
/>
<
source
>%
1
points
from
%
2
&
apos
;
s
%
3
to
%
4
.
<
/source
>
<
translation
>%
1
zeigt
von
%
2
s
%
3
auf
%
4
.
<
/translation
>
<
/message
>
<
message
>
<
source
>%
1
creates
token
:
%
2
(
%
3
).
<
/source
>
<
translation
type
=
"
obsolete
"
>%
1
erstellt
einen
Spielstein
:
%
2
(
%
3
).
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
225
"
/>
<
source
>%
1
points
from
%
2
&
apos
;
s
%
3
to
%
4
&
apos
;
s
%
5
.
<
/source
>
<
translation
>%
1
zeigt
von
%
2
s
%
3
auf
%
4
s
%
5
.
<
/translation
>
<
/message
>
<
message
numerus
=
"
yes
"
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
2
27
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
2
40
"
/>
<
source
>%
1
places
%
n
counter
(
s
)
(
%
2
)
on
%
3
(
now
%
4
).
<
/source
>
<
translation
>
<
numerusform
>%
1
legt
eine
Marke
(
%
2
)
auf
%
3
(
jetzt
%
4
).
<
/numerusform
>
...
...
@@ -1661,7 +1788,7 @@
<
/translation
>
<
/message
>
<
message
numerus
=
"
yes
"
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
22
9
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
2
4
2
"
/>
<
source
>%
1
removes
%
n
counter
(
s
)
(
%
2
)
from
%
3
(
now
%
4
).
<
/source
>
<
translation
>
<
numerusform
>%
1
entfernt
eine
Marke
(
%
2
)
von
%
3
(
jetzt
%
4
).
<
/numerusform
>
...
...
@@ -1669,37 +1796,37 @@
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
2
32
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
2
45
"
/>
<
source
>
red
<
/source
>
<
translation
>
rot
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
2
33
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
2
46
"
/>
<
source
>
yellow
<
/source
>
<
translation
>
gelb
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
2
3
4
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
24
7
"
/>
<
source
>
green
<
/source
>
<
translation
>
grün
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
2
53
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
2
66
"
/>
<
source
>%
1
sets
counter
%
2
to
%
3
(
%
4
%
5
).
<
/source
>
<
translation
>%
1
setzt
Zähler
%
2
auf
%
3
(
%
4
%
5
).
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
2
6
8
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
28
1
"
/>
<
source
>%
1
sets
PT
of
%
2
to
%
3
.
<
/source
>
<
translation
>%
1
setzt
Kampfwerte
von
%
2
auf
%
3
.
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
2
73
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
2
86
"
/>
<
source
>%
1
sets
annotation
of
%
2
to
%
3
.
<
/source
>
<
translation
>%
1
versieht
%
2
mit
dem
Hinweis
%
3
.
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
2
7
9
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
29
2
"
/>
<
source
>%
1
is
looking
at
the
top
%
2
cards
%
3
.
<
/source
>
<
translation
>%
1
sieht
sich
die
obersten
%
2
Karten
%
3
an
.
<
/translation
>
<
/message
>
...
...
@@ -1796,7 +1923,7 @@
<
translation
type
=
"
obsolete
"
>%
1
entfernt
%
2
Zählmarken
von
%
3
(
jetzt
%
4
).
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
2
48
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
2
61
"
/>
<
source
>%
1
%
2
%
3
.
<
/source
>
<
translation
>%
1
%
2
%
3
.
<
/translation
>
<
/message
>
...
...
@@ -1809,17 +1936,17 @@
<
translation
type
=
"
obsolete
"
>%
1
sieht
sich
die
obersten
%
2
Karten
%
3
an
.
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
2
81
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
2
94
"
/>
<
source
>%
1
is
looking
at
%
2
.
<
/source
>
<
translation
>%
1
sieht
sich
%
2
an
.
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
287
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
300
"
/>
<
source
>%
1
stops
looking
at
%
2
.
<
/source
>
<
translation
>%
1
sieht
sich
%
2
nicht
mehr
an
.
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
3
11
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
3
24
"
/>
<
source
>
ending
phase
<
/source
>
<
translation
>
die
Zugendphase
<
/translation
>
<
/message
>
...
...
@@ -1848,57 +1975,57 @@
<
translation
type
=
"
obsolete
"
>%
1
sieht
sich
%
2
s
%
3
nicht
mehr
an
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
293
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
306
"
/>
<
source
>
It
is
now
%
1
&
apos
;
s
turn
.
<
/source
>
<
translation
>%
1
ist
am
Zug
.
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
3
0
1
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
31
4
"
/>
<
source
>
untap
step
<
/source
>
<
translation
>
das
Enttappsegment
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
3
02
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
3
15
"
/>
<
source
>
upkeep
step
<
/source
>
<
translation
>
das
Versorgungssegment
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
3
03
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
3
16
"
/>
<
source
>
draw
step
<
/source
>
<
translation
>
das
Ziehsegment
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
3
04
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
3
17
"
/>
<
source
>
first
main
phase
<
/source
>
<
translation
>
die
erste
Hauptphase
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
3
05
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
3
18
"
/>
<
source
>
beginning
of
combat
step
<
/source
>
<
translation
>
das
Anfangssegment
der
Kampfphase
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
3
06
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
3
19
"
/>
<
source
>
declare
attackers
step
<
/source
>
<
translation
>
das
Angreifer
-
Deklarieren
-
Segment
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
30
7
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
3
2
0
"
/>
<
source
>
declare
blockers
step
<
/source
>
<
translation
>
das
Blocker
-
Deklarieren
-
Segment
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
3
08
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
3
21
"
/>
<
source
>
combat
damage
step
<
/source
>
<
translation
>
das
Kampfschadenssegment
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
3
09
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
3
22
"
/>
<
source
>
end
of
combat
step
<
/source
>
<
translation
>
das
Endsegment
der
Kampfphase
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
3
10
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
3
23
"
/>
<
source
>
second
main
phase
<
/source
>
<
translation
>
die
zweite
Hauptphase
<
/translation
>
<
/message
>
...
...
@@ -1907,7 +2034,7 @@
<
translation
type
=
"
obsolete
"
>
das
Ende
-
des
-
Zuges
-
Segment
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
3
13
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
3
26
"
/>
<
source
>
It
is
now
the
%
1
.
<
/source
>
<
translation
>
Es
ist
nun
%
1
.
<
/translation
>
<
/message
>
...
...
@@ -1916,12 +2043,12 @@
<
translation
type
=
"
obsolete
"
>%
1
bewegt
%
2
%
3
nach
%
4
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
2
48
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
2
61
"
/>
<
source
>
taps
<
/source
>
<
translation
>
tappt
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
2
48
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
2
61
"
/>
<
source
>
untaps
<
/source
>
<
translation
>
enttappt
<
/translation
>
<
/message
>
...
...
@@ -1946,7 +2073,7 @@
<
translation
type
=
"
obsolete
"
>%
1
entfernt
%
2
Zählmarken
von
%
3
(
jetzt
%
4
)
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
2
4
5
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
25
8
"
/>
<
source
>
his
permanents
<
/source
>
<
translation
>
seine
bleibenden
Karten
<
/translation
>
<
/message
>
...
...
@@ -1959,12 +2086,12 @@
<
translation
type
=
"
obsolete
"
>%
1
setzt
Zähler
&
quot
;
%
2
&
quot
;
auf
%
3
(
%
4
%
5
)
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
2
60
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
2
73
"
/>
<
source
>%
1
sets
%
2
to
not
untap
normally
.
<
/source
>
<
translation
>%
1
setzt
%
2
auf
explizites
Enttappen
.
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
2
62
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
2
75
"
/>
<
source
>%
1
sets
%
2
to
untap
normally
.
<
/source
>
<
translation
>%
1
setzt
%
2
auf
normales
Enttappen
.
<
/translation
>
<
/message
>
...
...
@@ -2069,41 +2196,41 @@
<
context
>
<
name
>
Player
<
/name
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
34
8
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
35
2
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
35
6
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
28
8
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
29
2
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
29
6
"
/>
<
source
>
Move
to
&
amp
;
top
of
library
<
/source
>
<
translation
>
Oben
auf
die
Biblio
&
amp
;
thek
legen
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
34
9
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
35
3
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
35
7
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
28
9
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
29
3
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
29
7
"
/>
<
source
>
Move
to
&
amp
;
bottom
of
library
<
/source
>
<
translation
>
Unter
die
&
amp
;
Bibliothek
legen
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
6
0
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
0
0
"
/>
<
source
>&
amp
;
View
library
<
/source
>
<
translation
>&
amp
;
Zeige
Bibliothek
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
6
1
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
0
1
"
/>
<
source
>
F3
<
/source
>
<
translation
>
F3
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
6
2
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
0
2
"
/>
<
source
>
View
&
amp
;
top
cards
of
library
...
<
/source
>
<
translation
>
Zeige
die
oberen
Kar
&
amp
;
ten
der
Bibliothek
...
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
34
1
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
28
1
"
/>
<
source
>&
amp
;
View
graveyard
<
/source
>
<
translation
>&
amp
;
Zeige
Friedhof
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
6
4
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
0
4
"
/>
<
source
>
F4
<
/source
>
<
translation
>
F4
<
/translation
>
<
/message
>
...
...
@@ -2112,32 +2239,32 @@
<
translation
type
=
"
obsolete
"
>
Zeige
ent
&
amp
;
fernte
Karten
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
6
5
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
0
5
"
/>
<
source
>&
amp
;
View
sideboard
<
/source
>
<
translation
>
Zeige
&
amp
;
Sideboard
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
34
3
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
28
3
"
/>
<
source
>
Player
&
quot
;
%
1
&
quot
;
<
/source
>
<
translation
>
Spieler
&
quot
;
%
1
&
quot
;
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
7
0
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
1
0
"
/>
<
source
>
Take
&
amp
;
mulligan
<
/source
>
<
translation
>&
amp
;
Mulligan
nehmen
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
7
5
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
1
5
"
/>
<
source
>&
amp
;
Hand
<
/source
>
<
translation
>&
amp
;
Hand
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
7
7
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
1
7
"
/>
<
source
>&
amp
;
Library
<
/source
>
<
translation
>
Bib
&
amp
;
liothek
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
34
4
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
28
4
"
/>
<
source
>&
amp
;
Graveyard
<
/source
>
<
translation
>&
amp
;
Friedhof
<
/translation
>
<
/message
>
...
...
@@ -2146,80 +2273,78 @@
<
translation
type
=
"
obsolete
"
>
Entfe
&
amp
;
rnte
Karten
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
7
6
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
1
6
"
/>
<
source
>&
amp
;
Sideboard
<
/source
>
<
translation
>&
amp
;
Sideboard
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
398
"
/>
<
source
>
Set
&
amp
;
P
/
T
...
<
/source
>
<
translation
>&
amp
;
Kampfwerte
setzen
...
<
/translation
>
<
translation
type
=
"
obsolete
"
>&
amp
;
Kampfwerte
setzen
...
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
399
"
/>
<
source
>&
amp
;
Set
annotation
...
<
/source
>
<
translation
>&
amp
;
Hinweis
setzen
...
<
/translation
>
<
translation
type
=
"
obsolete
"
>&
amp
;
Hinweis
setzen
...
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
444
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
366
"
/>
<
source
>
View
top
cards
of
library
<
/source
>
<
translation
>
Zeige
die
obersten
Karten
der
Bibliothek
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
444
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
366
"
/>
<
source
>
Number
of
cards
:
<
/source
>
<
translation
>
Anzahl
der
Karten
:
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
6
6
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
0
6
"
/>
<
source
>&
amp
;
Draw
card
<
/source
>
<
translation
>
Karte
&
amp
;
ziehen
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
34
2
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
28
2
"
/>
<
source
>&
amp
;
View
exile
<
/source
>
<
translation
>&
amp
;
Zeige
Exil
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
34
5
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
28
5
"
/>
<
source
>&
amp
;
Exile
<
/source
>
<
translation
>&
amp
;
Exil
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
35
4
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
35
8
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
29
4
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
29
8
"
/>
<
source
>
Move
to
&
amp
;
hand
<
/source
>
<
translation
>
auf
die
&
amp
;
Hand
nehmen
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
35
0
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
35
9
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
29
0
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
29
9
"
/>
<
source
>
Move
to
g
&
amp
;
raveyard
<
/source
>
<
translation
>
auf
den
&
amp
;
Friedhof
legen
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
35
1
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
35
5
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
29
1
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
29
5
"
/>
<
source
>
Move
to
&
amp
;
exile
<
/source
>
<
translation
>
ins
&
amp
;
Exil
schicken
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
6
3
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
0
3
"
/>
<
source
>
Ctrl
+
W
<
/source
>
<
translation
>
Ctrl
+
W
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
6
7
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
0
7
"
/>
<
source
>
Ctrl
+
D
<
/source
>
<
translation
>
Ctrl
+
D
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
6
8
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
0
8
"
/>
<
source
>
D
&
amp
;
raw
cards
...
<
/source
>
<
translation
>
Ka
&
amp
;
rten
ziehen
...
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
6
9
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
0
9
"
/>
<
source
>
Ctrl
+
E
<
/source
>
<
translation
>
Ctrl
+
E
<
/translation
>
<
/message
>
...
...
@@ -2228,32 +2353,32 @@
<
translation
type
=
"
obsolete
"
>&
amp
;
Mulligan
nehmen
...
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
7
1
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
1
1
"
/>
<
source
>
Ctrl
+
M
<
/source
>
<
translation
>
Ctrl
+
M
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
7
2
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
1
2
"
/>
<
source
>&
amp
;
Shuffle
<
/source
>
<
translation
>
Mi
&
amp
;
schen
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
7
3
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
1
3
"
/>
<
source
>
Ctrl
+
S
<
/source
>
<
translation
>
Ctrl
+
S
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
7
8
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
1
8
"
/>
<
source
>&
amp
;
Counters
<
/source
>
<
translation
>&
amp
;
Zähler
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
8
0
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
2
0
"
/>
<
source
>&
amp
;
Untap
all
permanents
<
/source
>
<
translation
>&
amp
;
Enttappe
alle
bleibenden
Karten
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
8
1
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
2
1
"
/>
<
source
>
Ctrl
+
U
<
/source
>
<
translation
>
Ctrl
+
U
<
/translation
>
<
/message
>
...
...
@@ -2282,124 +2407,108 @@
<
translation
type
=
"
obsolete
"
>
Ctrl
+
L
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
8
2
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
2
2
"
/>
<
source
>
R
&
amp
;
oll
die
...
<
/source
>
<
translation
>&
amp
;
Würfeln
...
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
8
3
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
2
3
"
/>
<
source
>
Ctrl
+
I
<
/source
>
<
translation
>
Ctrl
+
I
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
8
4
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
2
4
"
/>
<
source
>&
amp
;
Create
token
...
<
/source
>
<
translation
>
Spiels
&
amp
;
tein
erstellen
...
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
8
5
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
2
5
"
/>
<
source
>
Ctrl
+
T
<
/source
>
<
translation
>
Ctrl
+
T
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
8
6
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
2
6
"
/>
<
source
>
C
&
amp
;
reate
another
token
<
/source
>
<
translation
>&
amp
;
Noch
einen
Spielstein
erstellen
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
8
7
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
2
7
"
/>
<
source
>
Ctrl
+
G
<
/source
>
<
translation
>
Ctrl
+
G
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
8
8
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
2
8
"
/>
<
source
>
S
&
amp
;
ay
<
/source
>
<
translation
>
S
&
amp
;
agen
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
9
4
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
3
4
"
/>
<
source
>
C
&
amp
;
ard
<
/source
>
<
translation
>&
amp
;
Karte
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
395
"
/>
<
source
>&
amp
;
Tap
<
/source
>
<
translation
>&
amp
;
Tappen
<
/translation
>
<
translation
type
=
"
obsolete
"
>&
amp
;
Tappen
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
396
"
/>
<
source
>&
amp
;
Untap
<
/source
>
<
translation
>
E
&
amp
;
nttappen
<
/translation
>
<
translation
type
=
"
obsolete
"
>
E
&
amp
;
nttappen
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
397
"
/>
<
source
>
Toggle
&
amp
;
normal
untapping
<
/source
>
<
translation
>&
amp
;
Normales
Enttappen
umschalten
<
/translation
>
<
translation
type
=
"
obsolete
"
>&
amp
;
Normales
Enttappen
umschalten
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
400
"
/>
<
source
>&
amp
;
Flip
<
/source
>
<
translation
>&
amp
;
Umdrehen
<
/translation
>
<
translation
type
=
"
obsolete
"
>&
amp
;
Umdrehen
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
401
"
/>
<
source
>
Counters
(
red
)
<
/source
>
<
translation
>
Marken
(
rot
)
<
/translation
>
<
translation
type
=
"
obsolete
"
>
Marken
(
rot
)
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
402
"
/>
<
source
>
Counters
(
yellow
)
<
/source
>
<
translation
>
Marken
(
gelb
)
<
/translation
>
<
translation
type
=
"
obsolete
"
>
Marken
(
gelb
)
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
403
"
/>
<
source
>
Counters
(
green
)
<
/source
>
<
translation
>
Marken
(
grün
)
<
/translation
>
<
translation
type
=
"
obsolete
"
>
Marken
(
grün
)
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
405
"
/>
<
source
>&
amp
;
Add
counter
<
/source
>
<
translation
>
Zählm
&
amp
;
arke
hinzufügen
<
/translation
>
<
translation
type
=
"
obsolete
"
>
Zählm
&
amp
;
arke
hinzufügen
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
407
"
/>
<
source
>&
amp
;
Remove
counter
<
/source
>
<
translation
>
Zählma
&
amp
;
rke
entfernen
<
/translation
>
<
translation
type
=
"
obsolete
"
>
Zählma
&
amp
;
rke
entfernen
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
409
"
/>
<
source
>&
amp
;
Set
counters
...
<
/source
>
<
translation
>&
amp
;
Setze
Zählmarken
...
<
/translation
>
<
translation
type
=
"
obsolete
"
>&
amp
;
Setze
Zählmarken
...
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
410
"
/>
<
source
>&
amp
;
top
of
library
<
/source
>
<
translation
>&
amp
;
auf
die
Bibliothek
<
/translation
>
<
translation
type
=
"
obsolete
"
>&
amp
;
auf
die
Bibliothek
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
411
"
/>
<
source
>&
amp
;
bottom
of
library
<
/source
>
<
translation
>&
amp
;
unter
die
Bibliothek
<
/translation
>
<
translation
type
=
"
obsolete
"
>&
amp
;
unter
die
Bibliothek
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
412
"
/>
<
source
>&
amp
;
graveyard
<
/source
>
<
translation
>
in
den
&
amp
;
Friedhof
<
/translation
>
<
translation
type
=
"
obsolete
"
>
in
den
&
amp
;
Friedhof
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
413
"
/>
<
source
>
Ctrl
+
Del
<
/source
>
<
translation
>
Ctrl
+
Del
<
/translation
>
<
translation
type
=
"
obsolete
"
>
Ctrl
+
Del
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
414
"
/>
<
source
>&
amp
;
exile
<
/source
>
<
translation
>
ins
&
amp
;
Exil
<
/translation
>
<
translation
type
=
"
obsolete
"
>
ins
&
amp
;
Exil
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
416
"
/>
<
source
>&
amp
;
Move
to
<
/source
>
<
translation
>&
amp
;
Verschieben
<
/translation
>
<
translation
type
=
"
obsolete
"
>&
amp
;
Verschieben
<
/translation
>
<
/message
>
<
message
>
<
source
>
F5
<
/source
>
...
...
@@ -2426,38 +2535,38 @@
<
translation
type
=
"
obsolete
"
>
F10
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
4
83
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
4
05
"
/>
<
source
>
Draw
cards
<
/source
>
<
translation
>
Karten
ziehen
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
4
83
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
10
81
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
4
05
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
10
40
"
/>
<
source
>
Number
:
<
/source
>
<
translation
>
Anzahl
:
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
1021
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
972
"
/>
<
source
>
Set
power
/
toughness
<
/source
>
<
translation
>
Kampfwerte
setzen
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
1021
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
972
"
/>
<
source
>
Please
enter
the
new
PT
:
<
/source
>
<
translation
>
Bitte
die
neuen
Kampfwerte
eingeben
:
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
1043
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
994
"
/>
<
source
>
Set
annotation
<
/source
>
<
translation
>
Hinweis
setzen
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
1043
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
994
"
/>
<
source
>
Please
enter
the
new
annotation
:
<
/source
>
<
translation
>
Bitte
den
Hinweis
eingeben
:
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
10
81
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
10
40
"
/>
<
source
>
Set
counters
<
/source
>
<
translation
>
Setze
Zählmarken
<
/translation
>
<
/message
>
...
...
@@ -2470,12 +2579,12 @@
<
translation
type
=
"
obsolete
"
>
Neue
Lebenspunkte
insgesamt
:
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
4
96
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
4
18
"
/>
<
source
>
Roll
die
<
/source
>
<
translation
>
Würfeln
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
4
96
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
4
18
"
/>
<
source
>
Number
of
sides
:
<
/source
>
<
translation
>
Anzahl
der
Seiten
:
<
/translation
>
<
/message
>
...
...
cockatrice/translations/cockatrice_en.ts
View file @
61b82bd6
...
...
@@ -118,114 +118,222 @@
<
/message
>
<
/context
>
<
context
>
<
name
>
Card
Zone
<
/name
>
<
name
>
Card
Item
<
/name
>
<
message
>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
35
"
/>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
37
"
/>
<
source
>
his
hand
<
/source
>
<
location
filename
=
"
../src/carditem.cpp
"
line
=
"
115
"
/>
<
source
>&
amp
;
Tap
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
35
"
/>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
37
"
/>
<
source
>%
1
&
apos
;
s
hand
<
/source
>
<
location
filename
=
"
../src/carditem.cpp
"
line
=
"
116
"
/>
<
source
>&
amp
;
Untap
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/card
zone
.cpp
"
line
=
"
36
"
/>
<
source
>
of
his
hand
<
/source
>
<
location
filename
=
"
../src/card
item
.cpp
"
line
=
"
117
"
/>
<
source
>
Toggle
&
amp
;
normal
untapping
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
36
"
/>
<
source
>
of
%
1
&
apos
;
s
hand
<
/source
>
<
location
filename
=
"
../src/carditem.cpp
"
line
=
"
118
"
/>
<
source
>&
amp
;
Flip
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/carditem.cpp
"
line
=
"
119
"
/>
<
source
>&
amp
;
Clone
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/carditem.cpp
"
line
=
"
120
"
/>
<
source
>&
amp
;
Attach
to
card
...
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/carditem.cpp
"
line
=
"
121
"
/>
<
source
>
Unattac
&
amp
;
h
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/carditem.cpp
"
line
=
"
122
"
/>
<
source
>
Set
&
amp
;
P
/
T
...
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/carditem.cpp
"
line
=
"
123
"
/>
<
source
>&
amp
;
Set
annotation
...
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/carditem.cpp
"
line
=
"
125
"
/>
<
source
>
red
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/carditem.cpp
"
line
=
"
126
"
/>
<
source
>
yellow
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/carditem.cpp
"
line
=
"
127
"
/>
<
source
>
green
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/carditem.cpp
"
line
=
"
129
"
/>
<
source
>&
amp
;
Add
counter
(
%
1
)
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/carditem.cpp
"
line
=
"
131
"
/>
<
source
>&
amp
;
Remove
counter
(
%
1
)
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/carditem.cpp
"
line
=
"
133
"
/>
<
source
>&
amp
;
Set
counters
(
%
1
)...
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/carditem.cpp
"
line
=
"
134
"
/>
<
source
>&
amp
;
top
of
library
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/carditem.cpp
"
line
=
"
135
"
/>
<
source
>&
amp
;
bottom
of
library
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/carditem.cpp
"
line
=
"
136
"
/>
<
source
>&
amp
;
graveyard
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/carditem.cpp
"
line
=
"
137
"
/>
<
source
>
Ctrl
+
Del
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/carditem.cpp
"
line
=
"
138
"
/>
<
source
>&
amp
;
exile
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/carditem.cpp
"
line
=
"
140
"
/>
<
source
>&
amp
;
Move
to
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
/context
>
<
context
>
<
name
>
CardZone
<
/name
>
<
message
>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
41
"
/>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
43
"
/>
<
source
>
his
library
<
/source
>
<
source
>
his
hand
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
41
"
/>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
43
"
/>
<
source
>%
1
&
apos
;
s
library
<
/source
>
<
source
>%
1
&
apos
;
s
hand
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
42
"
/>
<
source
>
of
his
library
<
/source
>
<
source
>
of
his
hand
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
42
"
/>
<
source
>
of
%
1
&
apos
;
s
library
<
/source
>
<
source
>
of
%
1
&
apos
;
s
hand
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
47
"
/>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
49
"
/>
<
source
>
his
graveyard
<
/source
>
<
source
>
his
library
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
47
"
/>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
49
"
/>
<
source
>%
1
&
apos
;
s
graveyard
<
/source
>
<
source
>%
1
&
apos
;
s
library
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
48
"
/>
<
source
>
of
his
graveyard
<
/source
>
<
source
>
of
his
library
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
48
"
/>
<
source
>
of
%
1
&
apos
;
s
graveyard
<
/source
>
<
source
>
of
%
1
&
apos
;
s
library
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
53
"
/>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
55
"
/>
<
source
>
his
exile
<
/source
>
<
source
>
his
graveyard
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
53
"
/>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
55
"
/>
<
source
>%
1
&
apos
;
s
exile
<
/source
>
<
source
>%
1
&
apos
;
s
graveyard
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
54
"
/>
<
source
>
of
his
exile
<
/source
>
<
source
>
of
his
graveyard
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
54
"
/>
<
source
>
of
%
1
&
apos
;
s
exile
<
/source
>
<
source
>
of
%
1
&
apos
;
s
graveyard
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
59
"
/>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
61
"
/>
<
source
>
his
sideboard
<
/source
>
<
source
>
his
exile
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
59
"
/>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
61
"
/>
<
source
>%
1
&
apos
;
s
sideboard
<
/source
>
<
source
>%
1
&
apos
;
s
exile
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
60
"
/>
<
source
>
of
his
sideboard
<
/source
>
<
source
>
of
his
exile
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
60
"
/>
<
source
>
of
%
1
&
apos
;
s
exile
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
65
"
/>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
67
"
/>
<
source
>
his
sideboard
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
65
"
/>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
67
"
/>
<
source
>%
1
&
apos
;
s
sideboard
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
66
"
/>
<
source
>
of
his
sideboard
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/cardzone.cpp
"
line
=
"
66
"
/>
<
source
>
of
%
1
&
apos
;
s
sideboard
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
...
...
@@ -515,16 +623,21 @@
<
/message
>
<
message
>
<
location
filename
=
"
../src/dlg_create_token.cpp
"
line
=
"
30
"
/>
<
source
>&
amp
;
Destroy
token
when
it
leaves
the
table
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/dlg_create_token.cpp
"
line
=
"
33
"
/>
<
source
>&
amp
;
OK
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/dlg_create_token.cpp
"
line
=
"
3
2
"
/>
<
location
filename
=
"
../src/dlg_create_token.cpp
"
line
=
"
3
5
"
/>
<
source
>&
amp
;
Cancel
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/dlg_create_token.cpp
"
line
=
"
5
4
"
/>
<
location
filename
=
"
../src/dlg_create_token.cpp
"
line
=
"
5
8
"
/>
<
source
>
Create
token
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
...
...
@@ -1053,17 +1166,12 @@
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
207
"
/>
<
source
>%
1
creates
token
:
%
2
(
%
3
).
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
212
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
225
"
/>
<
source
>%
1
points
from
%
2
&
apos
;
s
%
3
to
%
4
&
apos
;
s
%
5
.
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
numerus
=
"
yes
"
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
2
27
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
2
40
"
/>
<
source
>%
1
places
%
n
counter
(
s
)
(
%
2
)
on
%
3
(
now
%
4
).
<
/source
>
<
translation
>
<
numerusform
>%
1
places
a
counter
(
%
2
)
on
%
3
(
now
%
4
).
<
/numerusform
>
...
...
@@ -1071,7 +1179,7 @@
<
/translation
>
<
/message
>
<
message
numerus
=
"
yes
"
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
22
9
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
2
4
2
"
/>
<
source
>%
1
removes
%
n
counter
(
s
)
(
%
2
)
from
%
3
(
now
%
4
).
<
/source
>
<
translation
>
<
numerusform
>%
1
removes
a
counter
(
%
2
)
from
%
3
(
now
%
4
).
<
/numerusform
>
...
...
@@ -1079,37 +1187,37 @@
<
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
2
32
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
2
45
"
/>
<
source
>
red
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
2
33
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
2
46
"
/>
<
source
>
yellow
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
2
3
4
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
24
7
"
/>
<
source
>
green
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
2
53
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
2
66
"
/>
<
source
>%
1
sets
counter
%
2
to
%
3
(
%
4
%
5
).
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
2
6
8
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
28
1
"
/>
<
source
>%
1
sets
PT
of
%
2
to
%
3
.
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
2
73
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
2
86
"
/>
<
source
>%
1
sets
annotation
of
%
2
to
%
3
.
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
2
7
9
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
29
2
"
/>
<
source
>%
1
is
looking
at
the
top
%
2
cards
%
3
.
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
...
...
@@ -1174,27 +1282,42 @@
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
248
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
207
"
/>
<
source
>%
1
destroys
%
2
.
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
212
"
/>
<
source
>%
1
creates
token
:
%
2
%
3
.
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
218
"
/>
<
source
>%
1
points
from
%
2
&
apos
;
s
%
3
to
%
4
.
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
261
"
/>
<
source
>%
1
%
2
%
3
.
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
2
81
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
2
94
"
/>
<
source
>%
1
is
looking
at
%
2
.
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
287
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
300
"
/>
<
source
>%
1
stops
looking
at
%
2
.
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
3
11
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
3
24
"
/>
<
source
>
ending
phase
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
293
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
306
"
/>
<
source
>
It
is
now
%
1
&
apos
;
s
turn
.
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
...
...
@@ -1204,82 +1327,82 @@
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
3
0
1
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
31
4
"
/>
<
source
>
untap
step
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
3
02
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
3
15
"
/>
<
source
>
upkeep
step
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
3
03
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
3
16
"
/>
<
source
>
draw
step
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
3
04
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
3
17
"
/>
<
source
>
first
main
phase
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
3
05
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
3
18
"
/>
<
source
>
beginning
of
combat
step
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
3
06
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
3
19
"
/>
<
source
>
declare
attackers
step
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
30
7
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
3
2
0
"
/>
<
source
>
declare
blockers
step
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
3
08
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
3
21
"
/>
<
source
>
combat
damage
step
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
3
09
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
3
22
"
/>
<
source
>
end
of
combat
step
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
3
10
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
3
23
"
/>
<
source
>
second
main
phase
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
3
13
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
3
26
"
/>
<
source
>
It
is
now
the
%
1
.
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
2
48
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
2
61
"
/>
<
source
>
taps
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
2
48
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
2
61
"
/>
<
source
>
untaps
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
2
60
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
2
73
"
/>
<
source
>%
1
sets
%
2
to
not
untap
normally
.
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
2
62
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
2
75
"
/>
<
source
>%
1
sets
%
2
to
untap
normally
.
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
2
4
5
"
/>
<
location
filename
=
"
../src/messagelogwidget.cpp
"
line
=
"
25
8
"
/>
<
source
>
his
permanents
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
...
...
@@ -1368,345 +1491,255 @@
<
context
>
<
name
>
Player
<
/name
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
34
8
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
35
2
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
35
6
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
28
8
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
29
2
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
29
6
"
/>
<
source
>
Move
to
&
amp
;
top
of
library
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
34
9
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
35
3
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
35
7
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
28
9
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
29
3
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
29
7
"
/>
<
source
>
Move
to
&
amp
;
bottom
of
library
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
6
0
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
0
0
"
/>
<
source
>&
amp
;
View
library
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
6
1
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
0
1
"
/>
<
source
>
F3
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
6
2
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
0
2
"
/>
<
source
>
View
&
amp
;
top
cards
of
library
...
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
34
1
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
28
1
"
/>
<
source
>&
amp
;
View
graveyard
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
6
4
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
0
4
"
/>
<
source
>
F4
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
6
5
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
0
5
"
/>
<
source
>&
amp
;
View
sideboard
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
34
3
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
28
3
"
/>
<
source
>
Player
&
quot
;
%
1
&
quot
;
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
7
5
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
1
5
"
/>
<
source
>&
amp
;
Hand
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
7
7
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
1
7
"
/>
<
source
>&
amp
;
Library
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
34
4
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
28
4
"
/>
<
source
>&
amp
;
Graveyard
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
7
6
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
1
6
"
/>
<
source
>&
amp
;
Sideboard
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
398
"
/>
<
source
>
Set
&
amp
;
P
/
T
...
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
399
"
/>
<
source
>&
amp
;
Set
annotation
...
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
444
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
366
"
/>
<
source
>
View
top
cards
of
library
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
444
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
366
"
/>
<
source
>
Number
of
cards
:
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
6
6
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
0
6
"
/>
<
source
>&
amp
;
Draw
card
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
34
2
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
28
2
"
/>
<
source
>&
amp
;
View
exile
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
34
5
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
28
5
"
/>
<
source
>&
amp
;
Exile
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
35
4
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
35
8
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
29
4
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
29
8
"
/>
<
source
>
Move
to
&
amp
;
hand
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
35
0
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
35
9
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
29
0
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
29
9
"
/>
<
source
>
Move
to
g
&
amp
;
raveyard
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
35
1
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
35
5
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
29
1
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
29
5
"
/>
<
source
>
Move
to
&
amp
;
exile
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
6
3
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
0
3
"
/>
<
source
>
Ctrl
+
W
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
6
7
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
0
7
"
/>
<
source
>
Ctrl
+
D
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
6
8
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
0
8
"
/>
<
source
>
D
&
amp
;
raw
cards
...
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
6
9
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
0
9
"
/>
<
source
>
Ctrl
+
E
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
7
0
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
1
0
"
/>
<
source
>
Take
&
amp
;
mulligan
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
7
1
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
1
1
"
/>
<
source
>
Ctrl
+
M
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
7
2
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
1
2
"
/>
<
source
>&
amp
;
Shuffle
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
7
3
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
1
3
"
/>
<
source
>
Ctrl
+
S
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
7
8
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
1
8
"
/>
<
source
>&
amp
;
Counters
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
8
0
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
2
0
"
/>
<
source
>&
amp
;
Untap
all
permanents
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
8
1
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
2
1
"
/>
<
source
>
Ctrl
+
U
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
8
2
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
2
2
"
/>
<
source
>
R
&
amp
;
oll
die
...
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
8
3
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
2
3
"
/>
<
source
>
Ctrl
+
I
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
8
4
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
2
4
"
/>
<
source
>&
amp
;
Create
token
...
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
8
5
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
2
5
"
/>
<
source
>
Ctrl
+
T
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
8
6
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
2
6
"
/>
<
source
>
C
&
amp
;
reate
another
token
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
8
7
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
2
7
"
/>
<
source
>
Ctrl
+
G
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
8
8
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
2
8
"
/>
<
source
>
S
&
amp
;
ay
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
9
4
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
3
3
4
"
/>
<
source
>
C
&
amp
;
ard
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
395
"
/>
<
source
>&
amp
;
Tap
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
396
"
/>
<
source
>&
amp
;
Untap
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
397
"
/>
<
source
>
Toggle
&
amp
;
normal
untapping
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
400
"
/>
<
source
>&
amp
;
Flip
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
401
"
/>
<
source
>
Counters
(
red
)
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
402
"
/>
<
source
>
Counters
(
yellow
)
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
403
"
/>
<
source
>
Counters
(
green
)
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
405
"
/>
<
source
>&
amp
;
Add
counter
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
407
"
/>
<
source
>&
amp
;
Remove
counter
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
409
"
/>
<
source
>&
amp
;
Set
counters
...
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
410
"
/>
<
source
>&
amp
;
top
of
library
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
411
"
/>
<
source
>&
amp
;
bottom
of
library
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
412
"
/>
<
source
>&
amp
;
graveyard
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
413
"
/>
<
source
>
Ctrl
+
Del
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
414
"
/>
<
source
>&
amp
;
exile
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
416
"
/>
<
source
>&
amp
;
Move
to
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
483
"
/>
<
source
>
Draw
cards
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
4
83
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
10
81
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
4
05
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
10
40
"
/>
<
source
>
Number
:
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
4
96
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
4
18
"
/>
<
source
>
Roll
die
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
4
96
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
4
18
"
/>
<
source
>
Number
of
sides
:
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
1021
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
972
"
/>
<
source
>
Set
power
/
toughness
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
1021
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
972
"
/>
<
source
>
Please
enter
the
new
PT
:
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
1043
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
994
"
/>
<
source
>
Set
annotation
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
1043
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
994
"
/>
<
source
>
Please
enter
the
new
annotation
:
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
<
message
>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
10
81
"
/>
<
location
filename
=
"
../src/player.cpp
"
line
=
"
10
40
"
/>
<
source
>
Set
counters
<
/source
>
<
translation
type
=
"
unfinished
"
><
/translation
>
<
/message
>
...
...
common/server_arrow.h
View file @
61b82bd6
...
...
@@ -4,18 +4,20 @@
#include
<QColor>
class
Server_Card
;
class
Server_ArrowTarget
;
class
Server_Arrow
{
private:
int
id
;
Server_Card
*
startCard
,
*
targetCard
;
Server_Card
*
startCard
;
Server_ArrowTarget
*
targetItem
;
QColor
color
;
public:
Server_Arrow
(
int
_id
,
Server_Card
*
_startCard
,
Server_
Card
*
_target
Card
,
const
QColor
&
_color
)
:
id
(
_id
),
startCard
(
_startCard
),
target
Card
(
_target
Card
),
color
(
_color
)
{
}
Server_Arrow
(
int
_id
,
Server_Card
*
_startCard
,
Server_
ArrowTarget
*
_target
Item
,
const
QColor
&
_color
)
:
id
(
_id
),
startCard
(
_startCard
),
target
Item
(
_target
Item
),
color
(
_color
)
{
}
int
getId
()
const
{
return
id
;
}
Server_Card
*
getStartCard
()
const
{
return
startCard
;
}
Server_
Card
*
getTarget
Card
()
const
{
return
target
Card
;
}
Server_
ArrowTarget
*
getTarget
Item
()
const
{
return
target
Item
;
}
QColor
getColor
()
const
{
return
color
;
}
};
...
...
common/server_arrowtarget.h
0 → 100644
View file @
61b82bd6
#ifndef SERVER_ARROWTARGET_H
#define SERVER_ARROWTARGET_H
#include
<QObject>
class
Server_ArrowTarget
:
public
QObject
{
Q_OBJECT
};
#endif
\ No newline at end of file
Prev
1
2
Next
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment