// 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()); }
// 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); }
// 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); }
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(); } }