Example #1
0
    void loadStats()
    {
        avrage_cost             = 0;
        avrage_spell_cost       = 0;
        number_of_creature_card = 0;
        number_of_spell_cards   = 0;

        for (int i = 0; selected_deck.deck.Length > i; i++)
        {
            ScriptableCard sc = col.id[selected_deck.deck[i]];
            if (sc.isSpell == true)
            {
                number_of_spell_cards++;
                avrage_spell_cost += sc.manaCost;
            }
            else
            {
                number_of_creature_card++;
                avrage_cost += sc.manaCost;
            }
        }
        if (number_of_creature_card != 0)
        {
            avrage_cost = avrage_cost / number_of_creature_card;
        }
        if (number_of_spell_cards != 0)
        {
            avrage_spell_cost = avrage_spell_cost / number_of_spell_cards;
        }
        deckStats.text = "number of units: " + number_of_creature_card + "\n" + "avrage unit cost: " + avrage_cost + "\n" + "number of spell cards: " + number_of_spell_cards + "\n" + "avrage spell cost: " + avrage_cost;
        deleteButton.SetActive(true);
    }
Example #2
0
        public override void Setup(ScriptableCard data, CardLine line, Mage owner)
        {
            base.Setup(data, line, owner);

            targets = new List <CardController>();

            foreach (var c in FindObjectsOfType <CardController>())
            {
                if (c.owner == this.owner)
                {
                    continue;
                }

                var mage = c.GetComponent <MageCardController>();
                if (mage != null)
                {
                    mage.owner.Silence(0.5f);
                }

                targets.Add(c);
            }


            Destroy(this.gameObject, data.lifeTime);
        }
Example #3
0
        public override void Setup(ScriptableCard data, CardLine line, Mage owner)
        {
            base.Setup(data, line, owner);
            this.damage = data.damage;

            StartCoroutine(DoDamage(this, data.lifeTime));
        }
Example #4
0
        public override void Setup(ScriptableCard data, CardLine line, Mage owner)
        {
            base.Setup(data, line, owner);


            Destroy(this.gameObject, data.lifeTime);
        }
Example #5
0
        public override void Setup(ScriptableCard data, CardLine line, Mage owner)
        {
            base.Setup(data, line, owner);

            var fissures = FindObjectsOfType <Fisure.FisureController>();

            foreach (var fiss in fissures)
            {
                switch (fiss.line)
                {
                case CardLine.LEFT:
                    Instantiate(fiss, fiss.owner.centerCastSpot, false);
                    Instantiate(fiss, fiss.owner.rightCastSpot, false);
                    break;

                case CardLine.CENTER:
                    Instantiate(fiss, fiss.owner.leftCastSpot, false);
                    Instantiate(fiss, fiss.owner.rightCastSpot, false);
                    break;

                case CardLine.RIGHT:
                    Instantiate(fiss, fiss.owner.leftCastSpot, false);
                    Instantiate(fiss, fiss.owner.centerCastSpot, false);
                    break;
                }
            }

            if (fissures != null && fissures.Length > 0)
            {
                this.damage += 10;
            }

            Destroy(this.gameObject, 1.0f);
        }
Example #6
0
    public GameObject create_card(string unit)
    {
        GameObject card = Instantiate(Unit_card_temp);

        for (int i = 0; id.Length > i; i++)
        {
            if (id[i].name == unit)
            {
                card.transform.localScale = new Vector3(1, 1, 1);

                ScriptableCard sc = new ScriptableCard
                {
                    artwork            = id[i].artwork,
                    name               = id[i].name,
                    health             = id[i].health,
                    attack             = id[i].attack,
                    manaCost           = id[i].manaCost,
                    description        = id[i].description,
                    monsterSickness    = true,
                    Tags               = id[i].Tags,
                    Robert_loop_effect = id[i]
                };
                card.GetComponent <CardDisplay>().card   = sc;
                card.GetComponent <CardDisplay>().active = true;
                card.transform.parent = cardfeild.transform;
                card.GetComponent <RectTransform>().localScale = new Vector2(0.6f, 0.6f);
                card.GetComponent <card_functions>().isInHand  = false;

                return(card);
            }
        }
        return(card);
    }
Example #7
0
    public void RemoteCardPlayed(string cardName, int sibIndex)
    {
        ScriptableCard card = Resources.Load <ScriptableCard>("CardScripts/" + cardName);

        Debug.Log("Enemy played " + cardName);
        GameHandler.Instance.EnemyCardPlayed(card, sibIndex);
    }
Example #8
0
    public ScriptableCard Draw()
    {
        ScriptableCard temp = instance[0];

        instance.RemoveAt(0);
        return(temp);
    }
 public void SetCardScript(ScriptableCard script)
 {
     if (script != null)
     {
         cardScript = script;
     }
     Awake();
 }
Example #10
0
    public OCard CreateCard(ScriptableCard nextCard, CardLine line, Mage owner)
    {
        OCard card = Instantiate(nextCard.logic).Setup(nextCard, line, owner);

        //engine.Execute(nextCard.logic.ToString(), card.script);

        return(card);
    }
Example #11
0
 public virtual OCard Setup(ScriptableCard staticData, CardLine line, Mage owner)
 {
     this.data        = staticData;
     IsCastCompleted  = false;
     this.ChoosedLine = line;
     this.Owner       = owner;
     this.Title       = staticData.title;
     return(this);
 }
Example #12
0
 public int GetIndex(ScriptableCard card)
 {
     for (int i = 0; i < cards.Length; i++)
     {
         if (cards[i] == card)
         {
             return(i);
         }
     }
     return(-1);
 }
Example #13
0
 public override void Setup(ScriptableCard data, CardLine line, Mage owner)
 {
     base.Setup(data, line, owner);
     this.speed = data.speed;
     if (line == CardLine.CENTER)
     {
         this.damage = data.damage;
     }
     else
     {
         this.damage = data.lateralDamage;
     }
 }
Example #14
0
 public override void Setup(ScriptableCard data, CardLine line, Mage owner)
 {
     base.Setup(data, line, owner);
     this.speed = data.speed;
     if (line == CardLine.CENTER)
     {
         this.damage = data.damage;
     }
     else
     {
         this.damage = data.lateralDamage;
     }
     StartCoroutine(DoDamage(this, data.lifeTime));
 }
Example #15
0
    public Card(ScriptableCard cardData)
    {
        CardData = cardData;
        if (cardData == null)
        {
            return;
        }

        effectDuration = cardData.effectDuration;
        EffectTag      = cardData.EffectTag;
        EffectName     = cardData.EffectName;
        modifier       = cardData.modifier;
        effectOnPlayer = cardData.effectOnPlayer;
    }
Example #16
0
    public void Cast(ScriptableCard nextCard, CardLine line, Mage owner, Action <OCard> OnCastEnd)
    {
        var card = CreateCard(nextCard, line, owner);

        //var card = new Card(nextCard,line);
        card.SetCastCallBack(OnCastEnd);
        inCast.Add(card);

        if (owner.tag.Equals("Player"))
        {
            Array.ForEach(castTimerGroup, (c) => c.blocksRaycasts = true);
            Array.ForEach(castTimerImage, (c) => c.fillAmount     = 1);
        }
    }
Example #17
0
    /**
     * Shuffles instance of this deck
     */
    public void Shuffle()
    {
        System.Random rand = new System.Random();
        int           n    = instance.Count;

        while (n > 1)
        {
            n--;
            int            k     = rand.Next(n + 1);
            ScriptableCard value = instance[k];
            instance[k] = instance[n];
            instance[n] = value;
        }
    }
Example #18
0
        public override void Setup(ScriptableCard data, CardLine line, Mage owner)
        {
            base.Setup(data, line, owner);
            var mages = FindObjectsOfType <Mage>();

            if (mages[0] == this.owner)
            {
                enemy = mages[1];
            }
            else
            {
                enemy = mages[0];
            }
            this.speed = data.speed;
        }
Example #19
0
    public void OnBookSelected()
    {
        if (dbHelper.Key <= 0)
        {
            key.text = noKeyText;
            return;
        }
        openMessage.SetActive(false);
        menu.SetActive(false);
        dbHelper.Key--;
        dbHelper.Chest--;
        lastCard = null;

        var list        = new List <ScriptableCard>(dbHelper.cardList.cards);
        var playerCards = dbHelper.GetPlayerCards();

        list.RemoveAll(c => playerCards.Contains(c));


        if (list.Count <= 0)
        {
            dbHelper.Gold += 300;
            currency?.FireEvent(null);
        }
        else
        {
            var rnd  = Random.Range(0, list.Count);
            var card = list[rnd];

            dbHelper.AddCard(card.UUID, card.title);

            cardImage.sprite = card.art;

            lastCard = card;
        }


        bookSlot.SetActive(false);
        animator.SetBool("closed", false);

        if (openBookAudio != null)
        {
            audioSource.PlayOneShot(openBookAudio);
        }


        Rearm();
    }
Example #20
0
    public virtual void Setup(ScriptableCard data, CardLine line, Mage owner)
    {
        this.data   = data;
        this.owner  = owner;
        this.line   = line;
        this.damage = data.damage;

        Transform lineTransform;

        switch (line)
        {
        case CardLine.LEFT:
            lineTransform = owner.leftCastSpot;
            break;

        case CardLine.CENTER:
            lineTransform = owner.centerCastSpot;
            break;

        case CardLine.RIGHT:
            lineTransform = owner.rightCastSpot;
            break;

        case CardLine.MAGE:
            lineTransform = owner.mage;
            break;

        case CardLine.ENEMY:
            lineTransform = owner.enemy;
            break;

        default:
            lineTransform = owner.centerCastSpot;
            break;
        }

        this.transform.position = lineTransform.position;
        this.transform.rotation = lineTransform.rotation;

        var rb = this.gameObject.AddComponent <Rigidbody>();

        rb.useGravity  = false;
        rb.isKinematic = false;

        var source = this.gameObject.AddComponent <AudioSource>();

        AudioManager.PlayFromSourceInLocation(data.castClip, source, transform);
    }
Example #21
0
    public void ShowFor(CardLine acceptableLines, ScriptableCard card)
    {
        this.acceptableLines = acceptableLines;
        this.gameObject.SetActive(true);
        animator.SetFloat("left", acceptableLines.HasFlag(CardLine.LEFT) ? 0 : 0);
        animator.SetFloat("center", acceptableLines.HasFlag(CardLine.CENTER) ? 0 : 0);
        animator.SetFloat("right", acceptableLines.HasFlag(CardLine.RIGHT) ? 0 : 0);
        animator.SetFloat("mage", acceptableLines.HasFlag(CardLine.MAGE) ? 0 : 0);
        animator.SetFloat("enemy", acceptableLines.HasFlag(CardLine.ENEMY) ? 0 : 0);
        line = 0;


        dragable.gameObject.SetActive(true);
        dragable.sprite = card.icon;
        cardMana        = card.mana;
    }
Example #22
0
    public void EnemyCardPlayed(ScriptableCard cardScript, int sibIndex)
    {
        //create the played card
        Card card = Instantiate(cardPrefab, new Vector2(0, 0), Quaternion.identity).GetComponent <Card>();

        card.SetCardScript(cardScript);
        card.isPlayed = true;
        card.transform.Find("Card Front/Cost Group").gameObject.SetActive(false);
        //remove a placeholder card from enemys hand
        Destroy(player2Hand.GetComponentInChildren <Card>().gameObject);
        //place the card on the enemys dropzone
        card.transform.SetParent(player2DropZone.transform, false);

        player2DropZone.GetComponent <DropZoneSpacing>().CheckSpacing();
        card.transform.SetSiblingIndex(sibIndex);
        card.GetComponent <DragBehaviour>().enabled = false;
    }
Example #23
0
        public override void Setup(ScriptableCard data, CardLine line, Mage owner)
        {
            base.Setup(data, line, owner);
            Destroy(this.gameObject, data.lifeTime);


            var cards = FindObjectsOfType <CardController>();

            foreach (var c in cards)
            {
                if (c.owner == this.owner)
                {
                    continue;
                }
                c.TakeDamage(data.damage, data.element, DamageType.Direct, this);
            }
        }
Example #24
0
    public void LoadCreatureCard(ScriptableCard cc)
    {
        if (cc == null)
        {
            return;
        }

        creatureCard = cc;

        cardID.text           = cc.ID.ToString();
        cardName.text         = cc.name;
        cardDescriptions.text = cc.description;
        cardArt.sprite        = cc.artwork;
        cost.text             = cc.manaCost.ToString();
        attack.text           = cc.attack.ToString();
        health.text           = cc.health.ToString();
    }
Example #25
0
        public override void Setup(ScriptableCard data, CardLine line, Mage owner)
        {
            base.Setup(data, line, owner);
            this.damage = data.damage;



            //Debug.LogWarning("FindObjectsOfType in setup is a bad idea!!!");
            var cards = FindObjectsOfType <CardController>();

            this.damage -= 5 * cards.Length - 1;

            foreach (var c in cards)
            {
                c.TakeDamage(damage, data.element, DamageType.Direct, this);
            }
        }
Example #26
0
        public void SetCard(ScriptableCard card)
        {
            var panel = Helper.FindComponentInChildrenWithName <Component>(this.gameObject, "*Card");
            var art   = Helper.FindComponentInChildrenWithName <Image>(panel.gameObject, "*Art");

            art.sprite = card.art;
            cardButton.onClick.RemoveAllListeners();
            cardButton.onClick.AddListener(delegate()
            {
                cardFullViewScript.SetCard(card);


                this.IsShowing = false;
            });
            this.IsShowing           = true;
            activeDeckView.IsShowing = true;
            this.card = card;
        }
Example #27
0
    public void AddCardInSlot(string uuid, int slot)
    {
        var            deck    = GetActiveDeck().ID;
        var            card    = GetCardIDFromUUID(uuid);
        var            oldSlot = GetCardSlotFromID(deck, card);
        ScriptableCard oldCard = null;

        try
        {
            oldCard = GetCardFromSlot(slot);
        }
        catch (Exception e) { }

        AddCardInSlot(deck, card, slot);

        if (oldCard != null && oldSlot >= 0)
        {
            AddCardInSlot(deck, GetCardIDFromUUID(oldCard.UUID), oldSlot);
        }
    }
Example #28
0
        void ConfigureSlots()
        {
            var count = gridOfCurretDeck.transform.childCount;


            for (int i = 0; i < count; i++)
            {
                ShowCardInSlot(i);
                var slot = i;
                gridOfCurretDeck.transform.GetChild(i).GetComponent <Button>().onClick.AddListener(delegate()
                {
                    if (IsShowing)
                    {
                        ScriptableCard c = deckEditView.GetCard();
                        if (c.element == dbHelper.GetActiveMage().element || c.rank < 3)
                        {
                            dbHelper.AddCardInSlot(c.UUID, slot);
                            IsShowing = false;
                            deckEditView.IsShowing = false;
                            playerCardPanel.Populate();
                        }


                        else
                        {
                            audioSource.PlayOneShot(lowLevelAudio);
                        }
                        ShowCardsForAllSlots(null);
                    }
                    else
                    {
                        deckEditView.gameObject.SetActive(true);
                        deckEditView.SetCard(dbHelper.GetCardFromSlot(slot) as ScriptableCard);
                        deckEditView.IsShowing = true;
                    }
                });
            }
            manaText.text = string.Format("Custo arcano médio: {0:0.0}", dbHelper.GetActiveDeck().CalculateMana(dbHelper));
        }
Example #29
0
        public void OnCardsUpdate(ScriptableCard[] cards)
        {
            Debug.LogWarning("OnCardsUpdate");
            foreach (Transform child in grid.transform)
            {
                GameObject.Destroy(child.gameObject);
            }

            var i = 0;

            foreach (var card in cards)
            {
                var view = Instantiate(cardPrefab);

                var art = Helper.FindComponentInChildrenWithName <Image>(view, "*Art");
                art.sprite = card.art;

                view.GetComponent <Button>().onClick.AddListener(delegate()
                {
                    if (IsShowing)
                    {
                        ScriptableCard c = deckEditView.GetCard();
                        Debug.LogWarning("SetCardToCurrentDeckInPosition not implemented");
                        //Server.SetCardToCurrentDeckInPosition(this, c, i, Player.Instance.ReloadDecks);
                    }
                    else
                    {
                        deckEditView.gameObject.SetActive(true);
                        deckEditView.SetCard(card);
                        deckEditView.IsShowing = true;
                    }
                });

                view.transform.SetParent(grid.transform, false);

                i++;
            }
        }
Example #30
0
    public void CastCard(int nextCard, CardLine nextLine)
    {
        if (this.mana < handCards[nextCard].mana)
        {
            if (lowManaAudio != null)
            {
                audioSource.PlayOneShot(lowManaAudio);
            }

            return;
        }
        ;

        if (this.silence > 0)
        {
            return;
        }
        //CheckSide(nextLine);
        lineSelectionEvent?.FireEvent(nextLine);


        manager.Cast(handCards[nextCard], nextLine, this, OnCastEnd);
        animator.SetBool("isCasting", true);
        animator.SetFloat("Blend", (int)handCards[nextCard].animation);
        canCast             = false;
        this.mana          -= handCards[nextCard].mana;
        lastCard            = handCards[nextCard];
        handCards[nextCard] = null;
        cardChoosed         = false;
        this.nextCard       = nextCard;

        castStartEvent?.FireEvent(lastCard.cast);


        DrawCard();
    }