public Sequence Play(SymbolHolder holder, int orderInLine) { CustomSlot slot = holder.reel.slot; SlotEffectManager manager = slot.effects; Sequence sequence = Util.Sequence(); if (manager.changeParentOfHitSymbol) { Transform oldParent = holder.transform.parent; // int index = holder.transform.GetSiblingIndex(); sequence.OnStart(() => { holder.transform.SetParent(holder.reel.slot.transform); }).OnComplete(() => { holder.transform.SetParent(oldParent); // holder.transform.SetSiblingIndex(index); }); } if (scale != Vector3.one) { sequence.Join(holder.image.transform.DOScale(scale, duration * 0.35f).SetLoops(2, LoopType.Yoyo).SetEase(scaleEase)).SetDelay(delay * orderInLine); } if (rotation != Vector3.zero) { sequence.Join(holder.image.transform.DORotate(rotation, duration * 0.6f, RotateMode.FastBeyond360).SetEase(rotationEase)).SetDelay(delay * orderInLine); } sequence.Join(holder.HighlightBorder(duration)); return(sequence); }
internal IEnumerator StopCoroutine() { isSearchingForSymbol = true; while (true) { SymbolHolder holder = holders[Mathf.Clamp(slot.config.hiddenTopRows - GetStopDistance() + manipulation.rowOffset, 0, holders.Count - 1)]; if ((manipulation.symbol && holder.symbol == manipulation.symbol) || (!manipulation.symbol && holder.symbolIndex == manipulation.index)) { _Stop(false); break; } yield return(null); } }
private void Awake() { _rect = transform as RectTransform; link = this; }