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
c4c17232
Commit
c4c17232
authored
Sep 07, 2010
by
Max-Wilhelm Bruker
Browse files
single player improvements
parent
82e4f9e1
Changes
11
Hide whitespace changes
Inline
Side-by-side
cockatrice/src/counter.cpp
View file @
c4c17232
...
...
@@ -42,11 +42,24 @@ void Counter::retranslateUi()
{
if
(
menu
)
{
aSet
->
setText
(
tr
(
"&Set counter..."
));
if
(
name
==
"life"
)
{
aSet
->
setShortcut
(
tr
(
"Ctrl+L"
));
aDec
->
setShortcut
(
tr
(
"F11"
));
aInc
->
setShortcut
(
tr
(
"F12"
));
}
}
}
void
Counter
::
setShortcutsActive
()
{
if
(
name
==
"life"
)
{
aSet
->
setShortcut
(
tr
(
"Ctrl+L"
));
aDec
->
setShortcut
(
tr
(
"F11"
));
aInc
->
setShortcut
(
tr
(
"F12"
));
}
}
void
Counter
::
setShortcutsInactive
()
{
if
(
name
==
"life"
)
{
aSet
->
setShortcut
(
QKeySequence
());
aDec
->
setShortcut
(
QKeySequence
());
aInc
->
setShortcut
(
QKeySequence
());
}
}
...
...
cockatrice/src/counter.h
View file @
c4c17232
...
...
@@ -37,6 +37,9 @@ public:
QString
getName
()
const
{
return
name
;
}
int
getValue
()
const
{
return
value
;
}
void
setValue
(
int
_value
);
void
setShortcutsActive
();
void
setShortcutsInactive
();
};
#endif
cockatrice/src/localserver.cpp
View file @
c4c17232
...
...
@@ -13,5 +13,6 @@ LocalServer::~LocalServer()
LocalServerInterface
*
LocalServer
::
newConnection
()
{
LocalServerInterface
*
lsi
=
new
LocalServerInterface
(
this
);
addClient
(
lsi
);
return
lsi
;
}
cockatrice/src/player.cpp
View file @
c4c17232
...
...
@@ -300,19 +300,12 @@ void Player::retranslateUi()
aMoveRfgToHand
->
setText
(
tr
(
"Move to &hand"
));
aMoveRfgToGrave
->
setText
(
tr
(
"Move to g&raveyard"
));
aViewLibrary
->
setText
(
tr
(
"&View library"
));
aViewLibrary
->
setShortcut
(
tr
(
"F3"
));
aViewTopCards
->
setText
(
tr
(
"View &top cards of library..."
));
aViewTopCards
->
setShortcut
(
tr
(
"Ctrl+W"
));
aViewGraveyard
->
setShortcut
(
tr
(
"F4"
));
aViewSideboard
->
setText
(
tr
(
"&View sideboard"
));
aDrawCard
->
setText
(
tr
(
"&Draw card"
));
aDrawCard
->
setShortcut
(
tr
(
"Ctrl+D"
));
aDrawCards
->
setText
(
tr
(
"D&raw cards..."
));
aDrawCards
->
setShortcut
(
tr
(
"Ctrl+E"
));
aMulligan
->
setText
(
tr
(
"Take &mulligan"
));
aMulligan
->
setShortcut
(
tr
(
"Ctrl+M"
));
aMulligan
->
setText
(
tr
(
"Take &mulligan"
));
aShuffle
->
setText
(
tr
(
"&Shuffle"
));
aShuffle
->
setShortcut
(
tr
(
"Ctrl+S"
));
handMenu
->
setTitle
(
tr
(
"&Hand"
));
sbMenu
->
setTitle
(
tr
(
"&Sideboard"
));
...
...
@@ -320,13 +313,9 @@ void Player::retranslateUi()
countersMenu
->
setTitle
(
tr
(
"&Counters"
));
aUntapAll
->
setText
(
tr
(
"&Untap all permanents"
));
aUntapAll
->
setShortcut
(
tr
(
"Ctrl+U"
));
aRollDie
->
setText
(
tr
(
"R&oll die..."
));
aRollDie
->
setShortcut
(
tr
(
"Ctrl+I"
));
aCreateToken
->
setText
(
tr
(
"&Create token..."
));
aCreateToken
->
setShortcut
(
tr
(
"Ctrl+T"
));
aCreateAnotherToken
->
setText
(
tr
(
"C&reate another token"
));
aCreateAnotherToken
->
setShortcut
(
tr
(
"Ctrl+G"
));
sayMenu
->
setTitle
(
tr
(
"S&ay"
));
QMapIterator
<
int
,
Counter
*>
counterIterator
(
counters
);
...
...
@@ -341,6 +330,44 @@ void Player::retranslateUi()
zoneIterator
.
next
().
value
()
->
retranslateUi
();
}
void
Player
::
setShortcutsActive
()
{
aViewLibrary
->
setShortcut
(
tr
(
"F3"
));
aViewTopCards
->
setShortcut
(
tr
(
"Ctrl+W"
));
aViewGraveyard
->
setShortcut
(
tr
(
"F4"
));
aDrawCard
->
setShortcut
(
tr
(
"Ctrl+D"
));
aDrawCards
->
setShortcut
(
tr
(
"Ctrl+E"
));
aMulligan
->
setShortcut
(
tr
(
"Ctrl+M"
));
aShuffle
->
setShortcut
(
tr
(
"Ctrl+S"
));
aUntapAll
->
setShortcut
(
tr
(
"Ctrl+U"
));
aRollDie
->
setShortcut
(
tr
(
"Ctrl+I"
));
aCreateToken
->
setShortcut
(
tr
(
"Ctrl+T"
));
aCreateAnotherToken
->
setShortcut
(
tr
(
"Ctrl+G"
));
QMapIterator
<
int
,
Counter
*>
counterIterator
(
counters
);
while
(
counterIterator
.
hasNext
())
counterIterator
.
next
().
value
()
->
setShortcutsActive
();
}
void
Player
::
setShortcutsInactive
()
{
aViewLibrary
->
setShortcut
(
QKeySequence
());
aViewTopCards
->
setShortcut
(
QKeySequence
());
aViewGraveyard
->
setShortcut
(
QKeySequence
());
aDrawCard
->
setShortcut
(
QKeySequence
());
aDrawCards
->
setShortcut
(
QKeySequence
());
aMulligan
->
setShortcut
(
QKeySequence
());
aShuffle
->
setShortcut
(
QKeySequence
());
aUntapAll
->
setShortcut
(
QKeySequence
());
aRollDie
->
setShortcut
(
QKeySequence
());
aCreateToken
->
setShortcut
(
QKeySequence
());
aCreateAnotherToken
->
setShortcut
(
QKeySequence
());
QMapIterator
<
int
,
Counter
*>
counterIterator
(
counters
);
while
(
counterIterator
.
hasNext
())
counterIterator
.
next
().
value
()
->
setShortcutsInactive
();
}
void
Player
::
initSayMenu
()
{
sayMenu
->
clear
();
...
...
cockatrice/src/player.h
View file @
c4c17232
...
...
@@ -185,6 +185,8 @@ public:
QMenu
*
getCardMenu
()
const
;
bool
getActive
()
const
{
return
active
;
}
void
setActive
(
bool
_active
);
void
setShortcutsActive
();
void
setShortcutsInactive
();
qreal
getMinimumWidth
()
const
;
void
setMirrored
(
bool
_mirrored
);
...
...
cockatrice/src/tab_game.cpp
View file @
c4c17232
...
...
@@ -328,8 +328,10 @@ Player *TabGame::addPlayer(int playerId, const QString &playerName)
AbstractClient
*
client
;
if
(
clients
.
size
()
>
1
)
client
=
clients
.
at
(
playerId
);
else
else
{
client
=
clients
.
first
();
newPlayer
->
setShortcutsActive
();
}
DeckViewContainer
*
deckView
=
new
DeckViewContainer
(
client
,
this
);
connect
(
deckView
,
SIGNAL
(
newCardAdded
(
AbstractCardItem
*
)),
this
,
SLOT
(
newCardAdded
(
AbstractCardItem
*
)));
deckViewContainers
.
insert
(
playerId
,
deckView
);
...
...
@@ -590,7 +592,15 @@ Player *TabGame::setActivePlayer(int id)
QMapIterator
<
int
,
Player
*>
i
(
players
);
while
(
i
.
hasNext
())
{
i
.
next
();
i
.
value
()
->
setActive
(
i
.
value
()
==
player
);
if
(
i
.
value
()
==
player
)
{
i
.
value
()
->
setActive
(
true
);
if
(
clients
.
size
()
>
1
)
i
.
value
()
->
setShortcutsActive
();
}
else
{
i
.
value
()
->
setActive
(
false
);
if
(
clients
.
size
()
>
1
)
i
.
value
()
->
setShortcutsInactive
();
}
}
currentPhase
=
-
1
;
emit
userEvent
();
...
...
cockatrice/src/tab_supervisor.cpp
View file @
c4c17232
...
...
@@ -20,6 +20,7 @@ TabSupervisor:: TabSupervisor(QWidget *parent)
TabSupervisor
::~
TabSupervisor
()
{
stop
();
delete
tabChangedIcon
;
}
...
...
@@ -78,11 +79,22 @@ void TabSupervisor::startLocal(const QList<AbstractClient *> &_clients)
void
TabSupervisor
::
stop
()
{
if
(
!
client
)
if
(
(
!
client
)
&&
localClients
.
isEmpty
())
return
;
disconnect
(
client
,
0
,
this
,
0
);
if
(
client
)
{
disconnect
(
client
,
0
,
this
,
0
);
client
=
0
;
}
if
(
!
localClients
.
isEmpty
())
{
for
(
int
i
=
0
;
i
<
localClients
.
size
();
++
i
)
localClients
[
i
]
->
deleteLater
();
localClients
.
clear
();
emit
localGameEnded
();
}
clear
();
delete
tabServer
;
...
...
@@ -93,12 +105,12 @@ void TabSupervisor::stop()
QMapIterator
<
QString
,
TabChatChannel
*>
chatChannelIterator
(
chatChannelTabs
);
while
(
chatChannelIterator
.
hasNext
())
delete
chatChannelIterator
.
next
().
value
();
chatChannelIterator
.
next
().
value
()
->
deleteLater
()
;
chatChannelTabs
.
clear
();
QMapIterator
<
int
,
TabGame
*>
gameIterator
(
gameTabs
);
while
(
gameIterator
.
hasNext
())
delete
gameIterator
.
next
().
value
();
gameIterator
.
next
().
value
()
->
deleteLater
()
;
gameTabs
.
clear
();
}
...
...
@@ -128,7 +140,6 @@ void TabSupervisor::localGameJoined(Event_GameJoined *event)
setCurrentWidget
(
tab
);
for
(
int
i
=
1
;
i
<
localClients
.
size
();
++
i
)
{
qDebug
(
"JOINING"
);
Command_JoinGame
*
cmd
=
new
Command_JoinGame
(
event
->
getGameId
());
localClients
[
i
]
->
sendCommand
(
cmd
);
}
...
...
@@ -140,6 +151,9 @@ void TabSupervisor::gameLeft(TabGame *tab)
gameTabs
.
remove
(
tab
->
getGameId
());
removeTab
(
indexOf
(
tab
));
if
(
!
localClients
.
isEmpty
())
stop
();
}
void
TabSupervisor
::
addChatChannelTab
(
const
QString
&
channelName
)
...
...
cockatrice/src/tab_supervisor.h
View file @
c4c17232
...
...
@@ -36,6 +36,7 @@ public:
int
getGameCount
()
const
{
return
gameTabs
.
size
();
}
signals:
void
setMenu
(
QMenu
*
menu
);
void
localGameEnded
();
private
slots
:
void
updateCurrent
(
int
index
);
void
updatePingTime
(
int
value
,
int
max
);
...
...
cockatrice/src/window_main.cpp
View file @
c4c17232
...
...
@@ -48,10 +48,12 @@ void MainWindow::statusChanged(ClientStatus _status)
break
;
case
StatusDisconnected
:
tabSupervisor
->
stop
();
aSinglePlayer
->
setEnabled
(
true
);
aConnect
->
setEnabled
(
true
);
aDisconnect
->
setEnabled
(
false
);
break
;
case
StatusLoggingIn
:
aSinglePlayer
->
setEnabled
(
false
);
aConnect
->
setEnabled
(
false
);
aDisconnect
->
setEnabled
(
true
);
break
;
...
...
@@ -85,13 +87,17 @@ void MainWindow::actSinglePlayer()
if
(
!
ok
)
return
;
LocalServer
*
ls
=
new
LocalServer
(
this
);
LocalServerInterface
*
mainLsi
=
ls
->
newConnection
();
aConnect
->
setEnabled
(
false
);
aSinglePlayer
->
setEnabled
(
false
);
localServer
=
new
LocalServer
(
this
);
LocalServerInterface
*
mainLsi
=
localServer
->
newConnection
();
LocalClient
*
mainClient
=
new
LocalClient
(
mainLsi
,
tr
(
"Player %1"
).
arg
(
1
),
this
);
QList
<
AbstractClient
*>
localClients
;
localClients
.
append
(
mainClient
);
for
(
int
i
=
0
;
i
<
numberPlayers
-
1
;
++
i
)
{
LocalServerInterface
*
slaveLsi
=
l
s
->
newConnection
();
LocalServerInterface
*
slaveLsi
=
l
ocalServer
->
newConnection
();
LocalClient
*
slaveClient
=
new
LocalClient
(
slaveLsi
,
tr
(
"Player %1"
).
arg
(
i
+
2
),
this
);
localClients
.
append
(
slaveClient
);
}
...
...
@@ -101,6 +107,15 @@ void MainWindow::actSinglePlayer()
mainClient
->
sendCommand
(
createCommand
);
}
void
MainWindow
::
localGameEnded
()
{
delete
localServer
;
localServer
=
0
;
aConnect
->
setEnabled
(
true
);
aSinglePlayer
->
setEnabled
(
true
);
}
void
MainWindow
::
actDeckEditor
()
{
WndDeckEditor
*
deckEditor
=
new
WndDeckEditor
(
this
);
...
...
@@ -214,7 +229,7 @@ void MainWindow::createMenus()
}
MainWindow
::
MainWindow
(
QWidget
*
parent
)
:
QMainWindow
(
parent
),
tabMenu
(
0
)
:
QMainWindow
(
parent
),
tabMenu
(
0
)
,
localServer
(
0
)
{
QPixmapCache
::
setCacheLimit
(
200000
);
...
...
@@ -227,6 +242,7 @@ MainWindow::MainWindow(QWidget *parent)
tabSupervisor
=
new
TabSupervisor
;
connect
(
tabSupervisor
,
SIGNAL
(
setMenu
(
QMenu
*
)),
this
,
SLOT
(
updateTabMenu
(
QMenu
*
)));
connect
(
tabSupervisor
,
SIGNAL
(
localGameEnded
()),
this
,
SLOT
(
localGameEnded
()));
setCentralWidget
(
tabSupervisor
);
...
...
cockatrice/src/window_main.h
View file @
c4c17232
...
...
@@ -27,6 +27,7 @@
class
TabSupervisor
;
class
RemoteClient
;
class
LocalClient
;
class
LocalServer
;
class
MainWindow
:
public
QMainWindow
{
Q_OBJECT
...
...
@@ -37,6 +38,7 @@ private slots:
void
serverError
(
ResponseCode
r
);
void
socketError
(
const
QString
&
errorStr
);
void
protocolVersionMismatch
(
int
localVersion
,
int
remoteVersion
);
void
localGameEnded
();
void
actConnect
();
void
actDisconnect
();
...
...
@@ -56,7 +58,7 @@ private:
TabSupervisor
*
tabSupervisor
;
RemoteClient
*
client
;
QList
<
AbstractClient
*>
localClients
;
LocalServer
*
localServer
;
public:
MainWindow
(
QWidget
*
parent
=
0
);
protected:
...
...
common/server.cpp
View file @
c4c17232
...
...
@@ -22,6 +22,7 @@
#include
"server_counter.h"
#include
"server_chatchannel.h"
#include
"server_protocolhandler.h"
#include
<QDebug>
Server
::
Server
(
QObject
*
parent
)
:
QObject
(
parent
),
nextGameId
(
0
)
...
...
@@ -30,6 +31,8 @@ Server::Server(QObject *parent)
Server
::~
Server
()
{
while
(
!
clients
.
isEmpty
())
delete
clients
.
takeFirst
();
}
Server_Game
*
Server
::
createGame
(
const
QString
&
description
,
const
QString
&
password
,
int
maxPlayers
,
bool
spectatorsAllowed
,
bool
spectatorsNeedPassword
,
bool
spectatorsCanTalk
,
bool
spectatorsSeeEverything
,
Server_ProtocolHandler
*
creator
)
...
...
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