<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="tr">
	<id>https://tr.doc.boardgamearena.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Quinarbre</id>
	<title>Board Game Arena - Kullanıcı katkıları [tr]</title>
	<link rel="self" type="application/atom+xml" href="https://tr.doc.boardgamearena.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Quinarbre"/>
	<link rel="alternate" type="text/html" href="https://tr.doc.boardgamearena.com/%C3%96zel:Katk%C4%B1lar/Quinarbre"/>
	<updated>2026-09-16T23:35:01Z</updated>
	<subtitle>Kullanıcı katkıları</subtitle>
	<generator>MediaWiki 1.39.0</generator>
	<entry>
		<id>https://tr.doc.boardgamearena.com/index.php?title=Gamehelptashkalar&amp;diff=1702</id>
		<title>Gamehelptashkalar</title>
		<link rel="alternate" type="text/html" href="https://tr.doc.boardgamearena.com/index.php?title=Gamehelptashkalar&amp;diff=1702"/>
		<updated>2015-12-07T09:58:36Z</updated>

		<summary type="html">&lt;p&gt;Quinarbre: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Game forms ==&lt;br /&gt;
&lt;br /&gt;
On Board Game Arena, Tash-Kalar may be played by 2 to 4 players), and in 2 distinct forms :&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;The High Form&#039;&#039;&#039;: Players score points for tasks and for legendary pieces currently on the board, only available for 2 players.&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;Deathmatch&#039;&#039;&#039;: No tasks. Players score points for destroying enemy pieces, for summoning legendary beings, and when their opponents invoke a flare. Deathmatch can be played by 2 to 4 players.&lt;br /&gt;
&lt;br /&gt;
The actual board game also features team play in both forms.&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
&lt;br /&gt;
Each player draws 6 cards : 3 beings from his or her own deck, 2 legends, and 1 flare.&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;&#039;High Form&#039;&#039;&#039;, 3 tasks are revealed that may be claimed, along with a fourth &amp;quot;next task&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;&#039;Deathmatch&#039;&#039;&#039;, the player who plays second puts one common piece of each color on the game board, on marked squares.&lt;br /&gt;
&lt;br /&gt;
== Game play ==&lt;br /&gt;
&lt;br /&gt;
Players take turns in clockwise order, beginning with the starting player.&lt;br /&gt;
Each turn, you have 2 actions. Exception: The starting player has only 1 action on his or&lt;br /&gt;
her first turn.&lt;br /&gt;
&lt;br /&gt;
Possible actions:&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;Place 1 common piece&#039;&#039;&#039; of your color on any empty square. If you have none left to place, you begin this action by picking up 1 of your common or heroic pieces, then place it as a common piece.&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;Summon a being&#039;&#039;&#039;. (See below.)&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;Discard 1 being&#039;&#039;&#039; that you drew from your deck. If you do, you may also return one&lt;br /&gt;
or more of your other cards to the bottoms of their decks.&lt;br /&gt;
&lt;br /&gt;
Actions can be done in any order. You can do more than one “place” or “summon” action&lt;br /&gt;
per turn (but no more than one “discard” action). You have to use all your actions.&lt;br /&gt;
You can invoke a flare (see below) before or after any action.&lt;br /&gt;
Invoking a flare does not cost you an action.&lt;br /&gt;
&lt;br /&gt;
Finish your turn by drawing cards so that you end up with 3 beings from your deck, 2&lt;br /&gt;
legends, and 1 flare.&lt;br /&gt;
If you draw the last card in your deck, you may end up with fewer than 3.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High Form&#039;&#039;&#039;: At the end of the turn, you may claim exactly 1 of the current tasks, if you meet its&lt;br /&gt;
criteria.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Deathmatch&#039;&#039;&#039;: At the end of your turn, score points for destroyed enemy pieces: 2 points for legendary,&lt;br /&gt;
1 point for heroic, 1 point for each pair of common pieces.&lt;br /&gt;
&lt;br /&gt;
In Deathmatch Melee (3-4 players) you keep a separate count of colored points against each of your opponents. Your final score is the &#039;&#039;&#039;lowest&#039;&#039;&#039; of all your colored scores.&lt;br /&gt;
&lt;br /&gt;
You get no points for destroying your own pieces. You get no points for an un-&lt;br /&gt;
paired common piece, but you can pair two common pieces in different colors.&lt;br /&gt;
Also score 1 point (in the color of your choice) each time you summon a legend. (Upgrading a heroic piece does not&lt;br /&gt;
count as “summoning a legend”.)&lt;br /&gt;
&lt;br /&gt;
== Summoning a being ==&lt;br /&gt;
&lt;br /&gt;
To summon a being, use 1 action and do the following:&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;Play the card&#039;&#039;&#039; from your hand and choose a square on the board where your pieces match the pattern on the card.&lt;br /&gt;
The pattern can be rotated (by 90, 180, or 270 degrees). Mirror images and flips&lt;br /&gt;
also count as a match.&lt;br /&gt;
The pieces used to summon the being can be the same rank as those depicted&lt;br /&gt;
in the pattern or higher rank.&lt;br /&gt;
Empty squares are not important to the pattern.&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;Place a piece of the indicated rank&#039;&#039;&#039; (upper left corner of the card) on the square&lt;br /&gt;
indicated by the white-framed square in the pattern.&lt;br /&gt;
This square may be empty, unless the pattern says it must be occupied by one&lt;br /&gt;
of your pieces.&lt;br /&gt;
If the square is occupied by a piece of the same rank or lower, destroy that piece&lt;br /&gt;
when you put the new piece on the square.&lt;br /&gt;
If the square is occupied by a piece of higher rank, you cannot summon the&lt;br /&gt;
being.&lt;br /&gt;
If all your pieces of that type are already on the board, you may&lt;br /&gt;
still be able to summon the being by picking up a piece that is not required for the pattern and use it as&lt;br /&gt;
the new piece.&lt;br /&gt;
&lt;br /&gt;
- Once the new piece is on the board, &#039;&#039;&#039;resolve the effect&#039;&#039;&#039; printed on the card.&lt;br /&gt;
&lt;br /&gt;
- After resolving the effect, discard the card.&lt;br /&gt;
&lt;br /&gt;
== Invoking a flare ==&lt;br /&gt;
&lt;br /&gt;
You can invoke a flare on your turn before or after any action.&lt;br /&gt;
To invoke a flare, you must meet at least one of the criteria:&lt;br /&gt;
&lt;br /&gt;
- You meet the upper criterion if one of your opponents has &#039;&#039;&#039;that many more upgraded&lt;br /&gt;
pieces&#039;&#039;&#039; (heroic and legendary) on the board than you.&lt;br /&gt;
&lt;br /&gt;
- You meet the lower criterion if one of your opponents has &#039;&#039;&#039;that many more pieces (total)&#039;&#039;&#039;&lt;br /&gt;
on the board than you.&lt;br /&gt;
&lt;br /&gt;
If you meet the upper criterion, you resolve the upper effect. If you meet the lower&lt;br /&gt;
criterion, you resolve the lower effect. If you meet both, you resolve the upper effect&lt;br /&gt;
first, then the lower.&lt;br /&gt;
If you meet the criteria against several opponents, you choose against whom you compare.&lt;br /&gt;
Once the card has been resolved, discard it.&lt;br /&gt;
&lt;br /&gt;
== Resolving effects of beings and flares ==&lt;br /&gt;
&lt;br /&gt;
No other action can be taken and no flare can be invoked until the entire effect of the&lt;br /&gt;
card is resolved.&lt;br /&gt;
Some parts of an effect may be optional:&lt;br /&gt;
&lt;br /&gt;
- May indicates that a certain part of an effect is optional.&lt;br /&gt;
&lt;br /&gt;
- Up to always includes 0.&lt;br /&gt;
&lt;br /&gt;
Any parts that are not specified as optional are mandatory.&lt;br /&gt;
If an effect cannot be performed fully, do the parts that can be done.&lt;br /&gt;
When a card uses its own name, it is referring to the piece on the board that represents&lt;br /&gt;
the summoned being.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Keywords&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
- Upgraded piece: a heroic or legendary piece.&lt;br /&gt;
&lt;br /&gt;
- Non-legendary piece: a common or heroic piece.&lt;br /&gt;
&lt;br /&gt;
- Piece: If a piece is not specified as belonging to you or an opponent, then the&lt;br /&gt;
effect includes any player&#039;s piece.&lt;br /&gt;
&lt;br /&gt;
- Marked space: a colored space in the pattern. If the text does not refer to marked&lt;br /&gt;
spaces, the colored spaces in the pattern are just illustrational.&lt;br /&gt;
&lt;br /&gt;
- Adjacent square: one of eight squares sharing an edge (orthogonally adjacent)&lt;br /&gt;
or a corner (diagonally adjacent) with a given square. If the given square is not&lt;br /&gt;
specified, assume it is the square currently occupied by the newly summoned&lt;br /&gt;
piece.&lt;br /&gt;
&lt;br /&gt;
- Distance: the shortest number of moves required to get from one square to&lt;br /&gt;
another. For example, adjacent squares are at distance 1.&lt;br /&gt;
&lt;br /&gt;
- Move: A move is always onto an adjacent square. A move onto an occupied square&lt;br /&gt;
destroys the piece that was there.&lt;br /&gt;
&lt;br /&gt;
- Standard move: This type of move can be only onto an empty square or a square&lt;br /&gt;
occupied by a piece of lower rank.&lt;br /&gt;
&lt;br /&gt;
- Combat move: This type of move can be only onto an empty square or a square&lt;br /&gt;
occupied by a piece of equal or lower rank.&lt;br /&gt;
&lt;br /&gt;
- Standard leap and combat leap: A leap is the same as a move, except the square&lt;br /&gt;
doesn’t have to be adjacent. If not specified, a leap can be onto any square on the&lt;br /&gt;
board.&lt;br /&gt;
&lt;br /&gt;
- Place: Like the “place” action. However, if there is no piece of the specified color&lt;br /&gt;
and rank available, the piece cannot be placed.&lt;br /&gt;
&lt;br /&gt;
- Upgrade: Legendary pieces cannot be upgraded. To upgrade a common piece, flip&lt;br /&gt;
it over. To upgrade a heroic piece, remove it and replace it with a legendary piece.&lt;br /&gt;
If none is available, the heroic piece cannot be upgraded.&lt;br /&gt;
&lt;br /&gt;
- Downgrade: Common pieces cannot be downgraded. To downgrade a heroic piece,&lt;br /&gt;
flip it over. To downgrade a legendary piece, replace it with a heroic piece. If none&lt;br /&gt;
is available, the legendary piece cannot be downgraded.&lt;br /&gt;
&lt;br /&gt;
- Destroy: To destroy a piece, remove it from the board.&lt;br /&gt;
&lt;br /&gt;
- Convert: To convert an enemy piece, replace it with one of your pieces of the same&lt;br /&gt;
rank (unless a different rank is specified).&lt;br /&gt;
&lt;br /&gt;
When keeping track of &#039;&#039;&#039;how many enemy pieces you destroyed&#039;&#039;&#039;, count pieces you&lt;br /&gt;
destroyed during summoning, pieces you destroyed with moves and leaps, pieces you&lt;br /&gt;
destroyed with a “destroy” effect, and pieces you converted. Neither upgrading nor&lt;br /&gt;
downgrading ever counts as destroying a piece.&lt;br /&gt;
&lt;br /&gt;
== The end of the game ==&lt;br /&gt;
&lt;br /&gt;
The end of the game is triggered when a player draws the last card from his or her deck.&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;&#039;High Form&#039;&#039;&#039;, the end of the game is also triggered if a player has 9 or more points at the end of any&lt;br /&gt;
player’s turn.&lt;br /&gt;
Count the points for tasks claimed (by the player or by the team) plus 1 point for&lt;br /&gt;
each legendary piece of that player’s color currently on the board. (It doesn’t&lt;br /&gt;
matter how the piece became legendary.)&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;&#039;Deathmatch&#039;&#039;&#039;, the end of the game is also triggered if a player reaches or surpasses 18 points.&lt;br /&gt;
&lt;br /&gt;
Once the turn that triggers the end is done, play continues so that each player gets one&lt;br /&gt;
more turn, including the player whose turn triggered the end. Then the game ends.&lt;br /&gt;
The player with more points wins.&lt;br /&gt;
If there is a tie, the tiebreakers are, in this order: number of upgraded pieces on&lt;br /&gt;
the board and then total number of pieces on the board.&lt;br /&gt;
If there is still a tie, it remains unbroken.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
These rules are extracted from CGE&#039;s full rules for Tash-Kalar.&lt;/div&gt;</summary>
		<author><name>Quinarbre</name></author>
	</entry>
	<entry>
		<id>https://tr.doc.boardgamearena.com/index.php?title=Gamehelpcoltexpress&amp;diff=1607</id>
		<title>Gamehelpcoltexpress</title>
		<link rel="alternate" type="text/html" href="https://tr.doc.boardgamearena.com/index.php?title=Gamehelpcoltexpress&amp;diff=1607"/>
		<updated>2015-09-12T13:35:41Z</updated>

		<summary type="html">&lt;p&gt;Quinarbre: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Object of the game and sequence of play ==&lt;br /&gt;
To win, you must become the richest Bandit in the&lt;br /&gt;
Old West. To reach this goal, you will try to get more&lt;br /&gt;
Loot than your opponents...without being hit by too&lt;br /&gt;
many bullets! The best shooter will receive the title of&lt;br /&gt;
Gunslinger, worth $1000.&lt;br /&gt;
&lt;br /&gt;
There are five Rounds in a game. Each Round has&lt;br /&gt;
two phases:&lt;br /&gt;
* Phase 1 : Schemin&#039;! The players play their Action cards into a common deck in the center of the table.&lt;br /&gt;
* Phase 2 : Stealin&#039;! The Action cards played during Phase 1 are performed.&lt;br /&gt;
&lt;br /&gt;
The game ends after five Rounds.&lt;br /&gt;
Each player then adds up the value of the Loot tokens&lt;br /&gt;
they have stolen.&lt;br /&gt;
The Gunslinger prize is awarded to the player(s) who&lt;br /&gt;
shot the most bullets. It is worth $1000.&lt;br /&gt;
&lt;br /&gt;
The richest player wins the game. In case of a tie, the&lt;br /&gt;
winner is the tied player who has received the fewest&lt;br /&gt;
Bullet cards from other players and Events during&lt;br /&gt;
the game.&lt;br /&gt;
&lt;br /&gt;
=== Starting a Round ===&lt;br /&gt;
At the beginning of a Round, each player shuffles&lt;br /&gt;
their personal deck (made of the 10 Action cards of their colour)&lt;br /&gt;
and draws six cards. These cards form that player&#039;s Hand.&lt;br /&gt;
&lt;br /&gt;
The Round card shows the number of turns (the&lt;br /&gt;
number of Card icons) there will be during this phase.&lt;br /&gt;
It also shows how the turns will go :&lt;br /&gt;
* Standard turn - The Action cards must be played face-up during the current turn.&lt;br /&gt;
* Tunnel - The Action cards must be played face-down during the current turn.&lt;br /&gt;
* Speeding-Up - During the current turn, each player plays twice (taking 6 cards or playing two cards in a row or taking 3 cards and playing a card).&lt;br /&gt;
* Switching - The current turn is played counter-clockwise, starting with the First Player.&lt;br /&gt;
&lt;br /&gt;
Some Round cards make Events happen. These Events always take place at the end of the Round, after Phase 2: Stealin&#039;! See the tooltip of the Round card for more details.&lt;br /&gt;
&lt;br /&gt;
=== Phase 1: Schemin&#039;! ===&lt;br /&gt;
Starting with the First Player, each player plays their&lt;br /&gt;
turn, followed by the next player in clockwise order.&lt;br /&gt;
On his turn, a player has to:&lt;br /&gt;
* either play an Action card face-up (unless otherwise specified) from his Hand to the common deck;&lt;br /&gt;
* or take 3 additional cards from his deck and add them to his Hand.&lt;br /&gt;
The Schemin&#039;! phase ends when the number of turns&lt;br /&gt;
indicated on the Round card has been completed.&lt;br /&gt;
Any unplayed cards remaining in a player&#039;s Hand are&lt;br /&gt;
placed back on the top of his personal deck.&lt;br /&gt;
&lt;br /&gt;
=== Phase 2: Stealin&#039;! ===&lt;br /&gt;
The deck of Action cards that&lt;br /&gt;
had been created during the Schemin&#039;! phase is turned over, without changing the order of the cards.&lt;br /&gt;
The Bandits&#039; Actions are performed, one by one,&lt;br /&gt;
starting with the top card (i.e., in the order they have&lt;br /&gt;
been played).&lt;br /&gt;
Once performed, the Action card is given back to the&lt;br /&gt;
player to whom it belongs. That player puts it back on&lt;br /&gt;
his personal deck.&lt;br /&gt;
Any Action programmed during the&lt;br /&gt;
Schemin&#039;! phase is now obligatory. During&lt;br /&gt;
the Stealin&#039;! phase, each player must use&lt;br /&gt;
his action, if it is still possible.&lt;br /&gt;
&lt;br /&gt;
=== Ending the Round ===&lt;br /&gt;
Each player shuffles all his cards (10 Action cards&lt;br /&gt;
and any Bullet cards he has been hit with in previous&lt;br /&gt;
Rounds). Then he places his deck to the right of his&lt;br /&gt;
Character card.&lt;br /&gt;
The player on the First Player&#039;s left becomes the new&lt;br /&gt;
First Player and a new Round now begins.&lt;br /&gt;
&lt;br /&gt;
== The Action Cards ==&lt;br /&gt;
&lt;br /&gt;
=== Move ===&lt;br /&gt;
Move your Bandit:&lt;br /&gt;
# from one Car to the next adjacent Car, forwards or backwards, if he is inside the Train; or&lt;br /&gt;
# A distance ranging from one to three Cars (your choice), forwards or backwards, if he is on the roof.&lt;br /&gt;
The Locomotive is considered to be a Car. You can be&lt;br /&gt;
in it or on it.&lt;br /&gt;
If you have plotted this Action, your&lt;br /&gt;
Bandit cannot stay where he is: you&lt;br /&gt;
must move him.&lt;br /&gt;
&lt;br /&gt;
=== Floor Change ===&lt;br /&gt;
Switch the position of your Bandit from&lt;br /&gt;
# The interior to the roof of the Car on which he&#039;s standing ;&lt;br /&gt;
# or move his from the roof of the Car he&#039;s in to its interior.&lt;br /&gt;
&lt;br /&gt;
=== The Marshal ===&lt;br /&gt;
Move the Marshal inside the train a distance of one&lt;br /&gt;
Car in the direction of your choice. (See &amp;quot;The&lt;br /&gt;
Marshal&amp;quot;, to find out what happens if the&lt;br /&gt;
Marshal meets a Bandit).&lt;br /&gt;
&lt;br /&gt;
=== Fire ===&lt;br /&gt;
Choose one of your opponents to be your target and&lt;br /&gt;
give him one of your Bullet cards. The targeted player&lt;br /&gt;
places the Bullet card he has received on his deck.&lt;br /&gt;
You cannot target a Bandit who is on the same spot&lt;br /&gt;
as you.&lt;br /&gt;
# When you are inside the train, you can shoot a Bandit who is in the interior of an adjacent Car, either to the rear of your Car or ahead of it. Bandits who are more than one Car away cannot be shot.&lt;br /&gt;
# When you are on the roof, however, you can shoot a Bandit who is in your Line of Sight and on the roof of any Car other than your own, regardless of the distance. A Bandit is in Line of Sight if there is no other Bandit between you and him. Two Bandits on the roof of the same Car are considered as being side by side, and not located one behind the other: you choose which one gets hit.&lt;br /&gt;
If there is no target to be shot, keep your Bullet card:&lt;br /&gt;
the Fire action will have no effect.&lt;br /&gt;
If you successfully fire your 6 Bullet cards during the game, your&lt;br /&gt;
Fire actions will have no further effect.&lt;br /&gt;
&lt;br /&gt;
=== Robbery ===&lt;br /&gt;
Take the Loot token of your choice from the Car where&lt;br /&gt;
you are currently located and place it face-down on&lt;br /&gt;
your Character card.&lt;br /&gt;
If your Bandit is on the roof of a Car, he cannot rob&lt;br /&gt;
inside it, and vice versa.&lt;br /&gt;
If there is no Loot where your Bandit is, then&lt;br /&gt;
the Robbery action has no effect.&lt;br /&gt;
&lt;br /&gt;
=== Punch ===&lt;br /&gt;
Choose a target among the Bandits who are on the same&lt;br /&gt;
Car and same floor as you are.&lt;br /&gt;
The targeted Bandit loses a Loot token if he has one:&lt;br /&gt;
choose a Loot token from his Character card and place&lt;br /&gt;
it on the floor where your Bandit pawn is located. If&lt;br /&gt;
you choose a Purse token, you are not allowed to look&lt;br /&gt;
at its value.&lt;br /&gt;
Then, move the targeted Bandit to the same floor of an&lt;br /&gt;
adjacent Car (either forwards or backwards,&lt;br /&gt;
your choice in most of the Cars; backwards if&lt;br /&gt;
you are in the Engine and forwards if you are&lt;br /&gt;
in the Caboose).&lt;br /&gt;
&lt;br /&gt;
== The Marshal ==&lt;br /&gt;
Caution! When a Bandit enters a Car where the Marshal&lt;br /&gt;
is, or when the Marshal enters a Car where Bandits&lt;br /&gt;
are, they must escape up to the roof of the Car (even&lt;br /&gt;
if they have just come down from there). A Bandit can&lt;br /&gt;
never stay inside the Car where the Marshal is located.&lt;br /&gt;
Additionally, each one of those Bandits immediately&lt;br /&gt;
receives a Neutral Bullet card which must be placed&lt;br /&gt;
on each player&#039;s personal deck.&lt;br /&gt;
&lt;br /&gt;
== Expert Variant ==&lt;br /&gt;
* At the end of the Schemin&#039;! Phase, you are allowed to keep in your Hand the cards you are interested in holding for next Round. Discard all Bullet cards. Discard all Action cards that you are not interested in.&lt;br /&gt;
* During the Stealin&#039;! phase, place the performed Action cards you get back from the First Player on your discard deck. The Bullet cards you received that turn from your opponents, however, go on top of your draw deck, face-down.&lt;br /&gt;
* At the beginning of each Round, draw cards from your draw deck and fill your Hand up to six cards.&lt;br /&gt;
* Each time your draw deck is depleted and you have to draw cards, shuffle the discard deck to make a new draw deck. You can look through your discard at any time.&lt;br /&gt;
&lt;br /&gt;
== Set-Up for two players ==&lt;br /&gt;
There are four Cars, and each player chooses a team of two Characters.&lt;br /&gt;
One Bandit pawn from each team is placed inside the two&lt;br /&gt;
Cars at the rear of the train.&lt;br /&gt;
Each Character of your team starts with a separate deck of six Bullet cards and a $250 Purse on each of them.&lt;br /&gt;
From among the Action cards of each Character, every duplicate is discarded as well as the Marshal card from one of your Characters.&lt;br /&gt;
You will have&lt;br /&gt;
11 cards remaining in your Hand: 2 Fire (1 for each&lt;br /&gt;
Character), 2 Punch (1 for each Character), 2 Move&lt;br /&gt;
(1 for each Character), 2 Floor Change (1 for each&lt;br /&gt;
Character), 2 Robbery (1 for each Character) and 1&lt;br /&gt;
Marshal. Shuffle all of them to make your draw deck.&lt;br /&gt;
Each player then plays with the mixed Action cards&lt;br /&gt;
of the two Bandits.&lt;br /&gt;
&lt;br /&gt;
The game with two players is played with the Expert&lt;br /&gt;
Variant described earlier. The goal of the game is to&lt;br /&gt;
have the richest team at the end of the game. However,&lt;br /&gt;
no one wins the title of Gunslinger in the 2-player game.&lt;br /&gt;
When a Bandit is shot, the Bullet card is placed on&lt;br /&gt;
the top of the player&#039;s draw deck. It may very well&lt;br /&gt;
happen that a Bandit will inadvertently shoot his own&lt;br /&gt;
teammate!&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
(This summary is made of excerpts Ludonaute&#039;s rules for Colt Express.)&lt;/div&gt;</summary>
		<author><name>Quinarbre</name></author>
	</entry>
	<entry>
		<id>https://tr.doc.boardgamearena.com/index.php?title=Gamehelpcoltexpress&amp;diff=1606</id>
		<title>Gamehelpcoltexpress</title>
		<link rel="alternate" type="text/html" href="https://tr.doc.boardgamearena.com/index.php?title=Gamehelpcoltexpress&amp;diff=1606"/>
		<updated>2015-09-04T13:52:33Z</updated>

		<summary type="html">&lt;p&gt;Quinarbre: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Object of the game and sequence of play ==&lt;br /&gt;
To win, you must become the richest Bandit in the&lt;br /&gt;
Old West. To reach this goal, you will try to get more&lt;br /&gt;
Loot than your opponents...without being hit by too&lt;br /&gt;
many bullets! The best shooter will receive the title of&lt;br /&gt;
Gunslinger, worth $1000.&lt;br /&gt;
&lt;br /&gt;
There are five Rounds in a game. Each Round has&lt;br /&gt;
two phases:&lt;br /&gt;
* Phase 1 : Schemin&#039;! The players play their Action cards into a common deck in the center of the table.&lt;br /&gt;
* Phase 2 : Stealin&#039;! The Action cards played during Phase 1 are performed.&lt;br /&gt;
&lt;br /&gt;
The game ends after five Rounds.&lt;br /&gt;
Each player then adds up the value of the Loot tokens&lt;br /&gt;
they have stolen.&lt;br /&gt;
The Gunslinger prize is awarded to the player(s) who&lt;br /&gt;
shot the most bullets. It is worth $1000.&lt;br /&gt;
&lt;br /&gt;
The richest player wins the game. In case of a tie, the&lt;br /&gt;
winner is the tied player who has received the fewest&lt;br /&gt;
Bullet cards from other players and Events during&lt;br /&gt;
the game.&lt;br /&gt;
&lt;br /&gt;
=== Starting a Round ===&lt;br /&gt;
At the beginning of a Round, each player shuffles&lt;br /&gt;
their personal deck (made of the 10 Action cards of their colour)&lt;br /&gt;
and draws six cards. These cards form that player&#039;s Hand.&lt;br /&gt;
&lt;br /&gt;
The Round card shows the number of turns (the&lt;br /&gt;
number of Card icons) there will be during this phase.&lt;br /&gt;
It also shows how the turns will go :&lt;br /&gt;
* Standard turn - The Action cards must be played face-up during the current turn.&lt;br /&gt;
* Tunnel - The Action cards must be played face-down during the current turn.&lt;br /&gt;
* Speeding-Up - During the current turn, each player plays twice (taking 6 cards or playing two cards in a row or taking 3 cards and playing a card).&lt;br /&gt;
* Switching - The current turn is played counter-clockwise, starting with the First Player.&lt;br /&gt;
&lt;br /&gt;
Some Round cards make Events happen. These Events always take place at the end of the Round, after Phase 2: Stealin&#039;! See the tooltip of the Round card for more details.&lt;br /&gt;
&lt;br /&gt;
=== Phase 1: Schemin&#039;! ===&lt;br /&gt;
Starting with the First Player, each player plays their&lt;br /&gt;
turn, followed by the next player in clockwise order.&lt;br /&gt;
On his turn, a player has to:&lt;br /&gt;
* either play an Action card face-up (unless otherwise specified) from his Hand to the common deck;&lt;br /&gt;
* or take 3 additional cards from his deck and add them to his Hand.&lt;br /&gt;
The Schemin&#039;! phase ends when the number of turns&lt;br /&gt;
indicated on the Round card has been completed.&lt;br /&gt;
Any unplayed cards remaining in a player&#039;s Hand are&lt;br /&gt;
placed back on the top of his personal deck.&lt;br /&gt;
&lt;br /&gt;
=== Phase 2: Stealin&#039;! ===&lt;br /&gt;
The deck of Action cards that&lt;br /&gt;
had been created during the Schemin&#039;! phase is turned over, without changing the order of the cards.&lt;br /&gt;
The Bandits&#039; Actions are performed, one by one,&lt;br /&gt;
starting with the top card (i.e., in the order they have&lt;br /&gt;
been played).&lt;br /&gt;
Once performed, the Action card is given back to the&lt;br /&gt;
player to whom it belongs. That player puts it back on&lt;br /&gt;
his personal deck.&lt;br /&gt;
Any Action programmed during the&lt;br /&gt;
Schemin&#039;! phase is now obligatory. During&lt;br /&gt;
the Stealin&#039;! phase, each player must use&lt;br /&gt;
his action, if it is still possible.&lt;br /&gt;
&lt;br /&gt;
=== Ending the Round ===&lt;br /&gt;
Each player shuffles all his cards (10 Action cards&lt;br /&gt;
and any Bullet cards he has been hit with in previous&lt;br /&gt;
Rounds). Then he places his deck to the right of his&lt;br /&gt;
Character card.&lt;br /&gt;
The player on the First Player&#039;s left becomes the new&lt;br /&gt;
First Player and a new Round now begins.&lt;br /&gt;
&lt;br /&gt;
== The Action Cards ==&lt;br /&gt;
&lt;br /&gt;
=== Move ===&lt;br /&gt;
Move your Bandit:&lt;br /&gt;
# from one Car to the next adjacent Car, forwards or backwards, if he is inside the Train; or&lt;br /&gt;
# A distance ranging from one to three Cars (your choice), forwards or backwards, if he is on the roof.&lt;br /&gt;
The Locomotive is considered to be a Car. You can be&lt;br /&gt;
in it or on it.&lt;br /&gt;
If you have plotted this Action, your&lt;br /&gt;
Bandit cannot stay where he is: you&lt;br /&gt;
must move him.&lt;br /&gt;
&lt;br /&gt;
=== Floor Change ===&lt;br /&gt;
Switch the position of your Bandit from&lt;br /&gt;
# The interior to the roof of the Car on which he&#039;s standing ;&lt;br /&gt;
# or move his from the roof of the Car he&#039;s in to its interior.&lt;br /&gt;
&lt;br /&gt;
=== Marshal ===&lt;br /&gt;
Move the Marshal inside the train a distance of one&lt;br /&gt;
Car in the direction of your choice. (See &amp;quot;The&lt;br /&gt;
Marshal&amp;quot;, to find out what happens if the&lt;br /&gt;
Marshal meets a Bandit).&lt;br /&gt;
&lt;br /&gt;
=== Fire ===&lt;br /&gt;
Choose one of your opponents to be your target and&lt;br /&gt;
give him one of your Bullet cards. The targeted player&lt;br /&gt;
places the Bullet card he has received on his deck.&lt;br /&gt;
You cannot target a Bandit who is on the same spot&lt;br /&gt;
as you.&lt;br /&gt;
# When you are inside the train, you can shoot a Bandit who is in the interior of an adjacent Car, either to the rear of your Car or ahead of it. Bandits who are more than one Car away cannot be shot.&lt;br /&gt;
# When you are on the roof, however, you can shoot a Bandit who is in your Line of Sight and on the roof of any Car other than your own, regardless of the distance. A Bandit is in Line of Sight if there is no other Bandit between you and him. Two Bandits on the roof of the same Car are considered as being side by side, and not located one behind the other: you choose which one gets hit.&lt;br /&gt;
If there is no target to be shot, keep your Bullet card:&lt;br /&gt;
the Fire action will have no effect.&lt;br /&gt;
If you successfully fire your 6 Bullet cards during the game, your&lt;br /&gt;
Fire actions will have no further effect.&lt;br /&gt;
&lt;br /&gt;
=== Robbery ===&lt;br /&gt;
Take the Loot token of your choice from the Car where&lt;br /&gt;
you are currently located and place it face-down on&lt;br /&gt;
your Character card.&lt;br /&gt;
If your Bandit is on the roof of a Car, he cannot rob&lt;br /&gt;
inside it, and vice versa.&lt;br /&gt;
If there is no Loot where your Bandit is, then&lt;br /&gt;
the Robbery action has no effect.&lt;br /&gt;
&lt;br /&gt;
=== Punch ===&lt;br /&gt;
Choose a target among the Bandits who are on the same&lt;br /&gt;
Car and same floor as you are.&lt;br /&gt;
The targeted Bandit loses a Loot token if he has one:&lt;br /&gt;
choose a Loot token from his Character card and place&lt;br /&gt;
it on the floor where your Bandit pawn is located. If&lt;br /&gt;
you choose a Purse token, you are not allowed to look&lt;br /&gt;
at its value.&lt;br /&gt;
Then, move the targeted Bandit to the same floor of an&lt;br /&gt;
adjacent Car (either forwards or backwards,&lt;br /&gt;
your choice in most of the Cars; backwards if&lt;br /&gt;
you are in the Engine and forwards if you are&lt;br /&gt;
in the Caboose).&lt;br /&gt;
&lt;br /&gt;
== The Marshal ==&lt;br /&gt;
Caution! When a Bandit enters a Car where the Marshal&lt;br /&gt;
is, or when the Marshal enters a Car where Bandits&lt;br /&gt;
are, they must escape up to the roof of the Car (even&lt;br /&gt;
if they have just come down from there). A Bandit can&lt;br /&gt;
never stay inside the Car where the Marshal is located.&lt;br /&gt;
Additionally, each one of those Bandits immediately&lt;br /&gt;
receives a Neutral Bullet card which must be placed&lt;br /&gt;
on each player&#039;s personal deck.&lt;br /&gt;
&lt;br /&gt;
== Expert Variant ==&lt;br /&gt;
* At the end of the Schemin&#039;! Phase, you are allowed to keep in your Hand the cards you are interested in holding for next Round. Discard all Bullet cards. Discard all Action cards that you are not interested in.&lt;br /&gt;
* During the Stealin&#039;! phase, place the performed Action cards you get back from the First Player on your discard deck. The Bullet cards you received that turn from your opponents, however, go on top of your draw deck, face-down.&lt;br /&gt;
* At the beginning of each Round, draw cards from your draw deck and fill your Hand up to six cards.&lt;br /&gt;
* Each time your draw deck is depleted and you have to draw cards, shuffle the discard deck to make a new draw deck. You can look through your discard at any time.&lt;br /&gt;
&lt;br /&gt;
== Set-Up for two players ==&lt;br /&gt;
There are four Cars, and each player chooses a team of two Characters.&lt;br /&gt;
One Bandit pawn from each team is placed inside the two&lt;br /&gt;
Cars at the rear of the train.&lt;br /&gt;
Each Character of your team starts with a separate deck of six Bullet cards and a $250 Purse on each of them.&lt;br /&gt;
From among the Action cards of each Character, every duplicate is discarded as well as the Marshal card from one of your Characters.&lt;br /&gt;
You will have&lt;br /&gt;
11 cards remaining in your Hand: 2 Fire (1 for each&lt;br /&gt;
Character), 2 Punch (1 for each Character), 2 Move&lt;br /&gt;
(1 for each Character), 2 Floor Change (1 for each&lt;br /&gt;
Character), 2 Robbery (1 for each Character) and 1&lt;br /&gt;
Marshal. Shuffle all of them to make your draw deck.&lt;br /&gt;
Each player then plays with the mixed Action cards&lt;br /&gt;
of the two Bandits.&lt;br /&gt;
&lt;br /&gt;
The game with two players is played with the Expert&lt;br /&gt;
Variant described earlier. The goal of the game is to&lt;br /&gt;
have the richest team at the end of the game. However,&lt;br /&gt;
no one wins the title of Gunslinger in the 2-player game.&lt;br /&gt;
When a Bandit is shot, the Bullet card is placed on&lt;br /&gt;
the top of the player&#039;s draw deck. It may very well&lt;br /&gt;
happen that a Bandit will inadvertently shoot his own&lt;br /&gt;
teammate!&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
(This summary is made of excerpts Ludonaute&#039;s rules for Colt Express.)&lt;/div&gt;</summary>
		<author><name>Quinarbre</name></author>
	</entry>
	<entry>
		<id>https://tr.doc.boardgamearena.com/index.php?title=Gamehelpcoltexpress&amp;diff=1605</id>
		<title>Gamehelpcoltexpress</title>
		<link rel="alternate" type="text/html" href="https://tr.doc.boardgamearena.com/index.php?title=Gamehelpcoltexpress&amp;diff=1605"/>
		<updated>2015-09-04T13:47:47Z</updated>

		<summary type="html">&lt;p&gt;Quinarbre: Created page with &amp;quot;== Object of the game and sequence of play == To win, you must become the richest Bandit in the Old West. To reach this goal, you will try to get more Loot than your opponents...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Object of the game and sequence of play ==&lt;br /&gt;
To win, you must become the richest Bandit in the&lt;br /&gt;
Old West. To reach this goal, you will try to get more&lt;br /&gt;
Loot than your opponents...without being hit by too&lt;br /&gt;
many bullets! The best shooter will receive the title of&lt;br /&gt;
Gunslinger, worth $1000.&lt;br /&gt;
&lt;br /&gt;
There are five Rounds in a game. Each Round has&lt;br /&gt;
two phases:&lt;br /&gt;
* Phase 1 : Schemin&#039;! The players play their Action cards into a common deck in the center of the table.&lt;br /&gt;
* Phase 2 : Stealin&#039;! The Action cards played during Phase 1 are performed.&lt;br /&gt;
&lt;br /&gt;
The game ends after five Rounds.&lt;br /&gt;
Each player then adds up the value of the Loot tokens&lt;br /&gt;
they have stolen.&lt;br /&gt;
The Gunslinger prize is awarded to the player(s) who&lt;br /&gt;
shot the most bullets. It is worth $1000.&lt;br /&gt;
The richest player wins the game. In case of a tie, the&lt;br /&gt;
winner is the tied player who has received the fewest&lt;br /&gt;
Bullet cards from other players and Events during&lt;br /&gt;
the game.&lt;br /&gt;
&lt;br /&gt;
=== Starting a Round ===&lt;br /&gt;
At the beginning of a Round, each player shuffles&lt;br /&gt;
their personal deck (made of the 10 Action cards of their colour)&lt;br /&gt;
and draws six cards. These cards form that player&#039;s Hand.&lt;br /&gt;
This Round card shows the number of turns (the&lt;br /&gt;
number of Card icons) there will be during this phase.&lt;br /&gt;
It also shows how the turns will go :&lt;br /&gt;
* Standard turn - The Action cards must be played face-up during the current turn.&lt;br /&gt;
* Tunnel - The Action cards must be played face-down during the current turn.&lt;br /&gt;
* Speeding-Up - During the current turn, each player plays twice (taking 6 cards or playing two cards in a row or taking 3 cards and playing a card).&lt;br /&gt;
* Switching - The current turn is played counter-clockwise, starting with the First Player.&lt;br /&gt;
&lt;br /&gt;
Some Round cards make Events happen. These Events always take place at the end of the Round, after Phase 2: Stealin&#039;! See the tooltip of the Round card for more details.&lt;br /&gt;
&lt;br /&gt;
=== Phase 1: Schemin&#039;! ===&lt;br /&gt;
Starting with the First Player, each player plays their&lt;br /&gt;
turn, followed by the next player in clockwise order.&lt;br /&gt;
On his turn, a player has to:&lt;br /&gt;
* either play an Action card face-up (unless otherwise specified) from his Hand to the common deck;&lt;br /&gt;
* or take 3 additional cards from his deck and add them to his Hand.&lt;br /&gt;
The Schemin&#039;! phase ends when the number of turns&lt;br /&gt;
indicated on the Round card has been completed.&lt;br /&gt;
Any unplayed cards remaining in a player&#039;s Hand are&lt;br /&gt;
placed back on the top of his personal deck.&lt;br /&gt;
&lt;br /&gt;
=== Phase 2: Stealin&#039;! ===&lt;br /&gt;
The deck of Action cards that&lt;br /&gt;
had been created during the Schemin&#039;! phase is turned over, without changing the order of the cards.&lt;br /&gt;
The Bandits&#039; Actions are performed, one by one,&lt;br /&gt;
starting with the top card (i.e., in the order they have&lt;br /&gt;
been played).&lt;br /&gt;
Once performed, the Action card is given back to the&lt;br /&gt;
player to whom it belongs. That player puts it back on&lt;br /&gt;
his personal deck.&lt;br /&gt;
Any Action programmed during the&lt;br /&gt;
Schemin&#039;! phase is now obligatory. During&lt;br /&gt;
the Stealin&#039;! phase, each player must use&lt;br /&gt;
his action, if it is still possible.&lt;br /&gt;
&lt;br /&gt;
=== Ending the Round ===&lt;br /&gt;
Each player shuffles all his cards (10 Action cards&lt;br /&gt;
and any Bullet cards he has been hit with in previous&lt;br /&gt;
Rounds). Then he places his deck to the right of his&lt;br /&gt;
Character card.&lt;br /&gt;
The player on the First Player&#039;s left becomes the new&lt;br /&gt;
First Player. He puts the remaining Round cards in&lt;br /&gt;
front of him. A new Round now begins.&lt;br /&gt;
&lt;br /&gt;
== The Action Cards ==&lt;br /&gt;
&lt;br /&gt;
=== Move ===&lt;br /&gt;
Move your Bandit:&lt;br /&gt;
# from one Car to the next adjacent Car, forwards or backwards, if he is inside the Train; or&lt;br /&gt;
# A distance ranging from one to three Cars (your choice), forwards or backwards, if he is on the roof.&lt;br /&gt;
The Locomotive is considered to be a Car. You can be&lt;br /&gt;
in it or on it.&lt;br /&gt;
If you have plotted this Action, your&lt;br /&gt;
Bandit cannot stay where he is: you&lt;br /&gt;
must move him.&lt;br /&gt;
&lt;br /&gt;
=== Floor Change ===&lt;br /&gt;
Switch the position of your Bandit from&lt;br /&gt;
# The interior to the roof of the Car on which he&#039;s standing ;&lt;br /&gt;
# or move his from the roof of the Car he&#039;s in to its interior.&lt;br /&gt;
&lt;br /&gt;
=== Marshal ===&lt;br /&gt;
Move the Marshal inside the train a distance of one&lt;br /&gt;
Car in the direction of your choice. (See &amp;quot;The&lt;br /&gt;
Marshal&amp;quot;, to find out what happens if the&lt;br /&gt;
Marshal meets a Bandit).&lt;br /&gt;
&lt;br /&gt;
=== Fire ===&lt;br /&gt;
Choose one of your opponents to be your target and&lt;br /&gt;
give him one of your Bullet cards. The targeted player&lt;br /&gt;
places the Bullet card he has received on his deck.&lt;br /&gt;
You cannot target a Bandit who is on the same spot&lt;br /&gt;
as you.&lt;br /&gt;
# When you are inside the train, you can shoot a Bandit who is in the interior of an adjacent Car, either to the rear of your Car or ahead of it. Bandits who are more than one Car away cannot be shot.&lt;br /&gt;
# When you are on the roof, however, you can shoot a Bandit who is in your Line of Sight and on the roof of any Car other than your own, regardless of the distance. A Bandit is in Line of Sight if there is no other Bandit between you and him. Two Bandits on the roof of the same Car are considered as being side by side, and not located one behind the other: you choose which one gets hit.&lt;br /&gt;
If there is no target to be shot, keep your Bullet card:&lt;br /&gt;
the Fire action will have no effect.&lt;br /&gt;
If you successfully fire your 6 Bullet cards during the game, your&lt;br /&gt;
Fire actions will have no further effect.&lt;br /&gt;
&lt;br /&gt;
=== Robbery ===&lt;br /&gt;
Take the Loot token of your choice from the Car where&lt;br /&gt;
you are currently located and place it face-down on&lt;br /&gt;
your Character card.&lt;br /&gt;
If your Bandit is on the roof of a Car, he cannot rob&lt;br /&gt;
inside it, and vice versa.&lt;br /&gt;
If there is no Loot where your Bandit is, then&lt;br /&gt;
the Robbery action has no effect.&lt;br /&gt;
&lt;br /&gt;
=== Punch ===&lt;br /&gt;
Choose a target among the Bandits who are on the same&lt;br /&gt;
Car and same floor as you are.&lt;br /&gt;
The targeted Bandit loses a Loot token if he has one:&lt;br /&gt;
choose a Loot token from his Character card and place&lt;br /&gt;
it on the floor where your Bandit pawn is located. If&lt;br /&gt;
you choose a Purse token, you are not allowed to look&lt;br /&gt;
at its value.&lt;br /&gt;
Then, move the targeted Bandit to the same floor of an&lt;br /&gt;
adjacent Car (either forwards or backwards,&lt;br /&gt;
your choice in most of the Cars; backwards if&lt;br /&gt;
you are in the Engine and forwards if you are&lt;br /&gt;
in the Caboose).&lt;br /&gt;
&lt;br /&gt;
== The Marshal ==&lt;br /&gt;
Caution! When a Bandit enters a Car where the Marshal&lt;br /&gt;
is, or when the Marshal enters a Car where Bandits&lt;br /&gt;
are, they must escape up to the roof of the Car (even&lt;br /&gt;
if they have just come down from there). A Bandit can&lt;br /&gt;
never stay inside the Car where the Marshal is located.&lt;br /&gt;
Additionally, each one of those Bandits immediately&lt;br /&gt;
receives a Neutral Bullet card which must be placed&lt;br /&gt;
on each player&#039;s personal deck.&lt;br /&gt;
&lt;br /&gt;
== Expert Variant ==&lt;br /&gt;
* At the end of the Schemin&#039;! Phase, you are allowed to keep in your Hand the cards you are interested in holding for next Round. Discard all Bullet cards. Discard all Action cards that you are not interested in.&lt;br /&gt;
* During the Stealin&#039;! phase, place the performed Action cards you get back from the First Player on your discard deck. The Bullet cards you received that turn from your opponents, however, go on top of your draw deck, face-down.&lt;br /&gt;
* At the beginning of each Round, draw cards from your draw deck and fill your Hand up to six cards.&lt;br /&gt;
* Each time your draw deck is depleted and you have to draw cards, shuffle the discard deck to make a new draw deck. You can look through your discard at any time.&lt;br /&gt;
&lt;br /&gt;
== Set-Up for two players ==&lt;br /&gt;
There are four Cars, and each player chooses a team of two Characters.&lt;br /&gt;
One Bandit pawn from each team is placed inside the two&lt;br /&gt;
Cars at the rear of the train.&lt;br /&gt;
Each Character of your team starts with a separate deck of six Bullet cards and a $250 Purse on each of them.&lt;br /&gt;
From among the Action cards of each Character, every duplicate is discarded as well as the Marshal card from one of your Characters.&lt;br /&gt;
You will have&lt;br /&gt;
11 cards remaining in your Hand: 2 Fire (1 for each&lt;br /&gt;
Character), 2 Punch (1 for each Character), 2 Move&lt;br /&gt;
(1 for each Character), 2 Floor Change (1 for each&lt;br /&gt;
Character), 2 Robbery (1 for each Character) and 1&lt;br /&gt;
Marshal. Shuffle all of them to make your draw deck.&lt;br /&gt;
Each player then plays with the mixed Action cards&lt;br /&gt;
of the two Bandits.&lt;br /&gt;
&lt;br /&gt;
The game with two players is played with the Expert&lt;br /&gt;
Variant described earlier. The goal of the game is to&lt;br /&gt;
have the richest team at the end of the game. However,&lt;br /&gt;
no one wins the title of Gunslinger in the 2-player game.&lt;br /&gt;
When a Bandit is shot, the Bullet card is placed on&lt;br /&gt;
the top of the player&#039;s draw deck. It may very well&lt;br /&gt;
happen that a Bandit will inadvertently shoot his own&lt;br /&gt;
teammate!&lt;br /&gt;
&lt;br /&gt;
(This summary is made of excerpts Ludonaute&#039;s rules for Colt Express.)&lt;/div&gt;</summary>
		<author><name>Quinarbre</name></author>
	</entry>
	<entry>
		<id>https://tr.doc.boardgamearena.com/index.php?title=Gamehelptashkalar&amp;diff=1310</id>
		<title>Gamehelptashkalar</title>
		<link rel="alternate" type="text/html" href="https://tr.doc.boardgamearena.com/index.php?title=Gamehelptashkalar&amp;diff=1310"/>
		<updated>2014-12-25T17:45:26Z</updated>

		<summary type="html">&lt;p&gt;Quinarbre: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Game forms ==&lt;br /&gt;
&lt;br /&gt;
On Board Game Arena, Tash-Kalar may be played only by 2 players, and in 2 distinct forms :&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;The High Form&#039;&#039;&#039;: Players score points for tasks and for legendary pieces currently on the board.&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;Deathmatch Duel&#039;&#039;&#039;: No tasks. Players score points for destroying enemy pieces, for summoning legendary beings, and when their opponent invokes a flare.&lt;br /&gt;
&lt;br /&gt;
The actual board game also features Deathmatch Melee for 3 or 4 players, and team play.&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
&lt;br /&gt;
Each player draws 6 cards : 3 beings from his or her own deck, 2 legends, and 1 flare.&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;&#039;High Form&#039;&#039;&#039;, 3 tasks are revealed that may be claimed, along with a fourth &amp;quot;next task&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;&#039;Deathmatch&#039;&#039;&#039;, the player who plays second puts one common piece of each color on the game board, on marked squares.&lt;br /&gt;
&lt;br /&gt;
== Game play ==&lt;br /&gt;
&lt;br /&gt;
Players take turns in clockwise order, beginning with the starting player.&lt;br /&gt;
Each turn, you have 2 actions. Exception: The starting player has only 1 action on his or&lt;br /&gt;
her first turn.&lt;br /&gt;
&lt;br /&gt;
Possible actions:&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;Place 1 common piece&#039;&#039;&#039; of your color on any empty square. If you have none left to place, you begin this action by picking up 1 of your common or heroic pieces, then place it as a common piece.&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;Summon a being&#039;&#039;&#039;. (See below.)&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;Discard 1 being&#039;&#039;&#039; that you drew from your deck. If you do, you may also return one&lt;br /&gt;
or more of your other cards to the bottoms of their decks.&lt;br /&gt;
&lt;br /&gt;
Actions can be done in any order. You can do more than one “place” or “summon” action&lt;br /&gt;
per turn (but no more than one “discard” action). You have to use all your actions.&lt;br /&gt;
You can invoke a flare (see below) before or after any action.&lt;br /&gt;
Invoking a flare does not cost you an action.&lt;br /&gt;
&lt;br /&gt;
Finish your turn by drawing cards so that you end up with 3 beings from your deck, 2&lt;br /&gt;
legends, and 1 flare.&lt;br /&gt;
If you draw the last card in your deck, you may end up with fewer than 3.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High Form&#039;&#039;&#039;: At the end of the turn, you may claim exactly 1 of the current tasks, if you meet its&lt;br /&gt;
criteria.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Deathmatch&#039;&#039;&#039;: At the end of your turn, score points for destroyed enemy pieces: 2 points for legendary,&lt;br /&gt;
1 point for heroic, 1 point for each pair of common pieces.&lt;br /&gt;
You get no points for destroying your own pieces. You get no points for an un-&lt;br /&gt;
paired common piece.&lt;br /&gt;
Also score 1 point each time you summon a legend. (Upgrading a heroic piece does not&lt;br /&gt;
count as “summoning a legend”.)&lt;br /&gt;
&lt;br /&gt;
== Summoning a being ==&lt;br /&gt;
&lt;br /&gt;
To summon a being, use 1 action and do the following:&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;Play the card&#039;&#039;&#039; from your hand and choose a square on the board where your pieces match the pattern on the card.&lt;br /&gt;
The pattern can be rotated (by 90, 180, or 270 degrees). Mirror images and flips&lt;br /&gt;
also count as a match.&lt;br /&gt;
The pieces used to summon the being can be the same rank as those depicted&lt;br /&gt;
in the pattern or higher rank.&lt;br /&gt;
Empty squares are not important to the pattern.&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;Place a piece of the indicated rank&#039;&#039;&#039; (upper left corner of the card) on the square&lt;br /&gt;
indicated by the white-framed square in the pattern.&lt;br /&gt;
This square may be empty, unless the pattern says it must be occupied by one&lt;br /&gt;
of your pieces.&lt;br /&gt;
If the square is occupied by a piece of the same rank or lower, destroy that piece&lt;br /&gt;
when you put the new piece on the square.&lt;br /&gt;
If the square is occupied by a piece of higher rank, you cannot summon the&lt;br /&gt;
being.&lt;br /&gt;
If all your pieces of that type are already on the board, you may&lt;br /&gt;
still be able to summon the being by picking up a piece that is not required for the pattern and use it as&lt;br /&gt;
the new piece.&lt;br /&gt;
&lt;br /&gt;
- Once the new piece is on the board, &#039;&#039;&#039;resolve the effect&#039;&#039;&#039; printed on the card.&lt;br /&gt;
&lt;br /&gt;
- After resolving the effect, discard the card.&lt;br /&gt;
&lt;br /&gt;
== Invoking a flare ==&lt;br /&gt;
&lt;br /&gt;
You can invoke a flare on your turn before or after any action.&lt;br /&gt;
To invoke a flare, you must meet at least one of the criteria:&lt;br /&gt;
&lt;br /&gt;
- You meet the upper criterion if your opponent has &#039;&#039;&#039;that many more upgraded&lt;br /&gt;
pieces&#039;&#039;&#039; (heroic and legendary) on the board than you.&lt;br /&gt;
&lt;br /&gt;
- You meet the lower criterion if your opponent has &#039;&#039;&#039;that many more pieces (total)&#039;&#039;&#039;&lt;br /&gt;
on the board than you.&lt;br /&gt;
&lt;br /&gt;
If you meet the upper criterion, you resolve the upper effect. If you meet the lower&lt;br /&gt;
criterion, you resolve the lower effect. If you meet both, you resolve the upper effect&lt;br /&gt;
first, then the lower.&lt;br /&gt;
Once the card has been resolved, discard it.&lt;br /&gt;
&lt;br /&gt;
== Resolving effects of beings and flares ==&lt;br /&gt;
&lt;br /&gt;
No other action can be taken and no flare can be invoked until the entire effect of the&lt;br /&gt;
card is resolved.&lt;br /&gt;
Some parts of an effect may be optional:&lt;br /&gt;
&lt;br /&gt;
- May indicates that a certain part of an effect is optional.&lt;br /&gt;
&lt;br /&gt;
- Up to always includes 0.&lt;br /&gt;
&lt;br /&gt;
Any parts that are not specified as optional are mandatory.&lt;br /&gt;
If an effect cannot be performed fully, do the parts that can be done.&lt;br /&gt;
When a card uses its own name, it is referring to the piece on the board that represents&lt;br /&gt;
the summoned being.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Keywords&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
- Upgraded piece: a heroic or legendary piece.&lt;br /&gt;
&lt;br /&gt;
- Non-legendary piece: a common or heroic piece.&lt;br /&gt;
&lt;br /&gt;
- Piece: If a piece is not specified as belonging to you or an opponent, then the&lt;br /&gt;
effect includes any player&#039;s piece.&lt;br /&gt;
&lt;br /&gt;
- Marked space: a colored space in the pattern. If the text does not refer to marked&lt;br /&gt;
spaces, the colored spaces in the pattern are just illustrational.&lt;br /&gt;
&lt;br /&gt;
- Adjacent square: one of eight squares sharing an edge (orthogonally adjacent)&lt;br /&gt;
or a corner (diagonally adjacent) with a given square. If the given square is not&lt;br /&gt;
specified, assume it is the square currently occupied by the newly summoned&lt;br /&gt;
piece.&lt;br /&gt;
&lt;br /&gt;
- Distance: the shortest number of moves required to get from one square to&lt;br /&gt;
another. For example, adjacent squares are at distance 1.&lt;br /&gt;
&lt;br /&gt;
- Move: A move is always onto an adjacent square. A move onto an occupied square&lt;br /&gt;
destroys the piece that was there.&lt;br /&gt;
&lt;br /&gt;
- Standard move: This type of move can be only onto an empty square or a square&lt;br /&gt;
occupied by a piece of lower rank.&lt;br /&gt;
&lt;br /&gt;
- Combat move: This type of move can be only onto an empty square or a square&lt;br /&gt;
occupied by a piece of lower rank.&lt;br /&gt;
&lt;br /&gt;
- Standard leap and combat leap: A leap is the same as a move, except the square&lt;br /&gt;
doesn’t have to be adjacent. If not specified, a leap can be onto any square on the&lt;br /&gt;
board.&lt;br /&gt;
&lt;br /&gt;
- Place: Like the “place” action. However, if there is no piece of the specified color&lt;br /&gt;
and rank available, the piece cannot be placed.&lt;br /&gt;
&lt;br /&gt;
- Upgrade: Legendary pieces cannot be upgraded. To upgrade a common piece, flip&lt;br /&gt;
it over. To upgrade a heroic piece, remove it and replace it with a legendary piece.&lt;br /&gt;
If none is available, the heroic piece cannot be upgraded.&lt;br /&gt;
&lt;br /&gt;
- Downgrade: Common pieces cannot be downgraded. To downgrade a heroic piece,&lt;br /&gt;
flip it over. To downgrade a legendary piece, replace it with a heroic piece. If none&lt;br /&gt;
is available, the legendary piece cannot be downgraded.&lt;br /&gt;
&lt;br /&gt;
- Destroy: To destroy a piece, remove it from the board.&lt;br /&gt;
&lt;br /&gt;
- Convert: To convert an enemy piece, replace it with one of your pieces of the same&lt;br /&gt;
rank (unless a different rank is specified).&lt;br /&gt;
&lt;br /&gt;
When keeping track of &#039;&#039;&#039;how many enemy pieces you destroyed&#039;&#039;&#039;, count pieces you&lt;br /&gt;
destroyed during summoning, pieces you destroyed with moves and leaps, pieces you&lt;br /&gt;
destroyed with a “destroy” effect, and pieces you converted. Neither upgrading nor&lt;br /&gt;
downgrading ever counts as destroying a piece.&lt;br /&gt;
&lt;br /&gt;
== The end of the game ==&lt;br /&gt;
&lt;br /&gt;
The end of the game is triggered when a player draws the last card from his or her deck.&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;&#039;High Form&#039;&#039;&#039;, the end of the game is also triggered if a player has 9 or more points at the end of any&lt;br /&gt;
player’s turn.&lt;br /&gt;
Count the points for tasks claimed (by the player or by the team) plus 1 point for&lt;br /&gt;
each legendary piece of that player’s color currently on the board. (It doesn’t&lt;br /&gt;
matter how the piece became legendary.)&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;&#039;Deathmatch&#039;&#039;&#039;, the end of the game is also triggered if a player reaches or surpasses 18 points.&lt;br /&gt;
&lt;br /&gt;
Once the turn that triggers the end is done, play continues so that each player gets one&lt;br /&gt;
more turn, including the player whose turn triggered the end. Then the game ends.&lt;br /&gt;
The player with more points wins.&lt;br /&gt;
If there is a tie, the tiebreakers are, in this order: number of upgraded pieces on&lt;br /&gt;
the board and then total number of pieces on the board.&lt;br /&gt;
If there is still a tie, it remains unbroken.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
These rules are extracted from CGE&#039;s full rules for Tash-Kalar.&lt;/div&gt;</summary>
		<author><name>Quinarbre</name></author>
	</entry>
	<entry>
		<id>https://tr.doc.boardgamearena.com/index.php?title=Gamehelptashkalar&amp;diff=1309</id>
		<title>Gamehelptashkalar</title>
		<link rel="alternate" type="text/html" href="https://tr.doc.boardgamearena.com/index.php?title=Gamehelptashkalar&amp;diff=1309"/>
		<updated>2014-12-25T17:43:54Z</updated>

		<summary type="html">&lt;p&gt;Quinarbre: Created page with &amp;quot;== Game forms ==  On Board Game Arena, Tash-Kalar may be played only by 2 players, and in 2 distinct forms :  - &amp;#039;&amp;#039;&amp;#039;The High Form&amp;#039;&amp;#039;&amp;#039;: Players score points for tasks and for leg...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Game forms ==&lt;br /&gt;
&lt;br /&gt;
On Board Game Arena, Tash-Kalar may be played only by 2 players, and in 2 distinct forms :&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;The High Form&#039;&#039;&#039;: Players score points for tasks and for legendary pieces currently on the board.&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;Deathmatch Duel&#039;&#039;&#039;: No tasks. Players score points for destroying enemy pieces, for summoning legendary beings, and when their opponent invokes a flare.&lt;br /&gt;
&lt;br /&gt;
The actual board game also features Deathmatch Melee for 3 or 4 players, and team play.&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
&lt;br /&gt;
Each player draws 6 cards : 3 beings from his or her own deck, 2 legends, and 1 flare.&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;&#039;High Form&#039;&#039;&#039;, 3 tasks are revealed that may be claimed, along with a fourth &amp;quot;next task&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;&#039;Deathmatch&#039;&#039;&#039;, the player who plays second puts one common piece of each color on the game board, on marked squares.&lt;br /&gt;
&lt;br /&gt;
== Game play ==&lt;br /&gt;
&lt;br /&gt;
Players take turns in clockwise order, beginning with the starting player.&lt;br /&gt;
Each turn, you have 2 actions. Exception: The starting player has only 1 action on his or&lt;br /&gt;
her first turn.&lt;br /&gt;
&lt;br /&gt;
Possible actions:&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;Place 1 common piece&#039;&#039;&#039; of your color on any empty square. If you have none left to place, you begin this action by picking up 1 of your common or heroic pieces, then place it as a common piece.&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;Summon a being&#039;&#039;&#039;. (See below.)&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;Discard 1 being&#039;&#039;&#039; that you drew from your deck. If you do, you may also return one&lt;br /&gt;
or more of your other cards to the bottoms of their decks.&lt;br /&gt;
&lt;br /&gt;
Actions can be done in any order. You can do more than one “place” or “summon” action&lt;br /&gt;
per turn (but no more than one “discard” action). You have to use all your actions.&lt;br /&gt;
You can invoke a flare (see below) before or after any action.&lt;br /&gt;
Invoking a flare does not cost you an action.&lt;br /&gt;
&lt;br /&gt;
Finish your turn by drawing cards so that you end up with 3 beings from your deck, 2&lt;br /&gt;
legends, and 1 flare.&lt;br /&gt;
If you draw the last card in your deck, you may end up with fewer than 3.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High Form&#039;&#039;&#039;: At the end of the turn, you may claim exactly 1 of the current tasks, if you meet its&lt;br /&gt;
criteria.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Deathmatch&#039;&#039;&#039;: At the end of your turn, score points for destroyed enemy pieces: 2 points for legendary,&lt;br /&gt;
1 point for heroic, 1 point for each pair of common pieces.&lt;br /&gt;
You get no points for destroying your own pieces. You get no points for an un-&lt;br /&gt;
paired common piece.&lt;br /&gt;
Also score 1 point each time you summon a legend. (Upgrading a heroic piece does not&lt;br /&gt;
count as “summoning a legend”.)&lt;br /&gt;
&lt;br /&gt;
== Summoning a being ==&lt;br /&gt;
&lt;br /&gt;
To summon a being, use 1 action and do the following:&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;Play the card&#039;&#039;&#039; from your hand and choose a square on the board where your pieces match the pattern on the card.&lt;br /&gt;
The pattern can be rotated (by 90, 180, or 270 degrees). Mirror images and flips&lt;br /&gt;
also count as a match.&lt;br /&gt;
The pieces used to summon the being can be the same rank as those depicted&lt;br /&gt;
in the pattern or higher rank.&lt;br /&gt;
Empty squares are not important to the pattern.&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;Place a piece of the indicated rank&#039;&#039;&#039; (upper left corner of the card) on the square&lt;br /&gt;
indicated by the white-framed square in the pattern.&lt;br /&gt;
This square may be empty, unless the pattern says it must be occupied by one&lt;br /&gt;
of your pieces.&lt;br /&gt;
If the square is occupied by a piece of the same rank or lower, destroy that piece&lt;br /&gt;
when you put the new piece on the square.&lt;br /&gt;
If the square is occupied by a piece of higher rank, you cannot summon the&lt;br /&gt;
being.&lt;br /&gt;
If all your pieces of that type are already on the board, you may&lt;br /&gt;
still be able to summon the being by picking up a piece that is not required for the pattern and use it as&lt;br /&gt;
the new piece.&lt;br /&gt;
&lt;br /&gt;
- Once the new piece is on the board, &#039;&#039;&#039;resolve the effect&#039;&#039;&#039; printed on the card.&lt;br /&gt;
&lt;br /&gt;
- After resolving the effect, discard the card.&lt;br /&gt;
&lt;br /&gt;
== Invoking a flare ==&lt;br /&gt;
&lt;br /&gt;
You can invoke a flare on your turn before or after any action.&lt;br /&gt;
To invoke a flare, you must meet at least one of the criteria:&lt;br /&gt;
&lt;br /&gt;
- You meet the upper criterion if your opponent has &#039;&#039;&#039;that many more upgraded&lt;br /&gt;
pieces&#039;&#039;&#039; (heroic and legendary) on the board than you.&lt;br /&gt;
&lt;br /&gt;
- You meet the lower criterion if your opponent has &#039;&#039;&#039;that many more pieces (total)&#039;&#039;&#039;&lt;br /&gt;
on the board than you.&lt;br /&gt;
&lt;br /&gt;
If you meet the upper criterion, you resolve the upper effect. If you meet the lower&lt;br /&gt;
criterion, you resolve the lower effect. If you meet both, you resolve the upper effect&lt;br /&gt;
first, then the lower.&lt;br /&gt;
Once the card has been resolved, discard it.&lt;br /&gt;
&lt;br /&gt;
== Resolving effects of beings and flares ==&lt;br /&gt;
&lt;br /&gt;
No other action can be taken and no flare can be invoked until the entire effect of the&lt;br /&gt;
card is resolved.&lt;br /&gt;
Some parts of an effect may be optional:&lt;br /&gt;
&lt;br /&gt;
- May indicates that a certain part of an effect is optional.&lt;br /&gt;
&lt;br /&gt;
- Up to always includes 0.&lt;br /&gt;
&lt;br /&gt;
Any parts that are not specified as optional are mandatory.&lt;br /&gt;
If an effect cannot be performed fully, do the parts that can be done.&lt;br /&gt;
When a card uses its own name, it is referring to the piece on the board that represents&lt;br /&gt;
the summoned being.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Keywords&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
- Upgraded piece: a heroic or legendary piece.&lt;br /&gt;
&lt;br /&gt;
- Non-legendary piece: a common or heroic piece.&lt;br /&gt;
&lt;br /&gt;
- Piece: If a piece is not specified as belonging to you or an opponent, then the&lt;br /&gt;
effect includes any player&#039;s piece.&lt;br /&gt;
&lt;br /&gt;
- Marked space: a colored space in the pattern. If the text does not refer to marked&lt;br /&gt;
spaces, the colored spaces in the pattern are just illustrational.&lt;br /&gt;
&lt;br /&gt;
- Adjacent square: one of eight squares sharing an edge (orthogonally adjacent)&lt;br /&gt;
or a corner (diagonally adjacent) with a given square. If the given square is not&lt;br /&gt;
specified, assume it is the square currently occupied by the newly summoned&lt;br /&gt;
piece.&lt;br /&gt;
&lt;br /&gt;
- Distance: the shortest number of moves required to get from one square to&lt;br /&gt;
another. For example, adjacent squares are at distance 1.&lt;br /&gt;
&lt;br /&gt;
- Move: A move is always onto an adjacent square. A move onto an occupied square&lt;br /&gt;
destroys the piece that was there.&lt;br /&gt;
&lt;br /&gt;
- Standard move: This type of move can be only onto an empty square or a square&lt;br /&gt;
occupied by a piece of lower rank.&lt;br /&gt;
&lt;br /&gt;
- Combat move: This type of move can be only onto an empty square or a square&lt;br /&gt;
occupied by a piece of lower rank.&lt;br /&gt;
&lt;br /&gt;
- Standard leap and combat leap: A leap is the same as a move, except the square&lt;br /&gt;
doesn’t have to be adjacent. If not specified, a leap can be onto any square on the&lt;br /&gt;
board.&lt;br /&gt;
&lt;br /&gt;
- Place: Like the “place” action. However, if there is no piece of the specified color&lt;br /&gt;
and rank available, the piece cannot be placed.&lt;br /&gt;
&lt;br /&gt;
- Upgrade: Legendary pieces cannot be upgraded. To upgrade a common piece, flip&lt;br /&gt;
it over. To upgrade a heroic piece, remove it and replace it with a legendary piece.&lt;br /&gt;
If none is available, the heroic piece cannot be upgraded.&lt;br /&gt;
&lt;br /&gt;
- Downgrade: Common pieces cannot be downgraded. To downgrade a heroic piece,&lt;br /&gt;
flip it over. To downgrade a legendary piece, replace it with a heroic piece. If none&lt;br /&gt;
is available, the legendary piece cannot be downgraded.&lt;br /&gt;
&lt;br /&gt;
- Destroy: To destroy a piece, remove it from the board.&lt;br /&gt;
&lt;br /&gt;
- Convert: To convert an enemy piece, replace it with one of your pieces of the same&lt;br /&gt;
rank (unless a different rank is specified).&lt;br /&gt;
&lt;br /&gt;
When keeping track of &#039;&#039;&#039;how many enemy pieces you destroyed&#039;&#039;&#039;, count pieces you&lt;br /&gt;
destroyed during summoning, pieces you destroyed with moves and leaps, pieces you&lt;br /&gt;
destroyed with a “destroy” effect, and pieces you converted. Neither upgrading nor&lt;br /&gt;
downgrading ever counts as destroying a piece.&lt;br /&gt;
&lt;br /&gt;
== The end of the game ==&lt;br /&gt;
&lt;br /&gt;
The end of the game is triggered when a player draws the last card from his or her deck.&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;&#039;High Form&#039;&#039;&#039;, the end of the game is also triggered if a player has 9 or more points at the end of any&lt;br /&gt;
player’s turn.&lt;br /&gt;
Count the points for tasks claimed (by the player or by the team) plus 1 point for&lt;br /&gt;
each legendary piece of that player’s color currently on the board. (It doesn’t&lt;br /&gt;
matter how the piece became legendary.)&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;&#039;Deathmatch&#039;&#039;&#039;, the end of the game is also triggered if a player reaches or surpasses 18 points.&lt;br /&gt;
&lt;br /&gt;
Once the turn that triggers the end is done, play continues so that each player gets one&lt;br /&gt;
more turn, including the player whose turn triggered the end. Then the game ends.&lt;br /&gt;
The player with more points wins.&lt;br /&gt;
If there is a tie, the tiebreakers are, in this order: number of upgraded pieces on&lt;br /&gt;
the board and then total number of pieces on the board.&lt;br /&gt;
If there is still a tie, it remains unbroken.&lt;/div&gt;</summary>
		<author><name>Quinarbre</name></author>
	</entry>
	<entry>
		<id>https://tr.doc.boardgamearena.com/index.php?title=Game_interface_logic:_yourgamename.js&amp;diff=1114</id>
		<title>Game interface logic: yourgamename.js</title>
		<link rel="alternate" type="text/html" href="https://tr.doc.boardgamearena.com/index.php?title=Game_interface_logic:_yourgamename.js&amp;diff=1114"/>
		<updated>2014-04-30T23:36:24Z</updated>

		<summary type="html">&lt;p&gt;Quinarbre: /* Tooltips */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This is the main file for your game interface. Here you will define:&lt;br /&gt;
&lt;br /&gt;
* which actions on the page will generate calls to the server&lt;br /&gt;
* what happens when you get a notification for change from the server and how it will show in the browser. &lt;br /&gt;
&lt;br /&gt;
== File structure ==&lt;br /&gt;
&lt;br /&gt;
The details on how the file is structured is described directly with comments on the code skeleton provided to you.&lt;br /&gt;
&lt;br /&gt;
Basically, here&#039;s this structure:&lt;br /&gt;
* constructor: here you can define variable global to your whole interface.&lt;br /&gt;
* setup: this method is called when the page is refreshed, in order you can setup the game interface.&lt;br /&gt;
* onEnteringState: the method is called when entering in a new game state. This way you can customize the view for this game state.&lt;br /&gt;
* onLeavingState: the method is called when leaving a game state.&lt;br /&gt;
* onUpdateActionButtons: called when entering in a new state, in order you can add action buttons in status bar.&lt;br /&gt;
* (utility methods): at this place you can define your utility methods&lt;br /&gt;
* (player&#039;s actions): at this place you can write your handlers for player&#039;s action on the interface (ex: click on an item).&lt;br /&gt;
* setupNotifications: in this method you associate notifications with notification handlers. This way, for each game notification, you trigger a javascript method to handle it and update the game interface.&lt;br /&gt;
* (notification handlers): at this place you can define your notifications handlers.&lt;br /&gt;
&lt;br /&gt;
== General tips ==&lt;br /&gt;
&lt;br /&gt;
; this.player_id&lt;br /&gt;
: Id of the player on whose browser the code is running.&lt;br /&gt;
&lt;br /&gt;
; this.isSpectator&lt;br /&gt;
: Flag set to true if the user at the table is a spectator (not a player).&lt;br /&gt;
: Note: if you want to hide some element for spectators, you&#039;d better use [[Game_interface_stylesheet:_yourgamename.css#spectatorMode|CSS &#039;spectatorMode&#039; class]].&lt;br /&gt;
&lt;br /&gt;
; this.gamedatas&lt;br /&gt;
: Contains your initial set of datas to init the game, created at game start or game refresh (F5)&lt;br /&gt;
: You can update it as needed to keep an up to date reference of the game on the client side if you need it (most of the time you don&#039;t).&lt;br /&gt;
&lt;br /&gt;
; isCurrentPlayerActive()&lt;br /&gt;
: Returns true if the player on whose browser the code is running is currently active (it&#039;s his turn to play)&lt;br /&gt;
&lt;br /&gt;
; this.getActivePlayerId()&lt;br /&gt;
: Return the ID of active player, or null if we are not in a &amp;quot;activeplayer&amp;quot; type state.&lt;br /&gt;
&lt;br /&gt;
; this.getActivePlayers()&lt;br /&gt;
: Return an array with the IDs of players that are currently active (or an empty array if there is not).&lt;br /&gt;
&lt;br /&gt;
== Dojo framework ==&lt;br /&gt;
&lt;br /&gt;
BGA is using the [http://dojotoolkit.org/ Dojo Javascript framework].&lt;br /&gt;
&lt;br /&gt;
The Dojo framework allows us to do complex things easier, and the BGA framework is using Dojo framework a lot.&lt;br /&gt;
&lt;br /&gt;
To realize game although, you only need to use a few part of the Dojo framework. All the Dojo methods you need to use are describe on this page.&lt;br /&gt;
&lt;br /&gt;
== Access and manipulate the DOM ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;$(&#039;some_html_element_id&#039;)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The $() function is used to get some HTML element using its &amp;quot;id&amp;quot; attribute.&lt;br /&gt;
&lt;br /&gt;
Example 1: modify the content of a &amp;quot;span&amp;quot; element:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
In your HTML code:&lt;br /&gt;
   &amp;lt;span id=&amp;quot;a_value_in_the_game_interface&amp;quot;&amp;gt;1234&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In your Javascript code:&lt;br /&gt;
   $(&#039;a_value_in_the_game_interface&#039;).innerHTML = &amp;quot;9999&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: $() is the standard method to access some HTML element with BGA Framework. You must not use &amp;quot;getElementById&amp;quot; function.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;dojo.style&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
With dojo.style you can modify a CSS property of any HTML element of your interface.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     // Make an element disappear&lt;br /&gt;
     dojo.style( &#039;my_element&#039;, &#039;display&#039;, &#039;none&#039; );&lt;br /&gt;
&lt;br /&gt;
     // Give an element a 2px border&lt;br /&gt;
     dojo.style( &#039;my_element&#039;, &#039;borderWidth&#039;, &#039;2px&#039; );&lt;br /&gt;
&lt;br /&gt;
     // Change the background position of an element&lt;br /&gt;
     // (very practical when you are using CSS sprite to transform an element to another)&lt;br /&gt;
     dojo.style( &#039;my_element&#039;, &#039;backgroundPosition&#039;, &#039;-20px -50px&#039; );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: you must always use dojo.style to modify CSS properties of HTML elements.&lt;br /&gt;
&lt;br /&gt;
Note²: if you have to modify several CSS properties of an element, or if you have some complex CSS transformation to do, you should consider using dojo.addClass/dojo.removeClass (see below).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;dojo CSS classes manipulation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In many situation, a bunch of many small CSS property update can be replaced by a CSS class change (ie: you add a CSS class to your element instead of applying all modification manually).&lt;br /&gt;
&lt;br /&gt;
Advantages are:&lt;br /&gt;
* All your CSS stuff remains in your CSS file.&lt;br /&gt;
* You can add/remove a list of CSS modifications with a simple function and whithout error.&lt;br /&gt;
* You can test if you applied the stuff to an element with &amp;quot;dojo.hasClass&amp;quot; method.&lt;br /&gt;
&lt;br /&gt;
Example from &amp;quot;Reversi&amp;quot;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    // We add &amp;quot;possibleMove&amp;quot; to an element&lt;br /&gt;
    dojo.addClass( &#039;square_&#039;+x+&#039;_&#039;+y, &#039;possibleMove&#039; );&lt;br /&gt;
&lt;br /&gt;
    // In our CSS file, the class is defined as:&lt;br /&gt;
    .possibleMove {&lt;br /&gt;
      background-color: white;&lt;br /&gt;
      opacity: 0.2;&lt;br /&gt;
      filter:alpha(opacity=20); /* For IE8 and earlier */  &lt;br /&gt;
      cursor: pointer;  &lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
     // So we&#039;ve applied 4 CSS property change in one line of code.&lt;br /&gt;
&lt;br /&gt;
     // ... and when we need to check if a square is a possible move on client side:&lt;br /&gt;
     if( dojo.hasClass( &#039;square_&#039;+x+&#039;_&#039;+y, &#039;possibleMove&#039; ) )&lt;br /&gt;
     { ... }&lt;br /&gt;
&lt;br /&gt;
     // ... and if we want to remove all possible moves in one line of code (see &amp;quot;dojo.query&amp;quot; method):&lt;br /&gt;
     dojo.query( &#039;.possibleMove&#039; ).removeClass( &#039;possibleMove&#039; );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Conclusion: we encourage you to use dojo.addClass, dojo.removeClass and dojo.hasClass to make your life easier :)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;dojo.query&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
With dojo.query, you can query a bunch of HTML elements with a single function, with a &amp;quot;CSS selector&amp;quot; style.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     // All elements with class &amp;quot;possibleMove&amp;quot;:&lt;br /&gt;
     var elements = dojo.query( &#039;.possibleMove&#039; );&lt;br /&gt;
&lt;br /&gt;
     // Count number of tokens (ie: elements with class &amp;quot;token&amp;quot;) on the board (ie: element with id &amp;quot;board&amp;quot;):&lt;br /&gt;
     dojo.query( &#039;#board .token&#039; ).length;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But what is really cool with dojo.query is that you can combine it with almost all methods above.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     // Trigger a method when the mouse enter in any element with class &amp;quot;meeple&amp;quot;:&lt;br /&gt;
     dojo.query( &#039;.meeple&#039; ).connect( &#039;onmouseenter&#039;, this, &#039;myMethodToTrigger&#039; );&lt;br /&gt;
&lt;br /&gt;
     // Hide all meeples who are on the board&lt;br /&gt;
     dojo.query( &#039;#board .meeple&#039; ).style( &#039;display&#039;, &#039;none&#039; );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;dojo.place&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
dojo.place is the best function to insert some HTML code somewhere in your game interface without breaking something. It is much better to use that &amp;quot;innerHTML=&#039;&#039;&amp;quot; method as soon as you must insert HTML tags and not only values.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     // Insert your HTML code as a child of a container element&lt;br /&gt;
     dojo.place( &amp;quot;&amp;lt;your html code&amp;gt;&amp;quot;, &amp;quot;your_container_element_id&amp;quot; );&lt;br /&gt;
&lt;br /&gt;
     // Replace the container element with your new html&lt;br /&gt;
     dojo.place( &amp;quot;&amp;lt;your html code&amp;gt;&amp;quot;, &amp;quot;your_container_element_id&amp;quot;, &amp;quot;replace&amp;quot; );&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: the third parameter of dojo.place can take various interesting value: &amp;quot;first&amp;quot;, &amp;quot;after&amp;quot;, ... [http://dojotoolkit.org/reference-guide/1.7/dojo/place.html See full doc on dojo.place].&lt;br /&gt;
&lt;br /&gt;
Usually, when you want to insert some piece of HTML in your game interface, you should use &amp;quot;[[Game_layout:_view_and_template:_yourgamename.view.php_and_yourgamename_yourgamename.tpl#Javascript_templates|Javascript templates]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;addStyleToClass: function( cssClassName, cssProperty, propertyValue )&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Same as dojo.style(), but for all the nodes set with the specified cssClassName&lt;br /&gt;
&lt;br /&gt;
=== Animations ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dojo Animations&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
BGA animations is based on Dojo Animation ([http://dojotoolkit.org/documentation/tutorials/1.8/animation/ see tutorial here]).&lt;br /&gt;
&lt;br /&gt;
However, most of the time, you can just use methods below, which are built on top of Dojo Animation.&lt;br /&gt;
&lt;br /&gt;
Note: one interesting method from Dojo that could be useful from time to time is &amp;quot;Dojo.Animation&amp;quot;. It allows you to make any CSS property &amp;quot;slide&amp;quot; from one value to another.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;this.slideToObject( mobile_obj, target_obj, duration, delay )&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can use slideToObject to &amp;quot;slide&amp;quot; an element to a target position.&lt;br /&gt;
&lt;br /&gt;
Sliding element on the game area is the recommended and the most used way to animate your game interface. Using slides allow players to figure out what is happening on the game, as if they were playing with the real boardgame.&lt;br /&gt;
&lt;br /&gt;
The parameters are:&lt;br /&gt;
* mobile_obj: the ID of the object to move. This object must be &amp;quot;relative&amp;quot; or &amp;quot;absolute&amp;quot; positioned.&lt;br /&gt;
* target_obj: the ID of the target object. This object must be &amp;quot;relative&amp;quot; or &amp;quot;absolute&amp;quot; positioned. Note that it is not mandatory that mobile_obj and target_obj have the same size. If their size are different, the system slides the center of mobile_obj to the center of target_obj.&lt;br /&gt;
* duration: (optional) defines the duration in millisecond of the slide. The default is 500 milliseconds.&lt;br /&gt;
* delay: (optional). If you defines a delay, the slide will start only after this delay. This is particularly useful when you want to slide several object from the same position to the same position: you can give a 0ms delay to the first object, a 100ms delay to the second one, a 200ms delay to the third one, ... this way they won&#039;t be superposed during the slide.&lt;br /&gt;
&lt;br /&gt;
BE CAREFUL: The method returns an dojo.fx animation, so you can combine it with other animation if you want to. It means that you have to call the &amp;quot;play()&amp;quot; method, otherwise the animation WON&#039;T START.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   this.slideToObject( &amp;quot;some_token&amp;quot;, &amp;quot;some_place_on_board&amp;quot; ).play();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;this.slideToObjectPos( mobile_obj, target_obj, target_x, target_y, duration, delay )&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This method does exactly the same than &amp;quot;slideToObjectPos&amp;quot;, except than you can specify some (x,y) coordinates. This way, &amp;quot;mobile_obj&amp;quot; will slide to the specified x,y position relatively to &amp;quot;target_obj&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Example: slide a token to some place on the board, 10 pixels to the bottom:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   this.slideToObjectPos( &amp;quot;some_token&amp;quot;, &amp;quot;some_place_on_board&amp;quot;, 0, 10 ).play();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;this.slideTemporaryObject( mobile_obj_html, mobile_obj_parent, from, to, duration, delay )&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This method is useful when you want to slide a temporary HTML object from one place to another. As this object does not exists before the animation and won&#039;t remain after, it could be complex to create this object (with dojo.place), to place it at its origin (with placeOnObject) to slide it (with slideToObject) and to make it disappear at the end.&lt;br /&gt;
&lt;br /&gt;
slideTemporaryObject does all of this for you:&lt;br /&gt;
* mobile_obj_html is a piece of HTML code that represent the object to slide.&lt;br /&gt;
* mobile_obj_parent is the ID of an HTML element of your interface that will be the parent of this temporary HTML object.&lt;br /&gt;
* from is the ID of the origin of the slide.&lt;br /&gt;
* to is the ID of the target of the slide.&lt;br /&gt;
* duration/delay works exactly like in &amp;quot;slideToObject&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
this.slideTemporaryObject( &#039;&amp;lt;div class=&amp;quot;token_icon&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;, &#039;tokens&#039;, &#039;my_origin_div&#039;, &#039;my_target_div&#039; );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;this.slideToObjectAndDestroy: function( node, to, time, delay )&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This method is a handy shortcut to slide an existing HTML object to some place then destroy it upon arrival. It can be used for example to move a victory token or a card from the board to the player panel to show that the player earns it, then destroy it when we don&#039;t need to keep it visible on the player panel.&lt;br /&gt;
&lt;br /&gt;
It works the same as this.slideToObject and takes the same arguments. &lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
this.slideToObjectAndDestroy( &amp;quot;some_token&amp;quot;, &amp;quot;some_place_on_board&amp;quot;, 1000, 0 );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;this.fadeOutAndDestroy( node )&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This function fade out the target HTML node, then destroy it.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   this.fadeOutAndDestroy( &amp;quot;a_card_that_must_disappear&amp;quot; );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CAREFUL: the HTML node still exists until during few milliseconds, until the fadeOut has been completed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rotating elements&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can check here [http://jimfulton.info/demos/dojo-animated-rotate.html an example of use] of Dojo to make an element rotate.&lt;br /&gt;
&lt;br /&gt;
This example combines &amp;quot;Dojo.Animation&amp;quot; method and a CSS3 property that allow you to rotate the element.&lt;br /&gt;
&lt;br /&gt;
IMPORTANT: to asses browser compatibility, you must select the CSS property to use just like in the example (see sourcecode below):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        var transform;&lt;br /&gt;
        dojo.forEach(&lt;br /&gt;
            [&#039;transform&#039;, &#039;WebkitTransform&#039;, &#039;msTransform&#039;,&lt;br /&gt;
             &#039;MozTransform&#039;, &#039;OTransform&#039;],&lt;br /&gt;
            function (name) {&lt;br /&gt;
                if (typeof dojo.body().style[name] != &#039;undefined&#039;) {&lt;br /&gt;
                    transform = name;&lt;br /&gt;
                }&lt;br /&gt;
            });&lt;br /&gt;
        // ... and then use &amp;quot;transform&amp;quot; as the name of your CSS property for rotation&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Moving elements ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;this.placeOnObject( mobile_obj, target_obj )&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
placeOnObject works exactly like &amp;quot;slideToObject&amp;quot;, except that the effect is immediate.&lt;br /&gt;
&lt;br /&gt;
This is not really an animation, but placeOnObject is frequently used before starting an animation.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  // (We just created an object &amp;quot;my_new_token&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  // Place the new token on current player board&lt;br /&gt;
  this.placeOnObject( &amp;quot;my_new_token&amp;quot;, &amp;quot;overall_player_board_&amp;quot;+this.player_id );&lt;br /&gt;
  &lt;br /&gt;
  // Then slide it to its position on the board&lt;br /&gt;
  this.slideToObject( &amp;quot;my_new_token&amp;quot;, &amp;quot;a_place_on_board&amp;quot; ).play();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;this.placeOnObjectPos( mobile_obj, target_obj, target_x, target_y )&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This method works exactly like placeOnObject, except than you can specify some (x,y) coordinates. This way, &amp;quot;mobile_obj&amp;quot; will be placed to the specified x,y position relatively to &amp;quot;target_obj&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;this.attachToNewParent( mobile_obj, target_obj )&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
With this method, you change the HTML parent of &amp;quot;mobile_obj&amp;quot; element. &amp;quot;target_obj&amp;quot; is the new parent of this element. The beauty of &lt;br /&gt;
attachToNewParent is that the mobile_obj element DOES NOT MOVE during this process.&lt;br /&gt;
&lt;br /&gt;
Note: what happens is that the method calculate a relative position of mobile_obj to make sure it does not move after the HTML parent changes.&lt;br /&gt;
&lt;br /&gt;
Why using this method?&lt;br /&gt;
&lt;br /&gt;
Changing the HTML parent of an element can be useful for the following reasons:&lt;br /&gt;
* When the HTML parent moves, all its child are moving with them. If some game elements is no more linked with a parent HTML object, you may want to attach it to another place.&lt;br /&gt;
* The z_order (vertical order of display) depends on the position in the DOM, so you may need to change the parent of some game elements when they are moving in your game area.&lt;br /&gt;
&lt;br /&gt;
CAREFUL: when you attach an HTML element with a new parent, you break all references to this HTML element (ex: dojo.connect).&lt;br /&gt;
&lt;br /&gt;
== Players input ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;dojo.connect&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Used to associate a player event with one of your notification method.&lt;br /&gt;
&lt;br /&gt;
Example: associate a click on an element (&amp;quot;my_element&amp;quot;) with one of our method (&amp;quot;onClickOnMyElement&amp;quot;):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
      dojo.connect( $(&#039;my_element&#039;), &#039;onclick&#039;, this, &#039;onClickOnMyElement&#039; );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: this is the only possible correct way to associate a player input event to your code, and you must not use anything else.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;this.checkAction( &amp;quot;my_action_name&amp;quot; )&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Usage: checkAction: function( action, nomessage )&lt;br /&gt;
&lt;br /&gt;
Check if player can do the specified action by taking into account:&lt;br /&gt;
* current game state&lt;br /&gt;
* interface locking (a player can&#039;t do any action if an action is already in progress)&lt;br /&gt;
&lt;br /&gt;
return true if action is authorized (ie: the action is listed as a &amp;quot;possibleaction&amp;quot; in current game state).&lt;br /&gt;
&lt;br /&gt;
return false and display an error message if not (display no message if nomessage parameter is true). The displayed error message could be either &amp;quot;This move is not allowed at this moment&amp;quot; or &amp;quot;An action is already in progress&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  function onClickOnGameElement( evt )&lt;br /&gt;
  {&lt;br /&gt;
     if( this.checkAction( &amp;quot;my_action&amp;quot; ) )&lt;br /&gt;
     {&lt;br /&gt;
        // Do the action&lt;br /&gt;
     }&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;this.ajaxcall( url, parameters, obj_callback, callback, callback_error )&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This method must be used to send a player input to the game server.&lt;br /&gt;
&lt;br /&gt;
* url: the url of the action to perform. For a game, it must be: &amp;quot;/&amp;lt;mygame&amp;gt;/&amp;lt;mygame&amp;gt;/myAction.html&amp;quot;&lt;br /&gt;
* parameters: an array of parameter to send to the game server. Note that &amp;quot;lock:true&amp;quot; must always be specified in this list of parameter in order the interface can be locked during the server call.&lt;br /&gt;
* obj_callback: must be set to &amp;quot;this&amp;quot;.&lt;br /&gt;
* callback: a function to trigger when the server returns and everything went fine.&lt;br /&gt;
* callback_error: (optional and rarely used) a function to trigger when the server returns an error.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
this.ajaxcall( &#039;/mygame/mygame/myaction.html&#039;, { lock: true, &lt;br /&gt;
   arg1: myarg1, &lt;br /&gt;
   arg2: myarg2, &lt;br /&gt;
   ...&lt;br /&gt;
}, this, function( result ) {&lt;br /&gt;
   // Do some stuff after a successful call&lt;br /&gt;
} );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Restricted arguments names (please don&#039;t use them):&lt;br /&gt;
* &amp;quot;action&amp;quot;&lt;br /&gt;
* &amp;quot;module&amp;quot;&lt;br /&gt;
* &amp;quot;class&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;this.confirmationDialog()&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Display a confirmation dialog with a yes/no choice.&lt;br /&gt;
&lt;br /&gt;
We advice you to NOT use this function unless the player action is really critical and could ruins the game, because it slows down the game and upset players.&lt;br /&gt;
&lt;br /&gt;
Usage: this.confirmationDialog( &amp;quot;Question to displayed&amp;quot;, callback_function_if_click_on_yes );&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
this.confirmationDialog( _(&#039;Are you sure to use this bonus (points penalty at the end of the game) ?&#039;),&lt;br /&gt;
                         dojo.hitch( this, function() {&lt;br /&gt;
                           this.ajaxcall( &#039;/seasons/seasons/useBonus.html&#039;,&lt;br /&gt;
                                { id:bonus_id, lock:true }, this, function( result ) {} );&lt;br /&gt;
                        } ) ); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; addEventToClass: function( cssClassName, eventName, functionName )&lt;br /&gt;
: Same as dojo.connect(), but for all the nodes set with the specified cssClassName&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;this.addActionButton( id, label, method, (opt)depreciated, (opt)bHighlight )&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can use this method to add an action button in the main action status bar.&lt;br /&gt;
&lt;br /&gt;
Arguments:&lt;br /&gt;
* id: a ID that should be unique in your HTML DOM document.&lt;br /&gt;
* label: the text of the button. Should be translatable (use _() function).&lt;br /&gt;
* method: the name of your method that must be triggered when the player clicks on this button.&lt;br /&gt;
* depreciated (optional): do not use this. Please not specify this argument or use &amp;quot;null&amp;quot;.&lt;br /&gt;
* bHighlight: if set to &amp;quot;true&amp;quot;, the button is going blink to catch player&#039;s attention. Please don&#039;t abuse of blinking button.&lt;br /&gt;
&lt;br /&gt;
You should only use this method in your &amp;quot;onUpdateActionButtons&amp;quot; method. Usually, you use it like this (from Hears example):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        onUpdateActionButtons: function( stateName, args )&lt;br /&gt;
        {&lt;br /&gt;
            console.log( &#039;onUpdateActionButtons: &#039;+stateName );&lt;br /&gt;
                      &lt;br /&gt;
            if( this.isCurrentPlayerActive() )&lt;br /&gt;
            {            &lt;br /&gt;
                switch( stateName )&lt;br /&gt;
                {&lt;br /&gt;
                case &#039;giveCards&#039;:&lt;br /&gt;
                    this.addActionButton( &#039;giveCards_button&#039;, _(&#039;Give selected cards&#039;), &#039;onGiveCards&#039; ); &lt;br /&gt;
                    break;&lt;br /&gt;
&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        },   &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the example above, we are adding a &amp;quot;Give selected cards&amp;quot; button in the case we are on game state &amp;quot;giveCards&amp;quot;. When player clicks on this button, it triggers our &amp;quot;onGiveCards&amp;quot; method.&lt;br /&gt;
&lt;br /&gt;
== Translations ==&lt;br /&gt;
&lt;br /&gt;
See [[Translations]]&lt;br /&gt;
&lt;br /&gt;
== Notifications ==&lt;br /&gt;
&lt;br /&gt;
When something happens on the server side, your game interface Javascript logic received a notification.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s how you can handle these notifications on the client side.&lt;br /&gt;
&lt;br /&gt;
=== Subscribe to notifications ===&lt;br /&gt;
&lt;br /&gt;
Your Javascript &amp;quot;setupNotifications&amp;quot; method is the place where you can subscribe to notifications from your PHP code.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s how you associate one of your Javascript method to a notification &amp;quot;playDisc&amp;quot; (from Reversi example):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   // In setupNotifications method:&lt;br /&gt;
   dojo.subscribe( &#039;playDisc&#039;, this, &amp;quot;notif_playDisc&amp;quot; );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: the &amp;quot;playDisc&amp;quot; corresponds to the name of the notification you define it in your PHP code, in your &amp;quot;notifyAllPlayers&amp;quot; or &amp;quot;notifyPlayer&amp;quot; method.&lt;br /&gt;
&lt;br /&gt;
Then, you have to define your &amp;quot;notif_playDisc&amp;quot; method:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        notif_playDisc: function( notif )&lt;br /&gt;
        {&lt;br /&gt;
            // Remove current possible moves (makes the board more clear)&lt;br /&gt;
            dojo.query( &#039;.possibleMove&#039; ).removeClass( &#039;possibleMove&#039; );        &lt;br /&gt;
        &lt;br /&gt;
            this.addDiscOnBoard( notif.args.x, notif.args.y, notif.args.player_id );&lt;br /&gt;
        },&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In a notification handler like our &amp;quot;notif_playDisc&amp;quot; method, you can access to all notifications arguments with &amp;quot;notif.args&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    // If you did this on PHP side:&lt;br /&gt;
    self::notifyAllPlayers( &amp;quot;myNotification&amp;quot;, &#039;&#039;, array( &amp;quot;myArgument&amp;quot; =&amp;gt; 3 ) );&lt;br /&gt;
&lt;br /&gt;
    // On Javascript side, you can access the &amp;quot;myArgument&amp;quot; like this:&lt;br /&gt;
    notif_myNotification: function( notif )&lt;br /&gt;
    {&lt;br /&gt;
       alert( &amp;quot;myArgument = &amp;quot; + notif.args.myArgument );&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Synchronous notifications ===&lt;br /&gt;
&lt;br /&gt;
When several notifications are received by your game interface, these notifications are processed immediately, one after the other, in the same exact order they have been generated in your PHP game logic.&lt;br /&gt;
&lt;br /&gt;
However, sometimes, you need to give some time to the players to figure out what happened on the game before jumping to the next notification. Indeed, in many games, they are a lot of automatic actions, and the computer is going to resolve all these actions very fast if you don&#039;t tell it not to do so.&lt;br /&gt;
&lt;br /&gt;
As an example, for Reversi, when someone is playing a disc, we want to wait 500 milliseconds before doing anything else in order the opponent player can figure out what move has been played.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s how we do this, right after our subscription:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
       dojo.subscribe( &#039;playDisc&#039;, this, &amp;quot;notif_playDisc&amp;quot; );&lt;br /&gt;
       this.notifqueue.setSynchronous( &#039;playDisc&#039;, 500 );   // Wait 500 milliseconds after executing the playDisc handler&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tooltips ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;this.addTooltip( nodeId, _( helpString ), _( actionString ), delay )&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Add a simple text tooltip to the DOM node.&lt;br /&gt;
&lt;br /&gt;
Specify &#039;helpString&#039; to display some information about &amp;quot;what is this game element?&amp;quot;.&lt;br /&gt;
Specify &#039;actionString&#039; to display some information about &amp;quot;what happens when I click on this element?&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
You must specify both helpString and actionString. Most of the time, you use only one and specify a void string (&amp;quot;&amp;quot;) for the other one.&lt;br /&gt;
&lt;br /&gt;
Usually, _() must be used for the text to be marked for translation.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Delay&amp;quot; is an optional parameter. Usually, it is primarily used to specify a zero delay for some game element when the tooltip gives really important information for the game - but remember: no essential information must be placed in tooltips as they won&#039;t be displayed in some browser (see Guidelines).&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   this.addTooltip( &#039;cardcount&#039;, _(&#039;Number of cards in hand&#039;), &#039;&#039; );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;this.addTooltipHtml( nodeId, html, delay )&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Add an HTML tooltip to the DOM node (for more elaborate content such as presenting a bigger version of a card).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;this.addTooltipToClass( cssClass, _( helpString ), _( actionString ), delay )&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Add a simple text tooltip to all the DOM nodes set with this cssClass. &lt;br /&gt;
&lt;br /&gt;
IMPORTANT: all concerned nodes must have IDs to get tooltips.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;this.addTooltipHtmlToClass( cssClass, html, delay )&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Add an HTML tooltip to to all the DOM nodes set with this cssClass (for more elaborate content such as presenting a bigger version of a card).&lt;br /&gt;
&lt;br /&gt;
IMPORTANT: all concerned nodes must have IDs to get tooltips&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;this.removeTooltip( nodeId )&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Remove a tooltip from the DOM node.&lt;br /&gt;
&lt;br /&gt;
== Dialogs, warning messages, confirmation dialogs, ... ==&lt;br /&gt;
&lt;br /&gt;
=== Warning messages ===&lt;br /&gt;
&lt;br /&gt;
Sometimes, there is something important that is happening on the game and you have to make sure all players get the message. Most of the time, the evolution of the game situation or the game log is enough, but sometimes you need something more visible.&lt;br /&gt;
&lt;br /&gt;
Ex: someone fulfill one of the end of the game condition, so this is the last turn.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;this.showMessage( msg, type )&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
showMessage shows a message in a big rectangular area on the top of the screen of current player.&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;msg&amp;quot; is the string to display. It should be translated.&lt;br /&gt;
* &amp;quot;type&amp;quot; can be set to &amp;quot;info&amp;quot; or &amp;quot;error&amp;quot;. If set to &amp;quot;info&amp;quot;, the message will be an informative message on a white background. If set to &amp;quot;error&amp;quot;, the message will be an error message on a red background.&lt;br /&gt;
&lt;br /&gt;
Important: the normal way to inform players about the progression of the game is the game log. &amp;quot;showMessage&amp;quot; is intrusive and should not be used often.&lt;br /&gt;
&lt;br /&gt;
=== Confirmation dialog ===&lt;br /&gt;
&lt;br /&gt;
When an important action with a lot of consequences is triggered by the player, you may want to propose a confirmation dialog.&lt;br /&gt;
&lt;br /&gt;
CAREFUL: the general guidelines of BGA is to AVOID the use of confirmation dialog. Confirmation dialogs slow down the game and bother players. The players knows that they have to pay attention about each move when they are playing online.&lt;br /&gt;
&lt;br /&gt;
The situation where you should use a confirmation dialog are the following:&lt;br /&gt;
* It must not happen very often during a game.&lt;br /&gt;
* It must be linked to an action that can really &amp;quot;kill a game&amp;quot; if the player do not pay attention.&lt;br /&gt;
* It must be something that can be done by mistake (ex: a link on the action status bar).&lt;br /&gt;
&lt;br /&gt;
How to display a confirmation dialog:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        this.confirmationDialog( _(&#039;Are you sure you want to make this?&#039;), dojo.hitch( this, function() {&lt;br /&gt;
            this.ajaxcall( &#039;/mygame/mygame/makeThis.html&#039;, { lock:true }, this, function( result ) {} );&lt;br /&gt;
        } ) );   &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dialogs ===&lt;br /&gt;
&lt;br /&gt;
At first, you shouldn&#039;t use dialogs windows.&lt;br /&gt;
&lt;br /&gt;
BGA guidelines specify that all game elements should be displayed on the main screen. Players can eventually scroll down to see game elements they don&#039;t need to see anytime, and you may eventually create anchors to move between game area section. Of course dialogs windows are very practical, but the thing is: all players know how to scroll down, and not all players know how to show up your dialog window. In addition, when the dialog shows up, players can&#039;t access the other game components.&lt;br /&gt;
&lt;br /&gt;
Sometimes although, you need to display a dialog window. Here is how you do this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  // Create the new dialog. You should store the handler in a member variable to access it later&lt;br /&gt;
  this.myDlg = new dijit.Dialog({ title: _(&amp;quot;my dialog title to translate&amp;quot;) });&lt;br /&gt;
&lt;br /&gt;
  // Create the HTML of my dialog. The best practice here is to use [[Game_layout:_view_and_template:_yourgamename.view.php_and_yourgamename_yourgamename.tpl#Javascript_templates|Javascript templates]]:&lt;br /&gt;
  var html = this.format_block( &#039;jstpl_myDialogTemplate&#039;, { &lt;br /&gt;
                arg1: myArg1,&lt;br /&gt;
                arg2: myArg2,&lt;br /&gt;
                ...&lt;br /&gt;
            } );  &lt;br /&gt;
&lt;br /&gt;
  // Show the dialog&lt;br /&gt;
  this.myDlg.attr(&amp;quot;content&amp;quot;, html );&lt;br /&gt;
  this.myDlg.show(); &lt;br /&gt;
&lt;br /&gt;
  // Now that the dialog has been displayed, you can connect your method to some dialog elements&lt;br /&gt;
  // Example, a &amp;quot;close&amp;quot; button:&lt;br /&gt;
  dojo.connect( $(&#039;closeDlg&#039;), &#039;onclick&#039;, this, function(evt){&lt;br /&gt;
                evt.preventDefault();&lt;br /&gt;
                this.myDlg.hide();&lt;br /&gt;
            } );  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tip: be careful with &amp;quot;hide()&amp;quot; method to close your dialog: the dialog and its content is not completely removed from the DOM. It can cause you problems if you try to display the same dialog several times. A good practice is to wrap all the content of your dialog in a &amp;quot;&amp;lt;div id=&#039;myDlgContent&#039;&amp;gt;&amp;quot; div element, and to call &amp;quot;dojo.destroy(&#039;myDlgContent&#039;)&amp;quot; before displaying your dialog.&lt;br /&gt;
&lt;br /&gt;
=== Scoring dialogs ===&lt;br /&gt;
&lt;br /&gt;
Sometimes at the end of a round you want to display a big table that details the points wins in each section of the game.&lt;br /&gt;
&lt;br /&gt;
Example: in Hearts game, we display at the end of each round the number of &amp;quot;heart&amp;quot; cards collected by each player, the player who collected the Queen of Spades, and the total number of points loose by each player.&lt;br /&gt;
&lt;br /&gt;
Scoring dialogs are managed entirely on &#039;&#039;&#039;PHP side&#039;&#039;&#039;, but they are described here as their effects are visible only on client side.&lt;br /&gt;
&lt;br /&gt;
Displaying a scoring dialog is quite simple and is using a special notification type: &amp;quot;tableWindow&amp;quot;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  // on PHP side:&lt;br /&gt;
  $this-&amp;gt;notifyAllPlayers( &amp;quot;tableWindow&amp;quot;, &#039;&#039;, array(&lt;br /&gt;
            &amp;quot;id&amp;quot; =&amp;gt; &#039;finalScoring&#039;,&lt;br /&gt;
            &amp;quot;title&amp;quot; =&amp;gt; clienttranslate(&amp;quot;Title of the scoring dialog&amp;quot;),&lt;br /&gt;
            &amp;quot;table&amp;quot; =&amp;gt; $table&lt;br /&gt;
        ) ); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;table&amp;quot; argument is a 2 dimensional PHP array that describe the table you want to display, line by line and column by column.&lt;br /&gt;
&lt;br /&gt;
Example: display an 3x3 array of strings&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   $table = array(&lt;br /&gt;
      array( &amp;quot;one&amp;quot;, &amp;quot;two&amp;quot;, &amp;quot;three&amp;quot; ),    // This is my first line&lt;br /&gt;
      array( &amp;quot;four&amp;quot;, &amp;quot;five&amp;quot;, &amp;quot;six&amp;quot; ),    // This is my second line&lt;br /&gt;
      array( &amp;quot;seven&amp;quot;, &amp;quot;height&amp;quot;, &amp;quot;nine&amp;quot; )    // This is my third line&lt;br /&gt;
   );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As you can see above, in each &amp;quot;cell&amp;quot; of your array you can display a simple string value. But you can also display a complex value with a template and associated arguments like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   $table = array(&lt;br /&gt;
      array( &amp;quot;one&amp;quot;, &amp;quot;two&amp;quot;, array( &amp;quot;str&amp;quot; =&amp;gt; &amp;quot;a string with an ${argument}&amp;quot;, &amp;quot;args&amp;quot; =&amp;gt; array( &#039;argument&#039; =&amp;gt; &#039;argument_value&#039; )  ) ),&lt;br /&gt;
      array( &amp;quot;four&amp;quot;, &amp;quot;five&amp;quot;, &amp;quot;six&amp;quot; ), &lt;br /&gt;
      array( &amp;quot;seven&amp;quot;, &amp;quot;height&amp;quot;, &amp;quot;nine&amp;quot; )&lt;br /&gt;
   );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is especially useful when you want to display player names with colors. Example from &amp;quot;Hearts&amp;quot;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        $firstRow = array( &#039;&#039; );&lt;br /&gt;
        foreach( $players as $player_id =&amp;gt; $player )&lt;br /&gt;
        {&lt;br /&gt;
            $firstRow[] = array( &#039;str&#039; =&amp;gt; &#039;${player_name}&#039;,&lt;br /&gt;
                                 &#039;args&#039; =&amp;gt; array( &#039;player_name&#039; =&amp;gt; $player[&#039;player_name&#039;] ),&lt;br /&gt;
                                 &#039;type&#039; =&amp;gt; &#039;header&#039;&lt;br /&gt;
                               );&lt;br /&gt;
        }&lt;br /&gt;
        $table[] = $firstRow;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also use three extra attributes in the parameter array for the notification:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   $this-&amp;gt;notifyAllPlayers( &amp;quot;tableWindow&amp;quot;, &#039;&#039;, array(&lt;br /&gt;
            &amp;quot;id&amp;quot; =&amp;gt; &#039;finalScoring&#039;,&lt;br /&gt;
            &amp;quot;title&amp;quot; =&amp;gt; clienttranslate(&amp;quot;Title of the scoring dialog&amp;quot;),&lt;br /&gt;
            &amp;quot;table&amp;quot; =&amp;gt; $table,&lt;br /&gt;
            &amp;quot;header&amp;quot; =&amp;gt; &#039;&amp;lt;div&amp;gt;Some header&amp;lt;/div&amp;gt;&#039;,&lt;br /&gt;
            &amp;quot;footer&amp;quot; =&amp;gt; &#039;&amp;lt;div&amp;gt;Some footer&amp;lt;/div&amp;gt;&#039;,&lt;br /&gt;
            &amp;quot;closelabel&amp;quot; =&amp;gt; clienttranslate( &amp;quot;Closing button label&amp;quot; )&lt;br /&gt;
        ) ); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;header&#039;&#039;&#039;: the content for this parameter will display before the table (also, the html will be parsed and player names will be colored according to the current game colors)&lt;br /&gt;
*&#039;&#039;&#039;footer&#039;&#039;&#039;: the content for this parameter will display after the table (no parsing for coloring the player names)&lt;br /&gt;
*&#039;&#039;&#039;closelabel&#039;&#039;&#039;: if this parameter is used, a button will be displayed with this label at the bottom of the popup and will allow players to close it (more easily than by clicking the top right &#039;cross&#039; icon). NB: this last parameter is not yet - 24/02/2014 - deployed on the studio, but can be used already and will take effect immediately with the next update.&lt;br /&gt;
&lt;br /&gt;
== Update players score ==&lt;br /&gt;
&lt;br /&gt;
Increase a player score (with a positive or negative number):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  this.scoreCtrl[ player_id ].incValue( score_delta );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set a player score to a specific value:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  this.scoreCtrl[ player_id ].setValue( new_score );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Players panels ==&lt;br /&gt;
&lt;br /&gt;
=== Adding stuff to player&#039;s panel ===&lt;br /&gt;
&lt;br /&gt;
At first, create a new &amp;quot;JS template&amp;quot; string in your template (tpl) file:&lt;br /&gt;
&lt;br /&gt;
(from Gomoku example)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var jstpl_player_board = &#039;\&amp;lt;div class=&amp;quot;cp_board&amp;quot;&amp;gt;\&lt;br /&gt;
    &amp;lt;div id=&amp;quot;stoneicon_p${id}&amp;quot; class=&amp;quot;gmk_stoneicon gmk_stoneicon_${color}&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;span id=&amp;quot;stonecount_p${id}&amp;quot;&amp;gt;0&amp;lt;/span&amp;gt;\&lt;br /&gt;
&amp;lt;/div&amp;gt;&#039;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, you add this piece of code in your JS file to add this template to each player panel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            // Setting up player boards&lt;br /&gt;
            for( var player_id in gamedatas.players )&lt;br /&gt;
            {&lt;br /&gt;
                var player = gamedatas.players[player_id];&lt;br /&gt;
                         &lt;br /&gt;
                // Setting up players boards if needed&lt;br /&gt;
                var player_board_div = $(&#039;player_board_&#039;+player_id);&lt;br /&gt;
                dojo.place( this.format_block(&#039;jstpl_player_board&#039;, player ), player_board_div );&lt;br /&gt;
            }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Note: the code above is of course from your &amp;quot;setup&amp;quot; function in your Javascript).&lt;br /&gt;
&lt;br /&gt;
Very often, you have to distinguish current player and others players. In this case, you just have to create another JS template (ex: jstpl_otherplayer_board) and use it when &amp;quot;player_id&amp;quot; is different than &amp;quot;this.player_id&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Player&#039;s panel disabling/enabling ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;this.disablePlayerPanel( player_id )&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Disable given player panel (the panel background become gray).&lt;br /&gt;
&lt;br /&gt;
Usually, this is used to signal that this played passes, or will be inactive during a while.&lt;br /&gt;
&lt;br /&gt;
Note that the only effect of this is visual. There are no consequences on the behaviour of the panel itself.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;this.enablePlayerPanel( player_id )&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable a player panel that has been disabled before.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;this.enableAllPlayerPanels()&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable all player panels that has been disabled before.&lt;br /&gt;
&lt;br /&gt;
== Image loading ==&lt;br /&gt;
&lt;br /&gt;
See also [[Game_art:_img_directory]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Be careful&#039;&#039;&#039;: by default, ALL images of your img directory are loaded on a player&#039;s browser when he loads the game. For this reason, don&#039;t let in your img directory images that are not useful, otherwise it&#039;s going to slowdown the game load.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;dontPreloadImage( image_file_name )&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Using dontPreloadImage, you tell the interface to not preload a specific image in your img directory.&lt;br /&gt;
&lt;br /&gt;
Example of use:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
this.dontPreloadImage( &#039;cards.png&#039; );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is particularly useful if for example you have 2 different themes for a game. To accelerate the loading of the game, you can specify to not preload images corresponding to the other theme.&lt;br /&gt;
&lt;br /&gt;
Another example of use: in &amp;quot;Gosu&amp;quot; game with Kamakor extension, you play with 5 sets of cards among 10 available. Cards images are organized by sets, and we only preload the images corresponding to the 5 current sets.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; You don&#039;t need to specify to not preload game box images (game_box.png, game_box75.png...) since they are not preloaded by default.&lt;br /&gt;
&lt;br /&gt;
== Other useful stuff ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;dojo.hitch&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
With dojo.hitch, you can create a callback function that will run with your game object context whatever happen.&lt;br /&gt;
&lt;br /&gt;
Typical example: display a BGA confirmation dialog with a callback function created with dojo.hitch:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        this.confirmationDialog( _(&#039;Are you sure you want to make this?&#039;), dojo.hitch( this, function() {&lt;br /&gt;
            this.ajaxcall( &#039;/mygame/mygame/makeThis.html&#039;, { lock:true }, this, function( result ) {} );&lt;br /&gt;
        } ) );   &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the example above, using dojo.hitch, we are sure that the &amp;quot;this&amp;quot; object will be set when the callback is called.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; updateCounters(counters)&lt;br /&gt;
: Useful for updating game counters in the player panel (such as resources). &lt;br /&gt;
: &#039;counters&#039; arg is an associative array [counter_name_value =&amp;gt; [ &#039;counter_name&#039; =&amp;gt; counter_name_value, &#039;counter_value&#039; =&amp;gt; counter_value_value], ... ]&lt;br /&gt;
: All counters must be referenced in this.gamedatas.counters and will be updated.&lt;br /&gt;
: DOM objects referenced by &#039;counter_name&#039; will have their innerHTML updated with &#039;counter_value&#039;.&lt;br /&gt;
&lt;br /&gt;
== BGA GUI components ==&lt;br /&gt;
&lt;br /&gt;
BGA framework provides some useful ready-to-use components for the game interface:&lt;br /&gt;
&lt;br /&gt;
[[Studio#BGA_Studio_game_components_reference]]&lt;br /&gt;
&lt;br /&gt;
Note that each time you are using an additional component, you must declare it at the top of your Javascript file in the list of modules used.&lt;br /&gt;
&lt;br /&gt;
Example if you are using &amp;quot;ebg.stock&amp;quot;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define([&lt;br /&gt;
    &amp;quot;dojo&amp;quot;,&amp;quot;dojo/_base/declare&amp;quot;,&lt;br /&gt;
    &amp;quot;ebg/core/gamegui&amp;quot;,&lt;br /&gt;
    &amp;quot;ebg/counter&amp;quot;,&lt;br /&gt;
    &amp;quot;ebg/stock&amp;quot;  /// &amp;lt;=== we are using ebg.stock module&lt;br /&gt;
],&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Quinarbre</name></author>
	</entry>
</feed>