public bool IsAllowedSpace(IVector gridPosition, FieldCardOwnership playerIndex = FieldCardOwnership.Player1, bool movingDeckLeader = false) { if (p_ThisCardRenderer == null) { throw new Exception("Must have a card renderer component attached."); } IVector[] gridMovementOffsets = HasAdvantage() ? DORConstants.p_GridAdvantageMoveOffsets : DORConstants.p_GridMoveOffsets; // Check Advantage foreach (IVector allowedMove in gridMovementOffsets) { // Movement is valid if (allowedMove == gridPosition.Offset(allowedMove)) { IDORGridSpot leaderCheckGridSpot = p_ThisGridSpot.p_Parent.GetGridSpot(gridPosition); if (leaderCheckGridSpot == null) { throw new NullReferenceException("Got a null grid spot back"); } IFieldDeckLeader deckLeaderComponent = leaderCheckGridSpot.p_ContainedCard.p_GameObject.GetComponent <IFieldDeckLeader>(); if (leaderCheckGridSpot.p_TerrainType == TerrainType.Labyrinth) { // Check if we're moving monster card if (p_ThisCardRenderer.p_CardToRender is DORMonsterCard) { return(((DORMonsterCard)p_ThisCardRenderer.p_CardToRender).p_AllowLabyrinthMovement); } return(false); } } } return(false); }
public void CardBeginNewTurn(FieldCardOwnership nextPlayerTurn) { p_MovedThisTurn = false; }