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 } }
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); }
public void Pause(float time) { if (paused) { return; } Pause(); ActionDelayer.DelayAction(Resume, time); }
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); }
public void Resume() { if (!paused) { return; } paused = false; var delayed = ActionDelayer.DelayAction(act, totalTime - elapsedOnPause); delayer = delayed.delayer; }
public override void OnHover() { if (baseCard.card == null) { return; } if (CardBody.dragged == null) { return; } hoverDelayer = ActionDelayer.DelayAction(SetZone, hoverDelay); }
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); } }
public void OnPointerEnter(PointerEventData eventData) { if (CardBody.dragged == null) { return; } if (open) { OpenZone(); } else { hoverDelayer = ActionDelayer.DelayAction(OpenZone, hoverDelay); } }
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); } }
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); } } }
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 } }
public void Die() { Destroy(this.gameObject); ActionDelayer.DelayAction(Manager.instance.Lose, 0.5f); }