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
 // highlight a card in hand
 public void HighlightCard(Color32 highlightColor, int index, bool isTurnOn)
 {
     foreach (Transform child in slots.Children[index].transform)
     {
         //highlight
         SkillCardManager skillCardManager = child.gameObject.GetComponent <SkillCardManager>();
         skillCardManager.CardFaceGlowImage.color   = highlightColor;
         skillCardManager.CardFaceGlowImage.enabled = isTurnOn;
     }
     Command.CommandExecutionComplete();
 }
Beispiel #3
0
 void OnEnable()
 {
     if (interactiveItem == null)
     {
         interactiveItem = this.GetComponent <VRInteractiveItem>();
     }
     skillCardManager               = SkillCardManager.instance;
     interactiveItem.OnOver        += OnRayOver;
     interactiveItem.OnOut         += OnRayOut;
     interactiveItem.OnClick       += OnPadClick;
     interactiveItem.OnDoubleClick += OnPadDoubleClick;
 }
Beispiel #4
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 #5
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 #6
0
    void OnMouseDown()
    {
        bool             isHighlighted    = false;
        MonsterManager   monsterManager   = this.transform.parent.GetComponent <MonsterManager>();
        SkillCardManager skillCardManager = this.transform.GetComponent <SkillCardManager>();

        isHighlighted = monsterManager != null ? monsterManager.CardFaceGlowImage.enabled : skillCardManager.CardFaceGlowImage.enabled;

        if (da != null && da.CanDrag() && isHighlighted)
        {
            dragging     = true;
            draggingThis = this;
            HoverPreview.PreviewsAllowed = false;
            zDisplacement       = -Camera.main.transform.position.z + transform.position.z;
            pointerDisplacement = -transform.position + MouseInWorldCoords();

            da.OnStartDrag();
        }
    }
Beispiel #7
0
 void Awake()
 {
     instance = this;
 }