Beispiel #1
0
    // method to add a card to the table
    public void AddCard(CardAsset cardAsset, Vector3 handPosition, int monsterIndex)
    {
        // create a new card from prefab
        GameObject card;

        card = GameObject.Instantiate(GameStateSync.Instance.SkillCardPrefab, handPosition, Quaternion.Euler(new Vector3(0f, -179f, 0f))) as GameObject;

        // apply the look of the card based on the info from CardAsset
        SkillCardManager manager = card.GetComponent <SkillCardManager>();

        manager.cardAsset = cardAsset;
        manager.ReadCardFromAsset();

        // parent this card to our open slot
        Transform openSlot = FindOpenSlot(monsterIndex);

        card.transform.SetParent(openSlot);

        // Bring card to front while it travels from draw spot to hand
        WhereIsTheCardOrMonster w = card.GetComponent <WhereIsTheCardOrMonster>();

        w.SendToBack();
        w.Slot = monsterIndex;

        // move card to the hand;
        Sequence s = DOTween.Sequence();

        s.Insert(0f, card.transform.DORotate(Vector3.zero, GameStateSync.Instance.CardTransitionTime));
        s.Append(card.transform.DOMove(openSlot.position, GameStateSync.Instance.CardTransitionTime));

        s.OnComplete(() => Command.CommandExecutionComplete());
    }
Beispiel #2
0
    // OTHER METHODS
    void PreviewThisObject()
    {
        // 1) clone this card
        // first disable the previous preview if there is one already
        StopAllPreviews();
        // 2) save this HoverPreview as curent
        currentlyViewing = this;
        // 3) enable Preview game object
        previewGameObject.SetActive(true);
        // 4) disable if we have what to disable
        if (TurnThisOffWhenPreviewing != null)
        {
            TurnThisOffWhenPreviewing.SetActive(false);
        }
        // 5) tween to target position
        previewGameObject.transform.localPosition = Vector3.zero;
        previewGameObject.transform.localScale    = Vector3.one;

        previewGameObject.transform.DOLocalMove(TargetPosition, 1f).SetEase(Ease.OutQuint);
        previewGameObject.transform.DOScale(TargetScale, 1f).SetEase(Ease.OutQuint);

        SkillCardManager skillCardManager = GetComponentInParent <SkillCardManager>();
        MonsterManager   monsterManager   = GetComponentInParent <MonsterManager>();

        if (skillCardManager != null)
        {
            previewCard = GameObject.Instantiate(GameStateSync.Instance.SkillCardPrefab,
                                                 GameStateSync.Instance.previewCard.position,
                                                 Quaternion.Euler(new Vector3(0f, 0f, 0f))) as GameObject;
            SkillCardManager manager = previewCard.GetComponent <SkillCardManager>();
            manager.cardAsset = GetComponentInParent <SkillCardManager>().cardAsset;
            manager.ReadCardFromAsset();
            Destroy(manager.GetComponent <HoverPreview>());
        }
        else if (monsterManager != null)
        {
            previewCard = GameObject.Instantiate(GameStateSync.Instance.MonsterCardPrefab,
                                                 GameStateSync.Instance.previewCard.position,
                                                 Quaternion.Euler(new Vector3(0f, 0f, 0f))) as GameObject;
            MonsterManager manager = previewCard.GetComponent <MonsterManager>();
            manager.monsterAsset = GetComponentInParent <MonsterManager>().monsterAsset;
            manager.ReadCardFromAsset();
            Destroy(manager.GetComponent <HoverPreview>());
        }
        previewCard.transform.DOScale(1.3f, 1f).SetEase(Ease.OutQuint);
    }
Beispiel #3
0
    // CARD DRAW METHODS

    // creates a card and returns a new card as a GameObject
    GameObject CreateACardAtPosition(CardAsset c, Vector3 position, Vector3 eulerAngles)
    {
        // Instantiate a card depending on its type
        GameObject card;

        // this is a spell: checking for targeted or non-targeted spell
        card = GameObject.Instantiate(GameStateSync.Instance.SkillCardPrefab, position, Quaternion.Euler(eulerAngles)) as GameObject;

        // apply the look of the card based on the info from CardAsset
        SkillCardManager manager = card.GetComponent <SkillCardManager>();

        manager.cardAsset = c;
        manager.ReadCardFromAsset();
        manager.CardFaceGlowImage.enabled = false;

        return(card);
    }
Beispiel #4
0
    public void ReadCardFromAsset()
    {
        // 1) apply tint
        if (cardAsset.monsterAsset != null)
        {
            CardBodyImage.color   = cardAsset.monsterAsset.classCardTint;
            CardGutsImage.color   = cardAsset.monsterAsset.classRibbonsTint;
            CardTitleImage.color  = cardAsset.monsterAsset.classRibbonsTint;
            CardUserImage.color   = cardAsset.monsterAsset.classRibbonsTint;
            CardTypeImage.color   = cardAsset.monsterAsset.classRibbonsTint;
            CardDamageImage.color = cardAsset.monsterAsset.classRibbonsTint;
        }
        // 2) add guts cost
        GutsText.text = cardAsset.gutsCost.ToString();
        // 3) add card title
        TitleText.text = cardAsset.name;
        // 4) change the card graphic sprite
        CardGraphicImage.sprite = cardAsset.image;
        // 5) add user
        UserText.text = cardAsset.user;
        // 6) add description
        DescriptionText.text = cardAsset.description;
        // 6) add type
        TypeText.text = cardAsset.type;
        // 7) add damage
        DamageText.text = cardAsset.damage.ToString();
        if (cardAsset.damage == 0)
        {
            CardDamageImage.enabled = false;
            DamageText.enabled      = false;
        }

        if (PreviewManager != null)
        {
            PreviewManager.cardAsset = cardAsset;
            PreviewManager.ReadCardFromAsset();
        }
    }