public OnBoardDragon(Vector2Int targetPosition, Board board, CardDragon cardDragon)
    {
        DragonGenerator = GameObject.Find("DragonGenerator").GetComponent <DragonGenerator>();

        Board            = board;
        DestructibleType = DRAGON;

        BoardY   = targetPosition.y;
        BoardX   = targetPosition.x;
        ProjectY = BoardY;
        ProjectX = BoardX;


        Health    = cardDragon.MaxHealth;
        MaxHealth = cardDragon.MaxHealth;
        Speed     = cardDragon.Speed;
        Attack    = cardDragon.Attack;
        Range     = cardDragon.Range;
        Name      = cardDragon.Name;
        Type      = cardDragon.Type;
        Race      = cardDragon.Race;
        Owner     = cardDragon.Owner;

        SpeedRemained = 0;
        CanAttack     = false;
        CanRetaliate  = true;
        Alive         = true;

        Board.Destructables[BoardY, BoardX] = this;
    }
Example #2
0
    public void CreateOnBoardDragon(int[] targetPosition, int type, int race, int owner)
    {
        CardDragon    card          = new CardDragon(type, race, owner);
        OnBoardDragon onBoardDragon = new OnBoardDragon(new Vector2Int(targetPosition[1], targetPosition[0]), Board, card);

        onBoardDragon.UpdateOnBoard();
        if (!IsMe(owner))
        {
            physicalCardGenerator.UpdateLastCard(race, type);
            LastPlayedCardExists = true;
        }
    }
 public void UpdateLastCard(int element, int type)
 {
     if (LastPlayedCard == null)
     {
         LastPlayedCard = GameObject.Find("LastPlayedCard");
         LastPlayedCard.transform.GetChild(0).gameObject.SetActive(true);
     }
     if (LastPlayedCard != null)
     {
         LastPlayedCard.transform.GetChild(0).Find("Front").gameObject.GetComponent <MeshRenderer>().material = card_materials[element, type];
         if (type < 4) // it's a dragon card
         {
             CardDragon card   = new CardDragon(type, element, 1);
             Transform  canvas = LastPlayedCard.transform.GetChild(0).Find("Canvas");
             canvas.Find("HealthText").gameObject.GetComponent <Text>().text = card.MaxHealth.ToString();
             canvas.Find("HealthText").gameObject.SetActive(true);
             canvas.Find("AttackText").gameObject.GetComponent <Text>().text = card.Attack.ToString();
             canvas.Find("AttackText").gameObject.SetActive(true);
             canvas.Find("RangeText").gameObject.GetComponent <Text>().text = card.Range.ToString();
             canvas.Find("RangeText").gameObject.SetActive(true);
             canvas.Find("SpeedText").gameObject.GetComponent <Text>().text = card.Speed.ToString();
             canvas.Find("SpeedText").gameObject.SetActive(true);
             canvas.Find("CostText").gameObject.GetComponent <Text>().text = card.GoldCost.ToString();
             canvas.Find("Description").gameObject.SetActive(false);
         }
         else // it's a spell
         {
             CardSpell card   = CardSpellCreator.GenerateCardSpell(type - 4, 1, element);
             Transform canvas = LastPlayedCard.transform.GetChild(0).Find("Canvas");
             canvas.Find("HealthText").gameObject.SetActive(false);
             canvas.Find("AttackText").gameObject.SetActive(false);
             canvas.Find("RangeText").gameObject.SetActive(false);
             canvas.Find("SpeedText").gameObject.SetActive(false);
             canvas.Find("Description").gameObject.SetActive(true);
             canvas.Find("CostText").gameObject.GetComponent <Text>().text    = card.ManaCost.ToString();
             canvas.Find("Description").gameObject.GetComponent <Text>().text = card.Description;
         }
     }
 }
    public GameObject CreateCard(int index, CardDragon card, bool flame = false, float scale = 0.1f, float angle = 270)
    {
        if (!done)
        {
            Debug.Log("Am apelat inainte de done");
            return(null);
        }
        var hh = 1;

        if (index >= 5)
        {
            index -= 5;
            hh     = -1;
        }
        var pos = new Vector3(0 + (index - 2) * width, hh * height, -0.1f);

        int element = card.Race;
        int type    = card.Type;

        GameObject virtual_card = GameObject.Instantiate(dragonCard) as GameObject;

        virtual_card.transform.parent        = cardHolder;
        virtual_card.transform.localPosition = pos;
        virtual_card.transform.localScale    = new Vector3(scale, scale, scale);
        virtual_card.transform.Rotate(Vector3.up, angle);

        virtual_card.transform.GetChild(0).Find("Front").gameObject.GetComponent <Renderer>().material = card_materials[element, type];

        Transform canvas = virtual_card.transform.GetChild(0).Find("Canvas");

        canvas.Find("HealthText").gameObject.GetComponent <Text>().text = card.MaxHealth.ToString();
        canvas.Find("AttackText").gameObject.GetComponent <Text>().text = card.Attack.ToString();
        canvas.Find("CostText").gameObject.GetComponent <Text>().text   = card.GoldCost.ToString();
        canvas.Find("RangeText").gameObject.GetComponent <Text>().text  = card.Range.ToString();
        canvas.Find("SpeedText").gameObject.GetComponent <Text>().text  = card.Speed.ToString();

        return(virtual_card);
    }