public virtual void OnNoMorePiecesMoving(NoMorePiecesMovingArgs e) { EventHandler <NoMorePiecesMovingArgs> handler = NoMorePiecesMoving; if (handler != null) { handler(this, e); } }
/*------------------------------------------------------------------------------------------------------------------*/ /********************************************************************************************************************/ /*************************************************** Behaviours *****************************************************/ /********************************************************************************************************************/ /*------------------------------------------------------------------------------------------------------------------*/ /// <summary> /// Called when all of the player's pieces are done moving during the movement phase. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected override void MovementPhase_NoMorePiecesMoving(object sender, NoMorePiecesMovingArgs e) { NoMorePiecesMoving -= MovementPhase_NoMorePiecesMoving; if (piecesInPool.Count == 0) { EndTurn(); return; } InitiateDeployment(); }
/// <summary> /// Removes GamePieces from the movingPieces collection. Raises an event when there are no moving pieces left. /// </summary> /// <param name="piece">GamePiece to be removed from the collection.</param> protected void RemoveMovingPiece(GamePiece piece) { if (nmpmArgs == null) { nmpmArgs = new NoMorePiecesMovingArgs(this); } movingPieces.Remove(piece); if (movingPieces.Count == 0) { OnNoMorePiecesMoving(nmpmArgs); } }
/// <summary> /// Used to determine when pieces in play have stopped moving. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected virtual void MovementPhase_NoMorePiecesMoving(object sender, NoMorePiecesMovingArgs e) { InitiateDeployment(); NoMorePiecesMoving -= MovementPhase_NoMorePiecesMoving; }
/// <summary> /// Signals the end of the players deployment. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected virtual void DeploymentPhase_DeploymentFinished(object sender, NoMorePiecesMovingArgs e) { NoMorePiecesMoving -= DeploymentPhase_DeploymentFinished; EndTurn(); }