本文整理汇总了C#中Info.ResetBoardColor方法的典型用法代码示例。如果您正苦于以下问题:C# Info.ResetBoardColor方法的具体用法?C# Info.ResetBoardColor怎么用?C# Info.ResetBoardColor使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Info
的用法示例。
在下文中一共展示了Info.ResetBoardColor方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: UseTeleport
/// <summary>
/// Uses the Teleport ability to instantly move a piece a few spaces away.
/// </summary>
public void UseTeleport( Piece p, Tile t, Info info )
{
//Change the tile references
p.currentTile.currentPiece = null;
p.currentTile = t;
t.currentPiece = p;
//Clear board
info.ResetBoardColor ( );
//Mark that it is no longer the beginning of a turn
info.beginningOfTurn = false;
info.DisableAbilityButtons ( );
//Animate teleport
Sequence s = DOTween.Sequence ( )
.Append ( p.sprite.DOFade ( 0, ANIMATE_TIME ) )
.AppendCallback ( () =>
{
//Move piece
p.Move ( t.transform.position );
} )
.Append ( p.sprite.DOFade ( 1, ANIMATE_TIME ) )
.OnComplete ( () =>
{
//End turn
info.EndTurn ( );
} );
}
示例2: UseNonagressionPact
/// <summary>
/// Uses the Nonagression Pact by marking two pieces that cannot interact with one another.
/// </summary>
public void UseNonagressionPact( Tile t1, Tile t2, Info info )
{
//Add each piece as each other's nonagression partner
t1.currentPiece.nonagressionPartners.Add ( t2.currentPiece.color );
t2.currentPiece.nonagressionPartners.Add ( t1.currentPiece.color );
//Animate nonaggression pact
Sequence s = DOTween.Sequence ( )
.Append ( t1.currentPiece.sprite.DOColor ( new Color32 ( 150, 50, 255, 255 ), ANIMATE_TIME ).SetLoops ( 2, LoopType.Yoyo ) )
.Insert ( 0, t2.currentPiece.sprite.DOColor ( new Color32 ( 150, 50, 255, 255 ), ANIMATE_TIME ).SetLoops ( 2, LoopType.Yoyo ) )
.OnComplete ( () =>
{
//Deactivate ability
info.abilityInUse.IsActive = false;
info.DisableAbility ( info.abilityInUse.ID, info.currentPlayer );
//Enable abilities use buttons
info.EnableAbilityButtons ( );
//Reset ability selection list
info.abilityTileSelection.Clear ( );
//Reset board
info.ResetBoardColor ( );
//Highlight pieces
info.HighlightCurrentPlayerPieces ( );
} );
}
示例3: UseMadHatter
/// <summary>
/// Uses the Mad Hatter ability by swapping two pieces.
/// </summary>
public void UseMadHatter( Tile t1, Tile t2, Info info )
{
//Store temporary value
Piece temp = t1.currentPiece;
//Swap pieces
t1.currentPiece.currentTile = t2;
t2.currentPiece.currentTile = t1;
t1.currentPiece = t2.currentPiece;
t2.currentPiece = temp;
//Bring pieces to front
t1.currentPiece.sprite.sortingOrder = 2;
t2.currentPiece.sprite.sortingOrder = 2;
//Animate mad hatter
Sequence s = DOTween.Sequence ( )
.Append ( t1.currentPiece.transform.DOMove ( t1.transform.position, ANIMATE_TIME ) )
.Insert ( 0, t2.currentPiece.transform.DOMove ( t2.transform.position, ANIMATE_TIME ) )
.OnComplete ( () =>
{
//Deactivate ability
info.abilityInUse.IsActive = false;
info.DisableAbility ( info.abilityInUse.ID, info.currentPlayer );
//Enable abilities use buttons
info.EnableAbilityButtons ( );
//Reset ability selection list
info.abilityTileSelection.Clear ( );
//Reset board
info.ResetBoardColor ( );
//Highlight pieces
info.HighlightCurrentPlayerPieces ( );
} );
}
示例4: UseGrimReaper
/// <summary>
/// Uses the Grim Reaper ability by moving the player's Grim Reaper piece to its new tile.
/// </summary>
public void UseGrimReaper( Piece p, Tile t, Info info )
{
//Store piece color
Color c = p.sprite.color;
//Animate grim reaper
Sequence s = DOTween.Sequence ( )
.Append ( p.currentTile.sprite.DOColor ( Color.black, ANIMATE_TIME ).SetLoops ( 2, LoopType.Yoyo ) )
.Insert ( 0, p.sprite.DOColor ( Color.black, ANIMATE_TIME ) )
.Insert ( ANIMATE_TIME, p.sprite.DOFade ( 0, 0 ) )
.AppendCallback ( () =>
{
//Move the player's Grim Reaper piece
p.currentTile.currentPiece = null;
p.currentTile = t;
t.currentPiece = p;
p.Move ( t.transform.position );
} )
.Append ( t.sprite.DOColor ( Color.black, ANIMATE_TIME ).SetLoops ( 2, LoopType.Yoyo ) )
.Insert ( ANIMATE_TIME * 3, p.sprite.DOFade ( 1, 0 ) )
.Insert ( ANIMATE_TIME * 3, p.sprite.DOColor ( c, ANIMATE_TIME ) )
.OnComplete ( () =>
{
//Reset grim reaper tile
info.grimReaperTile = null;
//Hide prompt
info.currentPlayer.prompt.gameObject.SetActive ( false );
//Store temporary save data
info.TempSave ( );
//Reset board
info.ResetBoardColor ( );
//Highlight pieces
info.HighlightCurrentPlayerPieces ( );
} );
}
示例5: UseCatapult
/// <summary>
/// Uses the Catapult ability.
/// </summary>
public void UseCatapult( Piece p, Tile t, Info info )
{
//Store the two tiles being jumped
Tile mid1 = null;
Tile mid2 = null;
for ( int i = 0; i < t.neighbors.Length; i++ )
{
//Find middle tiles
if ( p.currentTile.neighbors [ i ] != null && p.currentTile.neighbors [ i ].neighbors [ i ] != null && p.currentTile.neighbors [ i ].neighbors [ i ].neighbors [ i ] != null && p.currentTile.neighbors [ i ].neighbors [ i ].neighbors [ i ] == t )
{
mid1 = p.currentTile.neighbors [ i ];
mid2 = p.currentTile.neighbors [ i ].neighbors [ i ];
break;
}
}
//Mark that it is no longer the beginning of a turn
info.beginningOfTurn = false;
info.DisableAbilityButtons ( );
//Check if piece is friendly on the first tile
if ( mid1.state == TileState.PotentialCapture )
mid1.CapturePiece ( mid1 );
//Check if piece is friendly on the second tile
if ( mid2.state == TileState.PotentialCapture )
mid2.CapturePiece ( mid2 );
//Clear board
info.ResetBoardColor ( );
info.BringPieceToFront ( p );
//Animate catapult
Sequence s = DOTween.Sequence ( )
.Append ( p.transform.DOMove ( t.transform.position, ANIMATE_TIME * 2 ) )
.Insert ( 0, p.transform.DOScale ( 4, ANIMATE_TIME ).SetLoops ( 2, LoopType.Yoyo ) )
.OnComplete ( () =>
{
//Update tile references
p.currentTile.currentPiece = null;
p.currentTile = t;
t.currentPiece = p;
//End turn
info.EndTurn ( );
} );
}
示例6: UseTorus
/// <summary>
/// Uses the Torus ability to allow the piece's movement to wrap around the board.
/// </summary>
public void UseTorus( Piece p, Tile t, Info info )
{
//Set previous tile
p.prevTile = p.currentTile;
//Movement information
float xMove;
float yMove;
float reentry = 1.5f;
float delay = 0.1f;
bool isTorusJump = t.isTorusJump;
Sequence s = DOTween.Sequence ( );
//Mark that it is no longer the beginning of a turn
info.beginningOfTurn = false;
info.DisableAbilityButtons ( );
//Clear board
info.ResetBoardColor ( );
info.BringPieceToFront ( p );
//Check tile position
if ( p.currentTile.transform.position.x != t.transform.position.x )
{
//Mark that the movement is forward
xMove = 1.3f;
yMove = 0.75f;
}
else
{
//Mark that the movement is strictly side to side
xMove = 0;
yMove = 1.5f;
}
//Check if the move is a jump
if ( isTorusJump )
{
//Find middle tile
Tile mid = null;
bool isTorusFirst = false;
for ( int i = 0; i < t.neighbors.Length; i++ )
{
//Check for selected tile
if ( p.currentTile.neighbors [ i ] != null && p.currentTile.neighbors [ i ].torusNeighbors [ i ] != null && p.currentTile.neighbors [ i ].torusNeighbors [ i ] == t )
{
//Store middle tile
mid = p.currentTile.neighbors [ i ];
isTorusFirst = false;
break;
}
else if ( p.currentTile.torusNeighbors [ i ] != null && p.currentTile.torusNeighbors [ i ].neighbors [ i ] != null && p.currentTile.torusNeighbors [ i ].neighbors [ i ] == t )
{
//Store middle tile
mid = p.currentTile.torusNeighbors [ i ];
isTorusFirst = true;
break;
}
}
//Check if torus is first
if ( isTorusFirst )
{
//Determine starting tile position
if ( p.currentTile.transform.position.y < 0 )
yMove *= -1;
else
reentry *= -1;
if ( p.currentTile.transform.position.x > t.transform.position.x )
xMove *= -1;
//Animate torus
s.Append ( p.transform.DOMove ( new Vector3 ( p.transform.position.x + xMove, p.transform.position.y + yMove, p.transform.position.y ), ANIMATE_TIME ) )
.Insert ( 0, p.sprite.DOFade ( 0, ANIMATE_TIME ) )
.Append ( p.transform.DOMove ( new Vector3 ( mid.transform.position.x, mid.transform.position.y + reentry, mid.transform.position.z ), 0 ) )
.AppendCallback ( () =>
{
//Check for capture
if ( mid.currentPiece.owner == info.opponent )
mid.CapturePiece ( mid );
} )
.AppendInterval ( delay );
//Check middle tile position
if ( mid.transform.position.x != t.transform.position.x )
s.Append ( p.transform.DOMove ( mid.transform.position, ANIMATE_TIME ) );
else
s.Append ( p.transform.DOMove ( t.transform.position, ANIMATE_TIME * 2 ) );
//Finish torus animation
s.Insert ( ANIMATE_TIME + delay, p.sprite.DOFade ( 1, ANIMATE_TIME ) )
.Append ( p.transform.DOMove ( t.transform.position, ANIMATE_TIME ) );
}
else
{
//Determine middle tile position
if ( mid.transform.position.y < 0 )
//.........这里部分代码省略.........