public void DrawnPieceCardCreatesCardDisplayObject()
        {
            CardPiece newCardPiece = CardUnitUTests.CreateTestCardUnit();

            player.DrawCard(newCardPiece);
            Assert.AreEqual(1, player.handTransform.childCount);
        }
        public void DrawnPieceCardGoesToHand()
        {
            CardPiece newCardPiece = CardUnitUTests.CreateTestCardUnit();

            player.DrawCard(newCardPiece);
            Assert.AreEqual(1, player.cardPieceDisplays.Count);
        }
    // Play piece at location
    public void PlayCardAtTile(CardPiece cardPiece, Vector3Int tileCoords)
    {
        GamePiece newPiece = GamePiece.CreatePiece <GamePiece>(cardPiece, player);

        gameMap.AddPiece(newPiece, tileCoords);
        CreateAndPositionPieceObject(newPiece);
    }
        public void ResourceCounterDoesNotUpdateOnPieceCardDraw()
        {
            CardPiece newCardPiece = CardUnitUTests.CreateTestCardUnit();

            player.DrawCard(newCardPiece);
            Assert.AreEqual(0, player.playerUI.GetResourceCount(ResourceType.Food));
        }
示例#5
0
        public void NonPlayableCardDoesNotHaveHighlight()
        {
            CardPiece cardPiece = cardUnitDisplay1.GetCardPiece();

            Assert.IsFalse(player.CardIsPlayable(cardPiece));
            Assert.AreEqual(unplayableBorder, cardUnitDisplay1.cardBorder.sprite);
        }
示例#6
0
        public void PlayableCardHasPlayableBorder()
        {
            player.SetResource(ResourceType.Food, 10);
            CardPiece cardPiece = cardUnitDisplay1.GetCardPiece();

            Assert.IsTrue(player.CardIsPlayable(cardPiece));
            Assert.AreEqual(playableBorder, cardUnitDisplay1.cardBorder.sprite);
        }
    // Create piece, decrease resources, and show hand playable cards
    public static T CreatePiece <T>(CardPiece cardPiece, Player player) where T : GamePiece
    {
        T newPiece = Instantiate(GetPiecePrefab <T>());

        newPiece.SetCard(cardPiece);
        newPiece.player = player;
        return(newPiece);
    }
示例#8
0
    // Decrements played card resources
    public void DecrementPlayedCardResources(CardPiece playedCard)
    {
        Dictionary <ResourceType, int> resourceCosts = playedCard.GetResourceCosts();

        foreach (KeyValuePair <ResourceType, int> pair in resourceCosts)
        {
            IncrementResource(pair.Key, -pair.Value);
        }
    }
 // Set card
 public override void SetCard(CardPiece cardPiece)
 {
     if (cardPiece is CardBuilding)
     {
         CardBuilding cardBuilding = (CardBuilding)cardPiece;
         this.cardBuilding = cardBuilding;
         pieceType         = PieceType.Building;
         SetCardStats(cardBuilding);
     }
 }
示例#10
0
    public void ClickOnCard(CardPiece _card)
    {
        if (selectedCard != null)
        {
            selectedCard.ReturnInHand(0.1f);
        }

        selectedCard = _card;
        ClickDrag(_card.transform);
    }
示例#11
0
 // Set card
 public override void SetCard(CardPiece cardPiece)
 {
     if (cardPiece is CardUnit)
     {
         CardUnit cardUnit = (CardUnit)cardPiece;
         this.cardUnit = cardUnit;
         pieceType     = PieceType.Unit;
         SetCardStats();
     }
 }
示例#12
0
 // Show 2nd resource costs
 public void Set2ndResource(CardPiece cardPiece)
 {
     if (cardPiece.res2 != ResourceType.None)
     {
         res2.sprite   = Resources.Load <Sprite>("Art/UI/" + cardPiece.res2.ToString());
         res2Cost.text = cardPiece.res2Cost.ToString();
     }
     else
     {
         res2.gameObject.SetActive(false);
         res2Cost.gameObject.SetActive(false);
     }
 }
示例#13
0
    // Get whether card is playable
    public bool CardIsPlayable(CardPiece cardPiece)
    {
        Dictionary <ResourceType, int> resourceCosts = cardPiece.GetResourceCosts();

        foreach (KeyValuePair <ResourceType, int> pair in resourceCosts)
        {
            if (GetResourceCount(pair.Key) < pair.Value)
            {
                return(false);
            }
        }
        return(true);
    }
示例#14
0
    private void UsedCard()
    {
        gameplayManager.ModifyMana(-selectedCard.Card.Cost);

        currentCards.Remove(selectedCard);
        trash.Add(selectedCard.Card.Index);
        Destroy(selectedCard.gameObject);
        selectedCard = null;

        CardsPosition();
        Unselection();

        gameplayManager.ChangeStep(e_step.Card);
    }
    // Set selected card
    public void SetSelectedCard(CardPieceDisplay newSelectedCard)
    {
        selectedCardDisplay = newSelectedCard;

        // Get card piece
        if (newSelectedCard != null)
        {
            CardPiece cardPiece = newSelectedCard.GetCardPiece();
            player.SetSelectedCard(newSelectedCard);
        }
        else
        {
            player.SetSelectedCard(null);
        }
        actionMapObject.PaintActionMap();
    }
    // Set shared attributes
    public void SetCardStats(CardPiece cardPiece)
    {
        // Set stats
        pieceName     = cardPiece.cardName;
        health        = cardPiece.health;
        currentHealth = health;
        might         = cardPiece.might;
        range         = cardPiece.range;
        sightRange    = cardPiece.sightRange;

        // Set artwork
        art.sprite            = cardPiece.artwork;
        lifebarOverlay.sprite = cardPiece.lifebarOverlay;
        SetCardLifebarOverlay(lifebarOverlay.sprite);

        ResetPiece();
    }
    // Play selected card at location
    public void PlaySelectedCardAtTile(Vector3Int tileCoords)
    {
        CardPiece selectedCard = player.selectedCard.GetCardPiece();
        GamePiece newPiece     = GamePiece.CreatePiece <GamePiece>(selectedCard, player);

        gameMap.AddPiece(newPiece, tileCoords);
        CreateAndPositionPieceObject(newPiece);
        Destroy(selectedCardDisplay.gameObject);

        player.PlayPiece(newPiece);
        resourceCounter.UpdateAllResources(player.GetResources());

        // Update maps
        actionMapObject.ClearPaintedTiles();
        fogMapObject.PaintFogMap();

        // Update cards in hand
        handObject.ShowPlayableCards();
    }
示例#18
0
    public void DrawCard()
    {
        if (deck.Count <= 0)
        {
            return;
        }

        int       drawAt = Random.Range(0, deck.Count);
        Card      drawn  = gameplayManager.Data.Cards[deck[drawAt]];
        CardPiece card   = Instantiate(cardPrefab, cardParent).GetComponent <CardPiece>();

        card.transform.localPosition = new Vector3(750, -350);

        card.Setup(drawn);
        currentCards.Add(card);

        CardsPosition();

        deck.RemoveAt(drawAt);
    }
 // Initialize from a card piece
 public static GamePieceObject InitializeFromCardPiece(CardPiece cardPiece, Transform parentTransform, Player player)
 {
     if (cardPiece.cardType == CardType.Unit)
     {
         GamePieceObject newUnitObject = Instantiate(GetUnitPrefab(), parentTransform);
         Unit            newUnit       = GamePiece.CreatePiece <Unit>(cardPiece, player);
         newUnitObject.SetPiece(newUnit);
         return(newUnitObject);
     }
     else if (cardPiece.cardType == CardType.Building)
     {
         GamePieceObject newBuildingObject = Instantiate(GetUnitPrefab(), parentTransform);
         Building        newBuilding       = GamePiece.CreatePiece <Building>(cardPiece, player);
         newBuildingObject.SetPiece(newBuilding);
         return(newBuildingObject);
     }
     else
     {
         return(null);
     }
 }
示例#20
0
    public void Unselection()
    {
        if (selectedCard != null)
        {
            selectedCard.ReturnInHand(0.1f);
            selectedCard = null;
        }

        inRange.Clear();
        toDrag = null;

        if (zone != null)
        {
            zone.ShowZone(false);
        }

        foreach (Square s in utility.Board)
        {
            s.UnHighLight();
        }
    }
    // Initialize from a game piece
    public static GamePieceObject InitializeFromGamePiece(GamePiece piece, Transform parentTransform, int playerId)
    {
        CardPiece cardPiece = piece.GetCard();

        if (cardPiece.cardType == CardType.Unit)
        {
            GamePieceObject newUnitObject = Instantiate(GetUnitPrefab(), parentTransform);
            newUnitObject.SetPiece(piece);
            //piece.gamePieceObject = newUnitObject;
            return(newUnitObject);
        }
        else if (cardPiece.cardType == CardType.Building)
        {
            GamePieceObject newBuildingObject = Instantiate(GetUnitPrefab(), parentTransform);
            newBuildingObject.SetPiece(piece);
            //piece.gamePieceObject = newBuildingObject;
            return(newBuildingObject);
        }
        else
        {
            return(null);
        }
    }
    protected override void Down()
    {
        GameObject ui  = DetectUI(Input.mousePosition);
        GameObject col = DetectCollider(Input.mousePosition);

        //UIs
        CardPiece    _card   = null;
        ActiveButton _active = null;

        if (ui != null)
        {
            _card   = ui.GetComponent <CardPiece>();
            _active = ui.GetComponent <ActiveButton>();

            ui.GetComponent <Clickable>()?.Onclick();
        }

        //Colliders
        HeroPiece _piece  = null;
        Square    _square = null;

        if (col != null)
        {
            _piece  = col.GetComponent <HeroPiece>();
            _square = col.GetComponent <Square>();

            col.GetComponent <Clickable>()?.Onclick();
        }

        //Steps
        if (step == e_step.Placement)
        {
            if (_piece != null)
            {
                boardManager.ClickOnHero(_piece);
            }
            else if (_square != null)
            {
                boardManager.ClickOnBoard(_square);
            }
        }

        else if (step == e_step.Card)
        {
            if (_card != null)
            {
                deckManager.ClickOnCard(_card);
            }
            else
            {
                UnselectAll();
            }
        }

        else if (step == e_step.UseCard)
        {
            if (_piece != null)
            {
                deckManager.TargetHero(_piece);
            }
            else if (_square != null)
            {
                deckManager.TargetBoard(_square);
            }
        }

        else if (step == e_step.Board)
        {
            if (_active != null && _active.Piece.Team == team && _active.CheckMana() && _active.Piece.CanActive > 0)
            {
                boardManager.ClickOnActive(_active);
            }
            else if (_piece != null)
            {
                boardManager.ClickOnHero(_piece);
            }
            else if (_square != null)
            {
                boardManager.ClickOnBoard(_square);
            }
            else
            {
                UnselectAll();
            }
        }

        else if (step == e_step.Ennemy)
        {
            if (_piece != null)
            {
                //Afficher les stats quand ce sera fait
            }
            else if (_card != null)
            {
                //Afficher les stats quand ce sera fait
            }
        }
    }
 public abstract void SetCard(CardPiece cardPiece);
    // Create piece
    public GamePieceObject CreatePiece(CardPiece cardPiece)
    {
        GamePieceObject newPieceObject = GamePieceObject.InitializeFromCardPiece(cardPiece, gameMapObject.tilemap.transform, player);

        return(newPieceObject);
    }