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
695fde75
Commit
695fde75
authored
Dec 31, 2011
by
Max-Wilhelm Bruker
Browse files
PB: enough for today
parent
c4eb7ba6
Changes
7
Hide whitespace changes
Inline
Side-by-side
cockatrice/src/deckview.h
View file @
695fde75
...
@@ -6,7 +6,6 @@
...
@@ -6,7 +6,6 @@
#include
<QMap>
#include
<QMap>
#include
<QMultiMap>
#include
<QMultiMap>
#include
<QPixmap>
#include
<QPixmap>
#include
"abstractcarditem.h"
#include
"abstractcarddragitem.h"
#include
"abstractcarddragitem.h"
class
DeckList
;
class
DeckList
;
...
...
cockatrice/src/handcounter.h
View file @
695fde75
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
#define HANDCOUNTER_H
#define HANDCOUNTER_H
#include
<QString>
#include
<QString>
#include
"abstract
card
item.h"
#include
"abstract
graphics
item.h"
class
QPainter
;
class
QPainter
;
class
QPixmap
;
class
QPixmap
;
...
...
cockatrice/src/player.cpp
View file @
695fde75
...
@@ -10,6 +10,7 @@
...
@@ -10,6 +10,7 @@
#include
"tablezone.h"
#include
"tablezone.h"
#include
"handzone.h"
#include
"handzone.h"
#include
"handcounter.h"
#include
"handcounter.h"
#include
"carditem.h"
#include
"cardlist.h"
#include
"cardlist.h"
#include
"tab_game.h"
#include
"tab_game.h"
#include
"gamescene.h"
#include
"gamescene.h"
...
@@ -34,7 +35,28 @@
...
@@ -34,7 +35,28 @@
#include
"pb/command_create_token.pb.h"
#include
"pb/command_create_token.pb.h"
#include
"pb/command_flip_card.pb.h"
#include
"pb/command_flip_card.pb.h"
#include
"pb/command_game_say.pb.h"
#include
"pb/command_game_say.pb.h"
#include
"pb/serverinfo_user.pb.h"
#include
"pb/context_move_card.pb.h"
#include
"pb/event_connection_state_changed.pb.h"
#include
"pb/event_game_say.pb.h"
#include
"pb/event_shuffle.pb.h"
#include
"pb/event_roll_die.pb.h"
#include
"pb/event_create_arrow.pb.h"
#include
"pb/event_delete_arrow.pb.h"
#include
"pb/event_create_token.pb.h"
#include
"pb/event_set_card_attr.pb.h"
#include
"pb/event_set_card_counter.pb.h"
#include
"pb/event_create_counter.pb.h"
#include
"pb/event_set_counter.pb.h"
#include
"pb/event_del_counter.pb.h"
#include
"pb/event_dump_zone.pb.h"
#include
"pb/event_stop_dump_zone.pb.h"
#include
"pb/event_move_card.pb.h"
#include
"pb/event_flip_card.pb.h"
#include
"pb/event_destroy_card.pb.h"
#include
"pb/event_attach_card.pb.h"
#include
"pb/event_draw_cards.pb.h"
#include
"pb/event_reveal_cards.pb.h"
PlayerArea
::
PlayerArea
(
QGraphicsItem
*
parentItem
)
PlayerArea
::
PlayerArea
(
QGraphicsItem
*
parentItem
)
:
QObject
(),
QGraphicsItem
(
parentItem
)
:
QObject
(),
QGraphicsItem
(
parentItem
)
...
@@ -67,9 +89,12 @@ void PlayerArea::setSize(qreal width, qreal height)
...
@@ -67,9 +89,12 @@ void PlayerArea::setSize(qreal width, qreal height)
bRect
=
QRectF
(
0
,
0
,
width
,
height
);
bRect
=
QRectF
(
0
,
0
,
width
,
height
);
}
}
Player
::
Player
(
ServerInfo_User
*
info
,
int
_id
,
bool
_local
,
TabGame
*
_parent
)
Player
::
Player
(
const
ServerInfo_User
&
info
,
int
_id
,
bool
_local
,
TabGame
*
_parent
)
:
QObject
(
_parent
),
shortcutsActive
(
false
),
defaultNumberTopCards
(
3
),
lastTokenDestroy
(
true
),
userInfo
(
new
ServerInfo_User
(
info
)),
id
(
_id
),
active
(
false
),
local
(
_local
),
mirrored
(
false
),
handVisible
(
false
),
conceded
(
false
),
dialogSemaphore
(
false
)
:
QObject
(
_parent
),
shortcutsActive
(
false
),
defaultNumberTopCards
(
3
),
lastTokenDestroy
(
true
),
id
(
_id
),
active
(
false
),
local
(
_local
),
mirrored
(
false
),
handVisible
(
false
),
conceded
(
false
),
dialogSemaphore
(
false
)
{
{
userInfo
=
new
ServerInfo_User
;
userInfo
->
CopyFrom
(
info
);
connect
(
settingsCache
,
SIGNAL
(
horizontalHandChanged
()),
this
,
SLOT
(
rearrangeZones
()));
connect
(
settingsCache
,
SIGNAL
(
horizontalHandChanged
()),
this
,
SLOT
(
rearrangeZones
()));
playerArea
=
new
PlayerArea
(
this
);
playerArea
=
new
PlayerArea
(
this
);
...
@@ -448,7 +473,7 @@ void Player::retranslateUi()
...
@@ -448,7 +473,7 @@ void Player::retranslateUi()
{
{
aViewGraveyard
->
setText
(
tr
(
"&View graveyard"
));
aViewGraveyard
->
setText
(
tr
(
"&View graveyard"
));
aViewRfg
->
setText
(
tr
(
"&View exile"
));
aViewRfg
->
setText
(
tr
(
"&View exile"
));
playerMenu
->
setTitle
(
tr
(
"Player
\"
%1
\"
"
).
arg
(
userInfo
->
getN
ame
()));
playerMenu
->
setTitle
(
tr
(
"Player
\"
%1
\"
"
).
arg
(
QString
::
fromStdString
(
userInfo
->
n
ame
()))
)
;
graveMenu
->
setTitle
(
tr
(
"&Graveyard"
));
graveMenu
->
setTitle
(
tr
(
"&Graveyard"
));
rfgMenu
->
setTitle
(
tr
(
"&Exile"
));
rfgMenu
->
setTitle
(
tr
(
"&Exile"
));
...
@@ -751,9 +776,9 @@ void Player::actSayMessage()
...
@@ -751,9 +776,9 @@ void Player::actSayMessage()
sendGameCommand
(
cmd
);
sendGameCommand
(
cmd
);
}
}
void
Player
::
setCardAttrHelper
(
GameEventContext
*
context
,
CardItem
*
card
,
const
QString
&
aname
,
const
QString
&
avalue
,
bool
allCards
)
void
Player
::
setCardAttrHelper
(
const
GameEventContext
&
context
,
CardItem
*
card
,
const
QString
&
aname
,
const
QString
&
avalue
,
bool
allCards
)
{
{
bool
moveCardContext
=
qobject_cast
<
Context_MoveCard
*>
(
cont
ext
);
bool
moveCardContext
=
context
.
HasExtension
(
Context_MoveCard
::
ext
);
if
(
aname
==
"tapped"
)
{
if
(
aname
==
"tapped"
)
{
bool
tapped
=
avalue
==
"1"
;
bool
tapped
=
avalue
==
"1"
;
if
(
!
(
!
tapped
&&
card
->
getDoesntUntap
()
&&
allCards
))
{
if
(
!
(
!
tapped
&&
card
->
getDoesntUntap
()
&&
allCards
))
{
...
@@ -778,147 +803,145 @@ void Player::setCardAttrHelper(GameEventContext *context, CardItem *card, const
...
@@ -778,147 +803,145 @@ void Player::setCardAttrHelper(GameEventContext *context, CardItem *card, const
}
}
}
}
void
Player
::
eventConnectionStateChanged
(
Event_ConnectionStateChanged
*
event
)
void
Player
::
eventConnectionStateChanged
(
const
Event_ConnectionStateChanged
&
event
)
{
{
emit
logConnectionStateChanged
(
this
,
event
->
getC
onnected
());
emit
logConnectionStateChanged
(
this
,
event
.
c
onnected
());
}
}
void
Player
::
event
Say
(
Event_Say
*
event
)
void
Player
::
event
GameSay
(
const
Event_
Game
Say
&
event
)
{
{
emit
logSay
(
this
,
event
->
getM
essage
());
emit
logSay
(
this
,
QString
::
fromStdString
(
event
.
m
essage
())
)
;
}
}
void
Player
::
eventShuffle
(
Event_Shuffle
*
/*
event
*/
)
void
Player
::
eventShuffle
(
const
Event_Shuffle
&
event
)
{
{
emit
logShuffle
(
this
,
zones
.
value
(
"deck"
));
CardZone
*
zone
=
zones
.
value
(
QString
::
fromStdString
(
event
.
zone_name
()));
if
(
!
zone
)
return
;
emit
logShuffle
(
this
,
zone
);
}
}
void
Player
::
eventRollDie
(
Event_RollDie
*
event
)
void
Player
::
eventRollDie
(
const
Event_RollDie
&
event
)
{
{
emit
logRollDie
(
this
,
event
->
getS
ides
(),
event
->
getV
alue
());
emit
logRollDie
(
this
,
event
.
s
ides
(),
event
.
v
alue
());
}
}
void
Player
::
eventCreateArrow
s
(
Event_CreateArrow
s
*
event
)
void
Player
::
eventCreateArrow
(
const
Event_CreateArrow
&
event
)
{
{
const
QList
<
ServerInfo_Arrow
*>
eventArrowList
=
event
->
getArrowList
();
ArrowItem
*
arrow
=
addArrow
(
event
.
arrow_info
());
for
(
int
i
=
0
;
i
<
eventArrowList
.
size
();
++
i
)
{
if
(
!
arrow
)
ArrowItem
*
arrow
=
addArrow
(
eventArrowList
[
i
]);
return
;
if
(
!
arrow
)
return
;
CardItem
*
startCard
=
static_cast
<
CardItem
*>
(
arrow
->
getStartItem
());
CardItem
*
targetCard
=
qgraphicsitem_cast
<
CardItem
*>
(
arrow
->
getTargetItem
());
CardItem
*
startCard
=
static_cast
<
CardItem
*>
(
arrow
->
getStartItem
());
if
(
targetCard
)
CardItem
*
targetCard
=
qgraphicsitem_cast
<
CardItem
*>
(
arrow
->
getTargetItem
());
emit
logCreateArrow
(
this
,
startCard
->
getOwner
(),
startCard
->
getName
(),
targetCard
->
getOwner
(),
targetCard
->
getName
(),
false
);
if
(
targetCard
)
else
emit
logCreateArrow
(
this
,
startCard
->
getOwner
(),
startCard
->
getName
(),
targetCard
->
getOwner
(),
targetCard
->
getName
(),
false
);
emit
logCreateArrow
(
this
,
startCard
->
getOwner
(),
startCard
->
getName
(),
arrow
->
getTargetItem
()
->
getOwner
(),
QString
(),
true
);
else
emit
logCreateArrow
(
this
,
startCard
->
getOwner
(),
startCard
->
getName
(),
arrow
->
getTargetItem
()
->
getOwner
(),
QString
(),
true
);
}
}
}
void
Player
::
eventDeleteArrow
(
Event_DeleteArrow
*
event
)
void
Player
::
eventDeleteArrow
(
const
Event_DeleteArrow
&
event
)
{
{
delArrow
(
event
->
getA
rrow
I
d
());
delArrow
(
event
.
a
rrow
_i
d
());
}
}
void
Player
::
eventCreateToken
(
Event_CreateToken
*
event
)
void
Player
::
eventCreateToken
(
const
Event_CreateToken
&
event
)
{
{
CardZone
*
zone
=
zones
.
value
(
event
->
getZone
(
),
0
);
CardZone
*
zone
=
zones
.
value
(
QString
::
fromStdString
(
event
.
zone_name
()
),
0
);
if
(
!
zone
)
if
(
!
zone
)
return
;
return
;
CardItem
*
card
=
new
CardItem
(
this
,
event
->
getC
ard
N
ame
(),
event
->
getC
ard
I
d
());
CardItem
*
card
=
new
CardItem
(
this
,
QString
::
fromStdString
(
event
.
c
ard
_n
ame
()
)
,
event
.
c
ard
_i
d
());
card
->
setColor
(
event
->
getC
olor
());
card
->
setColor
(
QString
::
fromStdString
(
event
.
c
olor
())
)
;
card
->
setPT
(
event
->
getP
t
());
card
->
setPT
(
QString
::
fromStdString
(
event
.
p
t
())
)
;
card
->
setAnnotation
(
event
->
getA
nnotation
());
card
->
setAnnotation
(
QString
::
fromStdString
(
event
.
a
nnotation
())
)
;
card
->
setDestroyOnZoneChange
(
event
->
getD
estroy
OnZ
one
C
hange
());
card
->
setDestroyOnZoneChange
(
event
.
d
estroy
_on_z
one
_c
hange
());
emit
logCreateToken
(
this
,
card
->
getName
(),
card
->
getPT
());
emit
logCreateToken
(
this
,
card
->
getName
(),
card
->
getPT
());
zone
->
addCard
(
card
,
true
,
event
->
getX
(),
event
->
getY
());
zone
->
addCard
(
card
,
true
,
event
.
x
(),
event
.
y
());
}
}
void
Player
::
eventSetCardAttr
(
Event_SetCardAttr
*
event
,
GameEventContext
*
context
)
void
Player
::
eventSetCardAttr
(
const
Event_SetCardAttr
&
event
,
const
GameEventContext
&
context
)
{
{
CardZone
*
zone
=
zones
.
value
(
event
->
getZone
(
),
0
);
CardZone
*
zone
=
zones
.
value
(
QString
::
fromStdString
(
event
.
zone_name
()
),
0
);
if
(
!
zone
)
if
(
!
zone
)
return
;
return
;
if
(
event
->
getC
ard
I
d
()
==
-
1
)
{
if
(
!
event
.
has_c
ard
_i
d
())
{
const
CardList
&
cards
=
zone
->
getCards
();
const
CardList
&
cards
=
zone
->
getCards
();
for
(
int
i
=
0
;
i
<
cards
.
size
();
i
++
)
for
(
int
i
=
0
;
i
<
cards
.
size
();
i
++
)
setCardAttrHelper
(
context
,
cards
.
at
(
i
),
event
->
getA
ttr
N
ame
(),
event
->
getA
ttr
V
alue
(),
true
);
setCardAttrHelper
(
context
,
cards
.
at
(
i
),
QString
::
fromStdString
(
event
.
a
ttr
_n
ame
()
)
,
QString
::
fromStdString
(
event
.
a
ttr
_v
alue
()
)
,
true
);
if
(
event
->
getA
ttr
N
ame
()
==
"tapped"
)
if
(
event
.
a
ttr
_n
ame
()
==
"tapped"
)
emit
logSetTapped
(
this
,
0
,
event
->
getA
ttr
V
alue
()
==
"1"
);
emit
logSetTapped
(
this
,
0
,
event
.
a
ttr
_v
alue
()
==
"1"
);
}
else
{
}
else
{
CardItem
*
card
=
zone
->
getCard
(
event
->
getC
ard
I
d
(),
QString
());
CardItem
*
card
=
zone
->
getCard
(
event
.
c
ard
_i
d
(),
QString
());
if
(
!
card
)
{
if
(
!
card
)
{
qDebug
()
<<
"Player::eventSetCardAttr: card id="
<<
event
->
getC
ard
I
d
()
<<
"not found"
;
qDebug
()
<<
"Player::eventSetCardAttr: card id="
<<
event
.
c
ard
_i
d
()
<<
"not found"
;
return
;
return
;
}
}
setCardAttrHelper
(
context
,
card
,
event
->
getA
ttr
N
ame
(),
event
->
getA
ttr
V
alue
(),
false
);
setCardAttrHelper
(
context
,
card
,
QString
::
fromStdString
(
event
.
a
ttr
_n
ame
()
)
,
QString
::
fromStdString
(
event
.
a
ttr
_v
alue
()
)
,
false
);
}
}
}
}
void
Player
::
eventSetCardCounter
(
Event_SetCardCounter
*
event
)
void
Player
::
eventSetCardCounter
(
const
Event_SetCardCounter
&
event
)
{
{
CardZone
*
zone
=
zones
.
value
(
event
->
getZone
(
),
0
);
CardZone
*
zone
=
zones
.
value
(
QString
::
fromStdString
(
event
.
zone_name
()
),
0
);
if
(
!
zone
)
if
(
!
zone
)
return
;
return
;
CardItem
*
card
=
zone
->
getCard
(
event
->
getC
ard
I
d
(),
QString
());
CardItem
*
card
=
zone
->
getCard
(
event
.
c
ard
_i
d
(),
QString
());
if
(
!
card
)
if
(
!
card
)
return
;
return
;
int
oldValue
=
card
->
getCounters
().
value
(
event
->
getC
ounter
I
d
(),
0
);
int
oldValue
=
card
->
getCounters
().
value
(
event
.
c
ounter
_i
d
(),
0
);
card
->
setCounter
(
event
->
getC
ounter
I
d
(),
event
->
getC
ounter
V
alue
());
card
->
setCounter
(
event
.
c
ounter
_i
d
(),
event
.
c
ounter
_v
alue
());
emit
logSetCardCounter
(
this
,
card
->
getName
(),
event
->
getC
ounter
I
d
(),
event
->
getC
ounter
V
alue
(),
oldValue
);
emit
logSetCardCounter
(
this
,
card
->
getName
(),
event
.
c
ounter
_i
d
(),
event
.
c
ounter
_v
alue
(),
oldValue
);
}
}
void
Player
::
eventCreateCounter
s
(
Event_CreateCounter
s
*
event
)
void
Player
::
eventCreateCounter
(
const
Event_CreateCounter
&
event
)
{
{
const
QList
<
ServerInfo_Counter
*>
&
eventCounterList
=
event
->
getCounterList
();
addCounter
(
event
.
counter_info
());
for
(
int
i
=
0
;
i
<
eventCounterList
.
size
();
++
i
)
addCounter
(
eventCounterList
[
i
]);
}
}
void
Player
::
eventSetCounter
(
Event_SetCounter
*
event
)
void
Player
::
eventSetCounter
(
const
Event_SetCounter
&
event
)
{
{
AbstractCounter
*
c
=
counters
.
value
(
event
->
getC
ounter
I
d
(),
0
);
AbstractCounter
*
c
=
counters
.
value
(
event
.
c
ounter
_i
d
(),
0
);
if
(
!
c
)
if
(
!
c
)
return
;
return
;
int
oldValue
=
c
->
getValue
();
int
oldValue
=
c
->
getValue
();
c
->
setValue
(
event
->
getV
alue
());
c
->
setValue
(
event
.
v
alue
());
emit
logSetCounter
(
this
,
c
->
getName
(),
event
->
getV
alue
(),
oldValue
);
emit
logSetCounter
(
this
,
c
->
getName
(),
event
.
v
alue
(),
oldValue
);
}
}
void
Player
::
eventDelCounter
(
Event_DelCounter
*
event
)
void
Player
::
eventDelCounter
(
const
Event_DelCounter
&
event
)
{
{
delCounter
(
event
->
getC
ounter
I
d
());
delCounter
(
event
.
c
ounter
_i
d
());
}
}
void
Player
::
eventDumpZone
(
Event_DumpZone
*
event
)
void
Player
::
eventDumpZone
(
const
Event_DumpZone
&
event
)
{
{
Player
*
zoneOwner
=
static_cast
<
TabGame
*>
(
parent
())
->
getPlayers
().
value
(
event
->
getZ
one
O
wner
I
d
(),
0
);
Player
*
zoneOwner
=
static_cast
<
TabGame
*>
(
parent
())
->
getPlayers
().
value
(
event
.
z
one
_o
wner
_i
d
(),
0
);
if
(
!
zoneOwner
)
if
(
!
zoneOwner
)
return
;
return
;
CardZone
*
zone
=
zoneOwner
->
getZones
().
value
(
event
->
getZone
(
),
0
);
CardZone
*
zone
=
zoneOwner
->
getZones
().
value
(
QString
::
fromStdString
(
event
.
zone_name
()
),
0
);
if
(
!
zone
)
if
(
!
zone
)
return
;
return
;
emit
logDumpZone
(
this
,
zone
,
event
->
getN
umber
C
ards
());
emit
logDumpZone
(
this
,
zone
,
event
.
n
umber
_c
ards
());
}
}
void
Player
::
eventStopDumpZone
(
Event_StopDumpZone
*
event
)
void
Player
::
eventStopDumpZone
(
const
Event_StopDumpZone
&
event
)
{
{
Player
*
zoneOwner
=
static_cast
<
TabGame
*>
(
parent
())
->
getPlayers
().
value
(
event
->
getZ
one
O
wner
I
d
(),
0
);
Player
*
zoneOwner
=
static_cast
<
TabGame
*>
(
parent
())
->
getPlayers
().
value
(
event
.
z
one
_o
wner
_i
d
(),
0
);
if
(
!
zoneOwner
)
if
(
!
zoneOwner
)
return
;
return
;
CardZone
*
zone
=
zoneOwner
->
getZones
().
value
(
event
->
getZone
(
),
0
);
CardZone
*
zone
=
zoneOwner
->
getZones
().
value
(
QString
::
fromStdString
(
event
.
zone_name
()
),
0
);
if
(
!
zone
)
if
(
!
zone
)
return
;
return
;
emit
logStopDumpZone
(
this
,
zone
);
emit
logStopDumpZone
(
this
,
zone
);
}
}
void
Player
::
eventMoveCard
(
Event_MoveCard
*
event
,
GameEventContext
*
context
)
void
Player
::
eventMoveCard
(
const
Event_MoveCard
&
event
,
GameEventContext
*
context
)
{
{
CardZone
*
startZone
=
zones
.
value
(
event
->
getStartZone
(),
0
);
CardZone
*
startZone
=
zones
.
value
(
event
->
getStartZone
(),
0
);
Player
*
targetPlayer
=
static_cast
<
TabGame
*>
(
parent
())
->
getPlayers
().
value
(
event
->
getTargetPlayerId
());
Player
*
targetPlayer
=
static_cast
<
TabGame
*>
(
parent
())
->
getPlayers
().
value
(
event
->
getTargetPlayerId
());
...
@@ -999,25 +1022,25 @@ void Player::eventMoveCard(Event_MoveCard *event, GameEventContext *context)
...
@@ -999,25 +1022,25 @@ void Player::eventMoveCard(Event_MoveCard *event, GameEventContext *context)
}
}
}
}
void
Player
::
eventFlipCard
(
Event_FlipCard
*
event
)
void
Player
::
eventFlipCard
(
const
Event_FlipCard
&
event
)
{
{
CardZone
*
zone
=
zones
.
value
(
event
->
getZone
(
),
0
);
CardZone
*
zone
=
zones
.
value
(
QString
::
fromStdString
(
event
.
zone_name
()
),
0
);
if
(
!
zone
)
if
(
!
zone
)
return
;
return
;
CardItem
*
card
=
zone
->
getCard
(
event
->
getC
ard
I
d
(),
event
->
getC
ard
N
ame
());
CardItem
*
card
=
zone
->
getCard
(
event
.
c
ard
_i
d
(),
QString
::
fromStdString
(
event
.
c
ard
_n
ame
())
)
;
if
(
!
card
)
if
(
!
card
)
return
;
return
;
emit
logFlipCard
(
this
,
card
->
getName
(),
event
->
getF
ace
D
own
());
emit
logFlipCard
(
this
,
card
->
getName
(),
event
.
f
ace
_d
own
());
card
->
setFaceDown
(
event
->
getF
ace
D
own
());
card
->
setFaceDown
(
event
.
f
ace
_d
own
());
}
}
void
Player
::
eventDestroyCard
(
Event_DestroyCard
*
event
)
void
Player
::
eventDestroyCard
(
const
Event_DestroyCard
&
event
)
{
{
CardZone
*
zone
=
zones
.
value
(
event
->
getZone
(
),
0
);
CardZone
*
zone
=
zones
.
value
(
QString
::
fromStdString
(
event
.
zone_name
()
),
0
);
if
(
!
zone
)
if
(
!
zone
)
return
;
return
;
CardItem
*
card
=
zone
->
getCard
(
event
->
getC
ard
I
d
(),
QString
());
CardItem
*
card
=
zone
->
getCard
(
event
.
c
ard
_i
d
(),
QString
());
if
(
!
card
)
if
(
!
card
)
return
;
return
;
...
@@ -1027,29 +1050,30 @@ void Player::eventDestroyCard(Event_DestroyCard *event)
...
@@ -1027,29 +1050,30 @@ void Player::eventDestroyCard(Event_DestroyCard *event)
attachedCards
[
i
]
->
setAttachedTo
(
0
);
attachedCards
[
i
]
->
setAttachedTo
(
0
);
emit
logDestroyCard
(
this
,
card
->
getName
());
emit
logDestroyCard
(
this
,
card
->
getName
());
zone
->
takeCard
(
-
1
,
event
->
getC
ard
I
d
(),
true
);
zone
->
takeCard
(
-
1
,
event
.
c
ard
_i
d
(),
true
);
card
->
deleteLater
();
card
->
deleteLater
();
}
}
void
Player
::
eventAttachCard
(
Event_AttachCard
*
event
)
void
Player
::
eventAttachCard
(
const
Event_AttachCard
&
event
)
{
{
const
QMap
<
int
,
Player
*>
&
playerList
=
static_cast
<
TabGame
*>
(
parent
())
->
getPlayers
();
const
QMap
<
int
,
Player
*>
&
playerList
=
static_cast
<
TabGame
*>
(
parent
())
->
getPlayers
();
int
targetPlayerId
=
event
->
getTargetPlayerId
();
Player
*
targetPlayer
=
0
;
Player
*
targetPlayer
=
0
;
CardZone
*
targetZone
=
0
;
CardZone
*
targetZone
=
0
;
CardItem
*
targetCard
=
0
;
CardItem
*
targetCard
=
0
;
if
(
targetPlayerId
!=
-
1
)
if
(
event
.
has_target_player_id
())
{
targetPlayer
=
playerList
.
value
(
targetPlayerId
,
0
);
targetPlayer
=
playerList
.
value
(
event
.
target_player_id
(),
0
);
if
(
targetPlayer
)
if
(
targetPlayer
)
{
targetZone
=
targetPlayer
->
getZones
().
value
(
event
->
getTargetZone
(),
0
);
targetZone
=
targetPlayer
->
getZones
().
value
(
QString
::
fromStdString
(
event
.
target_zone
()),
0
);
if
(
targetZone
)
if
(
targetZone
)
targetCard
=
targetZone
->
getCard
(
event
->
getTargetCardId
(),
QString
());
targetCard
=
targetZone
->
getCard
(
event
.
target_card_id
(),
QString
());
}
}
CardZone
*
startZone
=
getZones
().
value
(
event
->
getS
tart
Z
one
(),
0
);
CardZone
*
startZone
=
getZones
().
value
(
QString
::
fromStdString
(
event
.
s
tart
_z
one
()
)
,
0
);
if
(
!
startZone
)
if
(
!
startZone
)
return
;
return
;
CardItem
*
startCard
=
startZone
->
getCard
(
event
->
getC
ard
I
d
(),
QString
());
CardItem
*
startCard
=
startZone
->
getCard
(
event
.
c
ard
_i
d
(),
QString
());
if
(
!
startCard
)
if
(
!
startCard
)
return
;
return
;
...
@@ -1069,7 +1093,7 @@ void Player::eventAttachCard(Event_AttachCard *event)
...
@@ -1069,7 +1093,7 @@ void Player::eventAttachCard(Event_AttachCard *event)
emit
logUnattachCard
(
this
,
startCard
->
getName
());
emit
logUnattachCard
(
this
,
startCard
->
getName
());
}
}
void
Player
::
eventDrawCards
(
Event_DrawCards
*
event
)
void
Player
::
eventDrawCards
(
const
Event_DrawCards
&
event
)
{
{
CardZone
*
deck
=
zones
.
value
(
"deck"
);
CardZone
*
deck
=
zones
.
value
(
"deck"
);
CardZone
*
hand
=
zones
.
value
(
"hand"
);
CardZone
*
hand
=
zones
.
value
(
"hand"
);
...
@@ -1266,9 +1290,9 @@ void Player::addZone(CardZone *z)
...
@@ -1266,9 +1290,9 @@ void Player::addZone(CardZone *z)
zones
.
insert
(
z
->
getName
(),
z
);
zones
.
insert
(
z
->
getName
(),
z
);
}
}
AbstractCounter
*
Player
::
addCounter
(
ServerInfo_Counter
*
counter
)
AbstractCounter
*
Player
::
addCounter
(
const
ServerInfo_Counter
&
counter
)
{
{
return
addCounter
(
counter
->
getId
(),
counter
->
getN
ame
(),
counter
->
getColor
().
getQC
olor
(),
counter
->
getR
adius
(),
counter
->
getC
ount
());
return
addCounter
(
counter
.
id
(),
QString
::
fromStdString
(
counter
.
n
ame
()
)
,
counter
.
c
olor
(),
counter
.
r
adius
(),
counter
.
c
ount
());
}
}
AbstractCounter
*
Player
::
addCounter
(
int
counterId
,
const
QString
&
name
,
QColor
color
,
int
radius
,
int
value
)
AbstractCounter
*
Player
::
addCounter
(
int
counterId
,
const
QString
&
name
,
QColor
color
,
int
radius
,
int
value
)
...
@@ -1312,7 +1336,7 @@ void Player::clearCounters()
...
@@ -1312,7 +1336,7 @@ void Player::clearCounters()
playerTarget
->
delCounter
();
playerTarget
->
delCounter
();
}
}
ArrowItem
*
Player
::
addArrow
(
ServerInfo_Arrow
*
arrow
)
ArrowItem
*
Player
::
addArrow
(
const
ServerInfo_Arrow
&
arrow
)
{
{
const
QMap
<
int
,
Player
*>
&
playerList
=
static_cast
<
TabGame
*>
(
parent
())
->
getPlayers
();
const
QMap
<
int
,
Player
*>
&
playerList
=
static_cast
<
TabGame
*>
(
parent
())
->
getPlayers
();
Player
*
startPlayer
=
playerList
.
value
(
arrow
->
getStartPlayerId
(),
0
);
Player
*
startPlayer
=
playerList
.
value
(
arrow
->
getStartPlayerId
(),
0
);
...
...
cockatrice/src/player.h
View file @
695fde75
...
@@ -4,7 +4,7 @@
...
@@ -4,7 +4,7 @@
#include
<QInputDialog>
#include
<QInputDialog>
#include
<QPoint>
#include
<QPoint>
#include
<QMap>
#include
<QMap>
#include
"
card
item.h"
#include
"
abstractgraphics
item.h"
#include
<google/protobuf/message.h>
#include
<google/protobuf/message.h>
class
CardDatabase
;
class
CardDatabase
;
...
@@ -13,6 +13,9 @@ class QAction;
...
@@ -13,6 +13,9 @@ class QAction;
class
ZoneViewZone
;
class
ZoneViewZone
;
class
TabGame
;
class
TabGame
;
class
AbstractCounter
;
class
AbstractCounter
;
class
AbstractCardItem
;
class
CardItem
;
class
ArrowTarget
;
class
ArrowItem
;
class
ArrowItem
;
class
CardZone
;
class
CardZone
;
class
StackZone
;
class
StackZone
;
...
@@ -28,15 +31,15 @@ class GameCommand;
...
@@ -28,15 +31,15 @@ class GameCommand;
class
GameEvent
;
class
GameEvent
;
class
GameEventContext
;
class
GameEventContext
;
class
Event_ConnectionStateChanged
;
class
Event_ConnectionStateChanged
;
class
Event_Say
;
class
Event_
Game
Say
;
class
Event_Shuffle
;
class
Event_Shuffle
;
class
Event_RollDie
;
class
Event_RollDie
;
class
Event_CreateArrow
s
;
class
Event_CreateArrow
;
class
Event_DeleteArrow
;
class
Event_DeleteArrow
;
class
Event_CreateToken
;
class
Event_CreateToken
;
class
Event_SetCardAttr
;
class
Event_SetCardAttr
;
class
Event_SetCardCounter
;
class
Event_SetCardCounter
;
class
Event_CreateCounter
s
;
class
Event_CreateCounter
;
class
Event_SetCounter
;
class
Event_SetCounter
;
class
Event_DelCounter
;
class
Event_DelCounter
;
class
Event_DumpZone
;
class
Event_DumpZone
;
...
@@ -170,7 +173,7 @@ private:
...
@@ -170,7 +173,7 @@ private:
HandZone
*
hand
;
HandZone
*
hand
;
PlayerTarget
*
playerTarget
;
PlayerTarget
*
playerTarget
;
void
setCardAttrHelper
(
GameEventContext
*
context
,
CardItem
*
card
,
const
QString
&
aname
,
const
QString
&
avalue
,
bool
allCards
);
void
setCardAttrHelper
(
const
GameEventContext
&
context
,
CardItem
*
card
,
const
QString
&
aname
,
const
QString
&
avalue
,
bool
allCards
);
QRectF
bRect
;
QRectF
bRect
;
...
@@ -180,26 +183,26 @@ private:
...
@@ -180,26 +183,26 @@ private:
void
initSayMenu
();
void
initSayMenu
();
void
eventConnectionStateChanged
(
Event_ConnectionStateChanged
*
event
);
void
eventConnectionStateChanged
(
const
Event_ConnectionStateChanged
&
event
);
void
event
Say
(
Event_Say
*
event
);
void
event
GameSay
(
const
Event_
Game
Say
&
event
);
void
eventShuffle
(
Event_Shuffle
*
event
);
void
eventShuffle
(
const
Event_Shuffle
&
event
);
void
eventRollDie
(
Event_RollDie
*
event
);
void
eventRollDie
(
const
Event_RollDie
&
event
);
void
eventCreateArrow
s
(
Event_CreateArrow
s
*
event
);
void
eventCreateArrow
(
const
Event_CreateArrow
&
event
);
void
eventDeleteArrow
(
Event_DeleteArrow
*
event
);
void
eventDeleteArrow
(
const
Event_DeleteArrow
&
event
);
void
eventCreateToken
(
Event_CreateToken
*
event
);
void
eventCreateToken
(
const
Event_CreateToken
&
event
);
void
eventSetCardAttr
(
Event_SetCardAttr
*
event
,
GameEventContext
*
context
);
void
eventSetCardAttr
(
const
Event_SetCardAttr
&
event
,
const
GameEventContext
&
context
);
void
eventSetCardCounter
(
Event_SetCardCounter
*
event
);
void
eventSetCardCounter
(
const
Event_SetCardCounter
&
event
);
void
eventCreateCounter
s
(
Event_CreateCounter
s
*
event
);
void
eventCreateCounter
(
const
Event_CreateCounter
&
event
);
void
eventSetCounter
(
Event_SetCounter
*
event
);
void
eventSetCounter
(
const
Event_SetCounter
&
event
);
void
eventDelCounter
(
Event_DelCounter
*
event
);
void
eventDelCounter
(
const
Event_DelCounter
&
event
);
void
eventDumpZone
(
Event_DumpZone
*
event
);
void
eventDumpZone
(
const
Event_DumpZone
&
event
);
void
eventStopDumpZone
(
Event_StopDumpZone
*
event
);
void
eventStopDumpZone
(
const
Event_StopDumpZone
&
event
);
void
eventMoveCard
(
Event_MoveCard
*
event
,
GameEventContext
*
context
);
void
eventMoveCard
(
const
Event_MoveCard
&
event
,
GameEventContext
&
context
);
void
eventFlipCard
(
Event_FlipCard
*
event
);
void
eventFlipCard
(
const
Event_FlipCard
&
event
);
void
eventDestroyCard
(
Event_DestroyCard
*
event
);
void
eventDestroyCard
(
const
Event_DestroyCard
&
event
);
void
eventAttachCard
(
Event_AttachCard
*
event
);
void
eventAttachCard
(
const
Event_AttachCard
&
event
);
void
eventDrawCards
(
Event_DrawCards
*
event
);
void
eventDrawCards
(
const
Event_DrawCards
&
event
);
void
eventRevealCards
(
Event_RevealCards
*
event
);
void
eventRevealCards
(
const
Event_RevealCards
&
event
);
public:
public:
static
const
int
counterAreaWidth
=
55
;
static
const
int
counterAreaWidth
=
55
;
...
@@ -213,19 +216,19 @@ public:
...
@@ -213,19 +216,19 @@ public:
void
deleteCard
(
CardItem
*
c
);
void
deleteCard
(
CardItem
*
c
);
void
addZone
(
CardZone
*
z
);
void
addZone
(
CardZone
*
z
);
AbstractCounter
*
addCounter
(
ServerInfo_Counter
*
counter
);
AbstractCounter
*
addCounter
(
const
ServerInfo_Counter
&
counter
);
AbstractCounter
*
addCounter
(
int
counterId
,
const
QString
&
name
,
QColor
color
,
int
radius
,
int
value
);
AbstractCounter
*
addCounter
(
int
counterId
,
const
QString
&
name
,
QColor
color
,
int
radius
,
int
value
);
void
delCounter
(
int
counterId
);
void
delCounter
(
int
counterId
);
void
clearCounters
();
void
clearCounters
();
ArrowItem
*
addArrow
(
ServerInfo_Arrow
*
arrow
);
ArrowItem
*
addArrow
(
const
ServerInfo_Arrow
&
arrow
);
ArrowItem
*
addArrow
(
int
arrowId
,
CardItem
*
startCard
,
ArrowTarget
*
targetItem
,
const
QColor
&
color
);
ArrowItem
*
addArrow
(
int
arrowId
,
CardItem
*
startCard
,
ArrowTarget
*
targetItem
,
const
QColor
&
color
);
void
delArrow
(
int
arrowId
);
void
delArrow
(
int
arrowId
);
void
removeArrow
(
ArrowItem
*
arrow
);
void
removeArrow
(
ArrowItem
*
arrow
);
void
clearArrows
();
void
clearArrows
();
PlayerTarget
*
getPlayerTarget
()
const
{
return
playerTarget
;
}
PlayerTarget
*
getPlayerTarget
()
const
{
return
playerTarget
;
}
Player
(
ServerInfo_User
*
info
,
int
_id
,
bool
_local
,
TabGame
*
_parent
);
Player
(
const
ServerInfo_User
&
info
,
int
_id
,
bool
_local
,
TabGame
*
_parent
);
~
Player
();
~
Player
();
void
retranslateUi
();
void
retranslateUi
();
void
clear
();
void
clear
();
...
...
cockatrice/src/tablezone.h
View file @
695fde75
...
@@ -2,6 +2,7 @@
...
@@ -2,6 +2,7 @@
#define TABLEZONE_H
#define TABLEZONE_H
#include
"selectzone.h"
#include
"selectzone.h"
#include
"abstractcarditem.h"
class
TableZone
:
public
SelectZone
{
class
TableZone
:
public
SelectZone
{
Q_OBJECT
Q_OBJECT
...
...
common/pb/proto/event_shuffle.proto
View file @
695fde75
...
@@ -4,4 +4,5 @@ message Event_Shuffle {
...
@@ -4,4 +4,5 @@ message Event_Shuffle {
extend
GameEvent
{
extend
GameEvent
{
optional
Event_Shuffle
ext
=
2007
;
optional
Event_Shuffle
ext
=
2007
;
}
}
optional
string
zone_name
=
1
;
}
}
common/server_protocolhandler.cpp
View file @
695fde75
...
@@ -979,7 +979,10 @@ Response::ResponseCode Server_ProtocolHandler::cmdShuffle(const Command_Shuffle
...
@@ -979,7 +979,10 @@ Response::ResponseCode Server_ProtocolHandler::cmdShuffle(const Command_Shuffle
player
->
getZones
().
value
(
"deck"
)
->
shuffle
();
player
->
getZones
().
value
(
"deck"
)
->
shuffle
();
ges
.
enqueueGameEvent
(
Event_Shuffle
(),
player
->
getPlayerId
());
Event_Shuffle
event
;
event
.
set_zone_name
(
"deck"
);
ges
.
enqueueGameEvent
(
event
,
player
->
getPlayerId
());
return
Response
::
RespOk
;
return
Response
::
RespOk
;
}
}
...
...
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