Class: D6<G>
Specialized piece for representing 6-sided dice
Example
import { D6 } from '@boardzilla/core/components';
...
game.create(D6, 'my-die');
Type parameters
Name | Type |
---|---|
G | extends Game = Game |
Hierarchy
-
Piece
<G
>↳
D6
Adjacency
isAdjacentTo
▸ isAdjacentTo(element
): boolean
If this element is adjacent to some other element, using the nearest containing space that has an adjacency map.
Parameters
Name | Type |
---|---|
element | GameElement <BaseGame , BasePlayer > |
Returns
boolean
Inherited from
Defined in
boardzilla-core/src/board/element.ts:514
distanceTo
▸ distanceTo(element
): number
Finds the shortest distance between two spaces
Parameters
Name | Type | Description |
---|---|---|
element | GameElement <BaseGame , BasePlayer > | element to measure distance to |
Returns
number
Inherited from
Defined in
boardzilla-core/src/board/element.ts:526
adjacencies
▸ adjacencies<F
>(className
, ...finders
): ElementCollection
<F
>
Find all elements adjacent based on row/column placement or based on this element having connections created by Space#connectTo. Uses the same parameters as GameElement#all
Type parameters
Name | Type |
---|---|
F | extends GameElement <BaseGame , BasePlayer > |
Parameters
Name | Type |
---|---|
className | ElementClass <F > |
...finders | ElementFinder <F >[] |
Returns
Inherited from
Defined in
boardzilla-core/src/board/element.ts:538
withinDistance
▸ withinDistance<F
>(distance
, className
, ...finders
): ElementCollection
<F
>
Finds all spaces connected to this space by a distance no more than
distance
Type parameters
Name | Type |
---|---|
F | extends GameElement <BaseGame , BasePlayer > |
Parameters
Name | Type |
---|---|
distance | number |
className | ElementClass <F > |
...finders | ElementFinder <F >[] |
Returns
Inherited from
Defined in
boardzilla-core/src/board/element.ts:552
setShape
▸ setShape(...shape
): void
Set an irregular shape for this element. This is only meaningful for the purposes of finding specifically adjacent cells when placed into a PieceGrid. See PieceGrid#adjacenciesByCell. When rendered in a PieceGrid, the element will have a size large enough to fill the appropriate number of spaces in the grid, but it's appearance is otherwise unaffected and will be based on appearance. When not rendered in a PieceGrid, the element will take up a single cell but will be scaled relatively to other elements with a shape in the same layout.
Parameters
Name | Type | Description |
---|---|---|
...shape | string [] | A set of single characters used as labels for each cell. The cell label characters are provided as an array of strings, with each string being one row of cell labels, with spaces used to indicate empty "holes" in the shape. Each row must be the same length. The specific non-space characters used are used for labelling the adjacencies in PieceGrid#adjacenciesByCell but are otherwise unimportant. |
Returns
void
Example
domino12.setShape(
'12'
);
tetrisPiece.setShape(
'XX ',
' XX'
);
Inherited from
Defined in
boardzilla-core/src/board/element.ts:876
setEdges
▸ setEdges(edges
): void
Set the edge labels for this element. These are only meaningful for the purposes of finding specifically adjacent edges when placed into a PieceGrid. See PieceGrid#adjacenciesByEdge.
Parameters
Name | Type | Description |
---|---|---|
edges | Partial <Record <Direction , string >> | Record <string , Partial <Record <Direction , string >>> | A set of edge labels for each cell label provided by setShape. For simple 1-celled shapes, the edges can be provided without cell labels. |
Returns
void
Example
// a bridge tile with a road leading from left to right and a river leading
// from top to bottom.
simpleTile.setEdge(
up: 'river',
down: 'river',
left: 'road'
right: 'road'
});
// A tetris-shaped tile with sockets coming out either "end"
tetrisPiece.setShape(
'AX ',
' XB'
);
tetrisPiece.setEdge({
A: {
left: 'socket'
},
B: {
right: 'socket'
}
});
Inherited from
Defined in
boardzilla-core/src/board/element.ts:921
D6
current
• current: number
= 1
Currently shown face
Defined in
boardzilla-core/src/components/d6/d6.ts:21
roll
▸ roll(): void
Randomly choose a new face, causing the roll animation
Returns
void
Defined in
boardzilla-core/src/components/d6/d6.ts:28
Other
layoutAsDrawer
▸ layoutAsDrawer(applyTo
, attributes
): void
Creates a collapsible drawer layout for a Space within this Element. This is like GameElement#layout except for one specific Space, with additional parameters that set the behaviour/appearance of the drawer. A tab will be attached the drawer that will allow it be opened/closed.
Parameters
Name | Type | Description |
---|---|---|
applyTo | string | Space <G , NonNullable <G ["player" ]>> | The Space for the drawer. Either the Space itself or its name. |
attributes | Object | - |
attributes.area? | Box | - |
attributes.openDirection | "left" | "right" | "up" | "down" | - |
attributes.tab? | ReactNode | - |
attributes.closedTab? | ReactNode | - |
attributes.openIf? | (actions : { name : string ; args : Record <string , Argument > }[]) => boolean | - |
attributes.closeIf? | (actions : { name : string ; args : Record <string , Argument > }[]) => boolean | - |
Returns
void
Inherited from
Defined in
boardzilla-core/src/board/element.ts:1131
layoutAsTabs
▸ layoutAsTabs(tabs
, attributes
): void
Creates a tabbed layout for a set of Space's within this Element. This is like GameElement#layout except for a set of Spaces, with additional parameters that set the behaviour/appearance of the tabs. Each Space will be laid out into the same area, with a set of tabs attached to allow the Player or the game rules to select which tab is shown.
Parameters
Name | Type | Description |
---|---|---|
tabs | Record <string , string | Space <G , NonNullable <G ["player" ]>>> | JSX for the appearance of the tabs as a set of key-value pairs |
attributes | Object | - |
attributes.area? | Box | - |
attributes.tabDirection | "left" | "right" | "up" | "down" | - |
attributes.tabs? | Record <string , ReactNode > | - |
attributes.setTabTo? | (actions : { name : string ; args : Record <string , Argument > }[]) => string | - |
Returns
void
Inherited from
Defined in
boardzilla-core/src/board/element.ts:1159
layoutAsPopout
▸ layoutAsPopout(applyTo
, attributes
): void
Hides a Space within this element and replaces it with popout button. Clicking on the button opens this Space in a full-board modal. This is like GameElement#layout except for one Space, with additional parameters that set the behaviour/appearance of the popout modal.
Parameters
Name | Type | Description |
---|---|---|
applyTo | string | Space <G , NonNullable <G ["player" ]>> | The Space for the popout. Either a Space or the name of a Space. |
attributes | Object | - |
attributes.area? | Box | - |
attributes.button | ReactNode | - |
attributes.popoutMargin? | number | { top : number ; bottom : number ; left : number ; right : number } | - |
Returns
void
Inherited from
Defined in
boardzilla-core/src/board/element.ts:1187
Queries
name
• name: string
Element name, used to distinguish elements. Elements with the same name are generally considered indistibuishable. Names are also used for easy searching of elements.
Inherited from
Defined in
boardzilla-core/src/board/element.ts:241
player
• Optional
player: NonNullable
<G
["player"
]>
Player with which this element is identified. This does not affect
behaviour but will mark the element as mine
in queries in the context of
this player (during an action taken by a player or while the game is
viewed by a given player.).
Inherited from
Defined in
boardzilla-core/src/board/element.ts:250
all
▸ all<F
>(className
, ...finders
): ElementCollection
<F
>
Finds all elements within this element recursively that match the arguments provided.
Type parameters
Name | Type |
---|---|
F | extends GameElement <BaseGame , BasePlayer > |
Parameters
Name | Type | Description |
---|---|---|
className | ElementClass <F > | Optionally provide a class as the first argument as a class filter. This will only match elements which are instances of the provided class |
...finders | ElementFinder <F >[] | All other parameters are filters. See ElementFinder for more information. |
Returns
An ElementCollection of as many matching elements as can be
found. The collection is typed to ElementCollection<className>
if one was
provided.
Inherited from
Defined in
boardzilla-core/src/board/element.ts:379
first
▸ first<F
>(className
, ...finders
): undefined
| F
Finds the first element within this element recursively that matches the arguments provided. See all for parameter details.
Type parameters
Name | Type |
---|---|
F | extends GameElement <BaseGame , BasePlayer > |
Parameters
Name | Type |
---|---|
className | ElementClass <F > |
...finders | ElementFinder <F >[] |
Returns
undefined
| F
A matching element, if found
Inherited from
Defined in
boardzilla-core/src/board/element.ts:391
firstN
▸ firstN<F
>(n
, className
, ...finders
): ElementCollection
<F
>
Finds the first n
elements within this element recursively that match the arguments
provided. See all for parameter details.
Type parameters
Name | Type |
---|---|
F | extends GameElement <BaseGame , BasePlayer > |
Parameters
Name | Type | Description |
---|---|---|
n | number | number of matches |
className | ElementClass <F > | - |
...finders | ElementFinder <F >[] | - |
Returns
An ElementCollection of as many matching elements as can be
found, up to n
. The collection is typed to ElementCollection<className>
if one was provided.
Inherited from
Defined in
boardzilla-core/src/board/element.ts:407
last
▸ last<F
>(className
, ...finders
): undefined
| F
Finds the last element within this element recursively that matches the arguments provided. See all for parameter details.
Type parameters
Name | Type |
---|---|
F | extends GameElement <BaseGame , BasePlayer > |
Parameters
Name | Type |
---|---|
className | ElementClass <F > |
...finders | ElementFinder <F >[] |
Returns
undefined
| F
A matching element, if found
Inherited from
Defined in
boardzilla-core/src/board/element.ts:419
lastN
▸ lastN<F
>(n
, className
, ...finders
): ElementCollection
<F
>
Finds the last n
elements within this element recursively that match the arguments
provided. See all for parameter details.
Type parameters
Name | Type |
---|---|
F | extends GameElement <BaseGame , BasePlayer > |
Parameters
Name | Type | Description |
---|---|---|
n | number | number of matches |
className | ElementClass <F > | - |
...finders | ElementFinder <F >[] | - |
Returns
An ElementCollection of as many matching elements as can be
found, up to n
. The collection is typed to ElementCollection<className>
if one was provided.
Inherited from
Defined in
boardzilla-core/src/board/element.ts:435
top
▸ top<F
>(className
, ...finders
): undefined
| F
Alias for first
Type parameters
Name | Type |
---|---|
F | extends GameElement <BaseGame , BasePlayer > |
Parameters
Name | Type |
---|---|
className | ElementClass <F > |
...finders | ElementFinder <F >[] |
Returns
undefined
| F
Inherited from
Defined in
boardzilla-core/src/board/element.ts:446
topN
▸ topN<F
>(n
, className
, ...finders
): ElementCollection
<F
>
Alias for firstN
Type parameters
Name | Type |
---|---|
F | extends GameElement <BaseGame , BasePlayer > |
Parameters
Name | Type |
---|---|
n | number |
className | ElementClass <F > |
...finders | ElementFinder <F >[] |
Returns
Inherited from
Defined in
boardzilla-core/src/board/element.ts:456
bottom
▸ bottom<F
>(className
, ...finders
): undefined
| F
Alias for last
Type parameters
Name | Type |
---|---|
F | extends GameElement <BaseGame , BasePlayer > |
Parameters
Name | Type |
---|---|
className | ElementClass <F > |
...finders | ElementFinder <F >[] |
Returns
undefined
| F
Inherited from
Defined in
boardzilla-core/src/board/element.ts:466
bottomN
▸ bottomN<F
>(n
, className
, ...finders
): ElementCollection
<F
>
Alias for lastN
Type parameters
Name | Type |
---|---|
F | extends GameElement <BaseGame , BasePlayer > |
Parameters
Name | Type |
---|---|
n | number |
className | ElementClass <F > |
...finders | ElementFinder <F >[] |
Returns
Inherited from
Defined in
boardzilla-core/src/board/element.ts:476
others
▸ others<F
>(className
, ...finders
): ElementCollection
<F
>
Finds "sibling" elements (elements that are directly inside the parent of this element) that match the arguments provided. See all for parameter details.
Type parameters
Name | Type |
---|---|
F | extends GameElement <BaseGame , BasePlayer > |
Parameters
Name | Type |
---|---|
className | ElementClass <F > |
...finders | ElementFinder <F >[] |
Returns
Inherited from
Defined in
boardzilla-core/src/board/element.ts:487
has
▸ has<F
>(className
, ...finders
): boolean
Return whether any element within this element recursively matches the arguments provided. See all for parameter details.
Type parameters
Name | Type |
---|---|
F | extends GameElement <BaseGame , BasePlayer > |
Parameters
Name | Type |
---|---|
className | ElementClass <F > |
...finders | ElementFinder <F >[] |
Returns
boolean
Inherited from
Defined in
boardzilla-core/src/board/element.ts:499
container
▸ container<T
>(className?
): undefined
| T
Returns this elements parent.
Type parameters
Name | Type |
---|---|
T | extends GameElement <BaseGame , BasePlayer > |
Parameters
Name | Type | Description |
---|---|---|
className? | ElementClass <T > | If provided, searches up the parent tree to find the first matching element. E.g. if a Token is placed on a Card in a players Tableau. calling token.container(Tableau) can be used to find the grandparent. |
Returns
undefined
| T
Inherited from
Defined in
boardzilla-core/src/board/element.ts:585
containerWithProperty
▸ containerWithProperty(property
, value?
): undefined
| GameElement
<BaseGame
, BasePlayer
>
Returns this elements containing element that also has a given property.
Parameters
Name | Type |
---|---|
property | string |
value? | any |
Returns
undefined
| GameElement
<BaseGame
, BasePlayer
>
Inherited from
Defined in
boardzilla-core/src/board/element.ts:596
mine
• get
mine(): boolean
Whether this element belongs to the player viewing the game. A player is considered to be currently viewing the game if this is called in the context of an action taken by a given player (during an action taken by a player or while the game is viewed by a given player.) It is an error to call this method when not in the context of a player action. When querying for elements using ElementFinder such as all and first, mine is available as a search key that accepts a value of true/false
Returns
boolean
Inherited from
Piece.mine
Defined in
boardzilla-core/src/board/element.ts:653
Structure
row
• Optional
row: number
Row of element within its layout grid if specified directly or by a "sticky" layout.
Inherited from
Defined in
boardzilla-core/src/board/element.ts:257
column
• Optional
column: number
Column of element within its layout grid if specified directly or by a "sticky" layout.
Inherited from
Defined in
boardzilla-core/src/board/element.ts:264
game
• game: G
The Game to which this element belongs
Inherited from
Defined in
boardzilla-core/src/board/element.ts:272
constructor
• new D6<G
>(ctx
): D6
<G
>
Do not use the constructor directly. Instead Call GameElement#create or GameElement#createMany on the element in which you want to create a new element.
Type parameters
Name | Type |
---|---|
G | extends Game <BaseGame , BasePlayer > = Game <BaseGame , BasePlayer > |
Parameters
Name | Type |
---|---|
ctx | Partial <ElementContext > |
Returns
D6
<G
>
Inherited from
Defined in
boardzilla-core/src/board/element.ts:319
toString
▸ toString(): string
String used for representng this element in game messages when the object is passed directly, e.g. when taking the choice directly from a chooseOnBoard choice.
Returns
string
Inherited from
Defined in
boardzilla-core/src/board/element.ts:351
setOrder
▸ setOrder(order
): void
Set this class to use a different ordering style.
Parameters
Name | Type | Description |
---|---|---|
order | undefined | "normal" | "stacking" | ordering style - "normal": Elements placed into this element are put at the end of the list (default) - "stacking": Used primarily for stacks of cards. Elements placed into this element are put at the beginning of the list. E.g. if a stack of cards has order set to stacking the first method will return the last card placed in the stack, rather than the first one placed in the stack. Hidden items in the stack are not tracked or animated while reordered to prevent their identity from being exposed as they move |
Returns
void
Inherited from
Defined in
boardzilla-core/src/board/element.ts:573
isEmpty
▸ isEmpty(): boolean
Returns whether this element has no elements placed within it.
Returns
boolean
Inherited from
Defined in
boardzilla-core/src/board/element.ts:607
sortBy
▸ sortBy(key
, direction?
): ElementCollection
<GameElement
<G
, NonNullable
<G
["player"
]>>>
Sorts the elements directly contained within this element by some Sorter.
Parameters
Name | Type |
---|---|
key | GenericSorter | GenericSorter [] |
direction? | "desc" | "asc" |
Returns
ElementCollection
<GameElement
<G
, NonNullable
<G
["player"
]>>>
Inherited from
Defined in
boardzilla-core/src/board/element.ts:615
shuffle
▸ shuffle(): void
re-orders the elements directly contained within this element randomly.
Returns
void
Inherited from
Defined in
boardzilla-core/src/board/element.ts:623
owner
• get
owner(): undefined
| P
The player that owns this element, or the first element that contains this
element searching up through the parent hierarchy. This is related to, but
different than player. E.g. if a standard playing card is in a
player's hand, typically the hand.player
will be assigned to that player
but the card itself would not have a player
. In this case the
card.owner() will equal the player in whose hand the card is placed.
Returns
undefined
| P
Inherited from
Piece.owner
Defined in
boardzilla-core/src/board/element.ts:638