Exemple #1
0
 public void Discard(GameObject card, bool setSpaces = true)
 {
     if (discardType == DiscardType.Instant)
     {
         card.SetActive(false);
         Destroy(card);
         if (setSpaces)
         {
             SetSpaces();
         }
     }
     else if (discardType == DiscardType.Follow)
     {
         if (setSpaces)
         {
             ActionDelayer.DelayAction(SetSpaces, discardTime / 2);
         }
         card.transform.SetParent(null);
         card.transform.DOMove(finalPoint.position, discardTime).OnComplete(() => { card.SetActive(false); Destroy(card); });
         card.transform.DORotate(finalPoint.rotation.eulerAngles, discardTime);
         card.transform.DOScale(finalPoint.localScale, discardTime);
     }
     else if (discardType == DiscardType.Down)
     {
         card.transform.DOMoveY(card.transform.position.y - 3f, discardTime).OnComplete(() => { card.SetActive(false); /*Destroy(card);*/ if (setSpaces)
                                                                                                {
                                                                                                    SetSpaces();
                                                                                                }
                                                                                        }).SetEase(Ease.InBack);
     }
     else if (discardType == DiscardType.Custom)
     {
         //define custom draw here
     }
 }
Exemple #2
0
 public void Draw(Transform targetHolder, float drawTime = 0.75f, Ease ease = Ease.Linear)
 {
     box.enabled = false;
     SetDummy(targetHolder, true);
     dummy.transform.SetAsLastSibling();
     cardDrop.Raise();
     ActionDelayer.DelayAction(() => { transform.DOMove(dummy.transform.position, 0.5f).SetEase(ease).OnComplete(() => { box.enabled = true; transform.SetParent(dummy.transform.parent); transform.SetSiblingIndex(dummy.transform.GetSiblingIndex()); dummy.gameObject.SetActive(false); Destroy(dummy); }); }, drawTime);
 }
Exemple #3
0
 public void Pause(float time)
 {
     if (paused)
     {
         return;
     }
     Pause();
     ActionDelayer.DelayAction(Resume, time);
 }
Exemple #4
0
    public static void Play(AudioClip clip, float volume = 0.25f)
    {
        var obj = new GameObject("Audio");
        var s   = obj.AddComponent <AudioSource>();

        s.volume = volume;
        s.clip   = clip;
        s.Play();
        ActionDelayer.DelayAction(obj.Kill, clip.length + 1f);
    }
Exemple #5
0
    public void Resume()
    {
        if (!paused)
        {
            return;
        }
        paused = false;
        var delayed = ActionDelayer.DelayAction(act, totalTime - elapsedOnPause);

        delayer = delayed.delayer;
    }
Exemple #6
0
 public override void OnHover()
 {
     if (baseCard.card == null)
     {
         return;
     }
     if (CardBody.dragged == null)
     {
         return;
     }
     hoverDelayer = ActionDelayer.DelayAction(SetZone, hoverDelay);
 }
Exemple #7
0
 public void GotWrong()
 {
     SoundSystem.Play(wrongSound, 0.5f);
     wrong.SetActive(true);
     answers += 1;
     transform.DOShakePosition(0.2f, 10f);
     if (answers <= 5)
     {
         ActionDelayer.DelayAction(() => { stopEvent.Close(); transform.parent.parent.gameObject.SetActive(false); wrong.SetActive(false); Manager.instance.player.EnableInput = true; }, 1f);
     }
     else
     {
         ActionDelayer.DelayAction(() => { stopEvent.Close(); transform.parent.parent.gameObject.SetActive(false); correct.SetActive(false); Manager.instance.End(true); }, 1f);
     }
 }
Exemple #8
0
 public void OnPointerEnter(PointerEventData eventData)
 {
     if (CardBody.dragged == null)
     {
         return;
     }
     if (open)
     {
         OpenZone();
     }
     else
     {
         hoverDelayer = ActionDelayer.DelayAction(OpenZone, hoverDelay);
     }
 }
Exemple #9
0
 public void GotRight()
 {
     SoundSystem.Play(correctSound, 0.5f);
     correct.SetActive(true);
     transform.DOShakeScale(0.2f);
     answers                 += 1;
     correctAnswers          += 1;
     Manager.instance.Points += 10;
     if (answers < 4)
     {
         ActionDelayer.DelayAction(() => { stopEvent.Close(); transform.parent.parent.gameObject.SetActive(false); correct.SetActive(false); Manager.instance.player.EnableInput = true; }, 1f);
     }
     else
     {
         ActionDelayer.DelayAction(() => { stopEvent.Close(); transform.parent.parent.gameObject.SetActive(false); correct.SetActive(false); Manager.instance.End(true); }, 1f);
     }
 }
Exemple #10
0
 public void Discard(List <GameObject> newcards)
 {
     newcards = newcards.OrderBy(x => x.transform.GetSiblingIndex()).ToList();
     for (int i = 0; i < newcards.Count; i++)
     {
         //Discard(newcards[i]);
         if (i > 0 && i < newcards.Count - 1)
         {
             var obj = newcards[i];
             ActionDelayer.DelayAction(() => { Discard(obj, false); }, i * delayBetweenDiscards);
         }
         else if (i == 0)
         {
             Discard(newcards[i], false);
         }
         else
         {
             var obj = newcards[i];
             ActionDelayer.DelayAction(() => { Discard(obj, true); }, i * delayBetweenDiscards);
         }
     }
 }
Exemple #11
0
 public void Draw(GameObject Card, int amount = 1)
 {
     if (drawType == DrawType.Follow)
     {
         drawing = true;
         amount -= 1;
         var body = Card.GetComponent <CardBody>();
         body.Draw(cardHolder, false, flipTime);
         Card.transform.position   = DrawSpot.position;
         Card.transform.rotation   = DrawSpot.rotation;
         Card.transform.localScale = DrawSpot.localScale;
         Card.transform.DOMove(FlipPoint.position, flipTime);
         Card.transform.DOLocalRotate(Vector3.zero, flipTime);
         Card.transform.DOScale(1, flipTime);
         if (amount == 0)
         {
             ActionDelayer.DelayAction(() => drawing = false, flipTime);
         }
         ActionDelayer.DelayAction(SetSpaces, (flipTime * 2));
         if (amount >= 1)
         {
             ActionDelayer.DelayAction(() => { drawing = false; Draw(amount); }, flipTime);
         }
     }
     else if (drawType == DrawType.Instant)
     {
         amount -= 1;
         var body = Card.GetComponent <CardBody>();
         Card.transform.position = cardHolder.transform.position;
         Card.transform.SetParent(cardHolder);
         SetSpaces();
         if (amount >= 1)
         {
             ActionDelayer.DelayAction(() => { Draw(amount); }, flipTime);
         }
     }
     else if (drawType == DrawType.Up)
     {
         var flip = flipTime;
         //drawing = true;
         amount -= 1;
         var body = Card.GetComponent <CardBody>();
         body.Draw(cardHolder, true, flip, Ease.OutBack);
         Card.transform.localPosition = Vector3.down * 3;
         Card.transform.rotation      = Quaternion.identity;
         Card.transform.localScale    = Vector3.one;
         if (amount == 0)
         {
             ActionDelayer.DelayAction(() => drawing = false, flip);
         }
         //ActionDelayer.DelayAction(SetSpaces, (flip * 2));
         if (amount >= 1)
         {
             ActionDelayer.DelayAction(() => { drawing = false; Draw(amount); }, flip);
         }
     }
     else if (drawType == DrawType.Custom)
     {
         //define here
     }
 }
Exemple #12
0
 public void Die()
 {
     Destroy(this.gameObject);
     ActionDelayer.DelayAction(Manager.instance.Lose, 0.5f);
 }