Beispiel #1
0
 private void Unhide()
 {
     if (isHided)
     {
         isAnimating = true;
         isHided     = false;
         RectTransform   trs      = GetComponent <RectTransform>();
         Vector2Animator animator = GetComponent <Vector2Animator>();
         animator.StartAnimation(new Vector2AnimationData {
             StartValue    = new Vector2(0, -145),
             EndValue      = new Vector2(0, _botOffset),
             Duration      = 0.3f,
             AnimationMode = BosAnimationMode.Single,
             EaseType      = EaseType.EaseInOutQuad,
             Target        = gameObject,
             OnStart       = (p, o) => trs.anchoredPosition = p,
             OnUpdate      = (p, t, o) => trs.anchoredPosition = p,
             OnEnd         = (p, o) => {
                 trs.anchoredPosition = p;
                 bankAlertParticles.Activate();
                 isAnimating = false;
             }
         });
     }
 }
        private IEnumerator MoveToImpl(List <Vector2AnimationData> datas)
        {
            Vector2Animator vec2Animator = RectTransform.gameObject.GetOrAdd <Vector2Animator>();

            yield return(new WaitUntil(() => vec2Animator.IsStarted == false));

            vec2Animator.StartAnimation(datas);
        }
Beispiel #3
0
        public static void ScaleMe(this GameObject obj, float start, float end, float duration, EaseType easeType,
                                   Action onEnd = null)
        {
            RectTransform   rectTransform = obj.GetComponent <RectTransform>();
            Vector2Animator animator      = obj.GetOrAdd <Vector2Animator>();

            animator.StartAnimation(GetScaleAnimData(start, end, duration, easeType, rectTransform, onEnd));
        }
Beispiel #4
0
        private IEnumerator MoveInPlaceImpl(MechanicAnimObject mechanicView, TempMechanicInfo info)
        {
            yield return(new WaitForSeconds(.2f));

            Vector3Animator scaleAnimator    = mechanicView.gameObject.GetOrAdd <Vector3Animator>();
            Vector2Animator positionAnimator = mechanicView.gameObject.GetOrAdd <Vector2Animator>();
            FloatAnimator   rotateAnimator   = mechanicView.gameObject.GetOrAdd <FloatAnimator>();

            RectTransform rectTransform = mechanicView.GetComponent <RectTransform>();

            Vector2 startPosition = rectTransform.anchoredPosition;
            Vector2 endPosition   = mechanicView.leftPosition;

            Vector2AnimationData positionData = new Vector2AnimationData {
                StartValue = startPosition,
                EndValue   = endPosition,
                Duration   = .3f,
                EaseType   = EaseType.EaseInOutQuad,
                Target     = mechanicView.gameObject,
                OnStart    = rectTransform.UpdatePositionFunctor(),
                OnUpdate   = rectTransform.UpdatePositionTimedFunctor(),
                OnEnd      = rectTransform.UpdatePositionFunctor(() => {
                    Debug.Log($"setup temp mechanic on state => {info.State}");
                    mechanicView.Setup(info);
                    mechanicViews.Add(mechanicView.TempMechanic.Id, mechanicView);
                    animatedViews.Remove(mechanicView.TempMechanic.Id);
                })
            };
            Vector3AnimationData scaleData = new Vector3AnimationData {
                StartValue = 2f * Vector3.one,
                EndValue   = Vector3.one,
                Duration   = .3f,
                EaseType   = EaseType.EaseInOutQuad,
                Target     = mechanicView.gameObject,
                OnStart    = rectTransform.UpdateScaleFunctor(),
                OnUpdate   = rectTransform.UpdateScaleTimedFunctor(),
                OnEnd      = rectTransform.UpdateScaleFunctor()
            };

            FloatAnimationData rotateData = new FloatAnimationData {
                StartValue = rectTransform.localRotation.eulerAngles.z,
                EndValue   = 0,
                Duration   = .3f,
                EaseType   = EaseType.EaseInOutQuad,
                Target     = mechanicView.gameObject,
                OnStart    = rectTransform.UpdateZRotation(),
                OnUpdate   = rectTransform.UpdateZRotationTimed(),
                OnEnd      = rectTransform.UpdateZRotation()
            };

            positionAnimator.StartAnimation(positionData);
            scaleAnimator.StartAnimation(scaleData);
            rotateAnimator.StartAnimation(rotateData);
        }
Beispiel #5
0
        private void CreateAccumulatedText(double val, bool isManual)
        {
            if (textPull.HasObject)
            {
                float duration = 1;                                                                            //isManual ? 0.6f : 0.3f;

                GameObject inst = textPull.UseAtPosition(new Vector2(UnityEngine.Random.Range(0, 330), -353)); //Instantiate(AccumulatedTextPrefab, transform, false);
                Text       txt  = inst.GetComponent <Text>();
                txt.text = val.ToCurrencyNumber().PrefixedAbbreviation();
                RectTransform textTrs = inst.GetComponent <RectTransform>();

                float finalDuration = duration + UnityEngine.Random.Range(-.2f, .2f);

                Vector2Animator vec2Animator = inst.GetComponent <Vector2Animator>();
                vec2Animator.StartAnimation(new Vector2AnimationData {
                    StartValue = textTrs.anchoredPosition,
                    EndValue   = textTrs.anchoredPosition + Vector2.down * 5 /* + Vector2.up * 60*/,
                    Duration   = finalDuration,
                    EaseType   = EaseType.EaseInOutQuad,
                    Target     = inst,
                    OnStart    = textTrs.UpdatePositionFunctor(),
                    OnUpdate   = textTrs.UpdatePositionTimedFunctor(),
                    OnEnd      = textTrs.UpdatePositionFunctor(() => textPull.Free(inst))
                });



                FloatAnimator alphaAnimator = inst.GetComponent <FloatAnimator>();
                CanvasGroup   cg            = inst.GetComponent <CanvasGroup>();
                alphaAnimator.Stop();
                cg.alpha = 1;
                alphaAnimator.StartAnimation(new FloatAnimationData {
                    Duration   = finalDuration * 1.5f,
                    EaseType   = EaseType.EaseInOutQuad,
                    StartValue = 1,
                    EndValue   = 0,
                    Target     = inst,
                    OnStart    = cg.UpdateAlphaFunctor(),
                    OnUpdate   = cg.UpdateAlphaTimedFunctor(),
                    OnEnd      = cg.UpdateAlphaFunctor()
                });

                Vector3Animator v3animator = inst.GetOrAdd <Vector3Animator>();
                v3animator.Stop();
                v3animator.StartAnimation(textTrs.ConstructScaleAnimationData(Vector3.one * .1f, Vector3.one, finalDuration * 0.5f, BosAnimationMode.Single, EaseType.EaseInOutQuad, () => {
                    v3animator.StartAnimation(textTrs.ConstructScaleAnimationData(Vector3.one, Vector3.one * .1f, finalDuration * 0.5f, BosAnimationMode.Single, EaseType.EaseInOutQuad));
                }));

                //ColorAnimator colorAnimator = inst.GetComponent<ColorAnimator>();

                //colorAnimator.StartAnimation(AnimUtils.GetColorAnimData(txt.color, txt.color.ChangeAlpha(0), finalDuration, EaseType.EaseInOutQuad, textTrs));
            }
        }
        public void Setup(string text, float value, int managerId)
        {
            descriptionText.text      = text;
            descriptionValueText.text = $"+{(int)(value * 100)}%";

            ViewService.Utils.ApplyManagerIcon(managerIcon, Services.GenerationService.GetGetenerator(managerId), true);

            RectTransform   selfTransform    = GetComponent <RectTransform>();
            Vector2Animator positionAnimator = gameObject.GetOrAdd <Vector2Animator>();
            FloatAnimator   alphaAnimator    = gameObject.GetOrAdd <FloatAnimator>();

            const float kDuration = 2.5f;

            positionAnimator.StartAnimation(new Vector2AnimationData {
                StartValue    = selfTransform.anchoredPosition,
                EndValue      = selfTransform.anchoredPosition + Vector2.up * 250,
                Duration      = kDuration,
                AnimationMode = BosAnimationMode.Single,
                EaseType      = EaseType.EaseInOutQuad,
                Target        = gameObject,
                OnStart       = selfTransform.UpdatePositionFunctor(),
                OnUpdate      = selfTransform.UpdatePositionTimedFunctor(),
                OnEnd         = selfTransform.UpdatePositionFunctor(),
                Events        = new List <AnimationEvent <Vector2> > {
                    new AnimationEvent <Vector2> {
                        IsValid = (p, t, o) => t >= 0.5f,
                        Mode    = AnimationEventMode.Single,
                        OnEvent = (p, t, o) => {
                            alphaAnimator.StartAnimation(new FloatAnimationData {
                                StartValue    = 1,
                                EndValue      = 0,
                                AnimationMode = BosAnimationMode.Single,
                                Duration      = kDuration * .5f,
                                EaseType      = EaseType.Linear,
                                Target        = gameObject,
                                OnStart       = canvasGroup.UpdateAlphaFunctor(),
                                OnUpdate      = canvasGroup.UpdateAlphaTimedFunctor(),
                                OnEnd         = canvasGroup.UpdateAlphaFunctor(() => {
                                    Destroy(gameObject);
                                })
                            });
                        }
                    }
                }
            });

            StartLight();
            StartPercentText();
            StartArrow();
        }
Beispiel #7
0
        private IEnumerator ShowMoveTextFailImpl(UnofficialTransferCashInfo info)
        {
            yield return(new WaitForSeconds(interval));

            GameObject textPrefab   = Services.ResourceService.Prefabs.GetPrefab("movetext");
            GameObject textInstance = Instantiate(textPrefab);

            Text text = textInstance.GetComponent <Text>();

            text.text = $"-{BosUtils.GetCurrencyString(info.LooseValue.ToCurrencyNumber(), "", "")}";
            //text.SetAllDirty();

            RectTransform textTransform = textInstance.GetComponent <RectTransform>();

            textTransform.SetParent(transform, false);
            textTransform.anchoredPosition = endObject.anchoredPosition;
            textTransform.localScale       = new Vector3(2, 2, 1);
            Color startColor = Color.red;
            Color endColor   = Color.red.ChangeAlpha(0.1f);
            var   colorData  = AnimUtils.GetColorAnimData(startColor, endColor, 1.5f, EaseType.EaseOutQuintic,
                                                          textTransform, BosAnimationMode.Single,
                                                          () => { });
            var positionData = new Vector2AnimationData()
            {
                StartValue = textTransform.anchoredPosition,
                EndValue   = textTransform.anchoredPosition - new Vector2(0, 300),
                Duration   = 1.5f,
                EaseType   = EaseType.EaseOutQuintic,
                Target     = textInstance,
                OnStart    = (p, o) => textTransform.anchoredPosition = p,
                OnUpdate   = (p, t, o) => textTransform.anchoredPosition = p,
                OnEnd      = (p, o) => {
                    textTransform.anchoredPosition = p;
                    Destroy(textInstance);
                }
            };
            ColorAnimator   colorAnimator    = textInstance.GetComponent <ColorAnimator>();
            Vector2Animator positionAnimator = textInstance.GetComponent <Vector2Animator>();

            colorAnimator.StartAnimation(colorData);
            positionAnimator.StartAnimation(positionData);
            Sounds.PlayOneShot(SoundName.slotFail);
            ViewService.ShowDelayed(ViewType.TransferWarningView, 0.5f, new ViewData {
                ViewDepth = ViewService.NextViewDepth,
                UserData  = info.LooseValue
            });
            animObjects.Add(textInstance);
        }
        public static void MoveFromTo(this RectTransform transform,
                                      Vector2 startPosition, Vector2 endPosition, float duration, EaseType easeType, Action onComplete = null)
        {
            Vector2Animator      animator = transform.gameObject.GetOrAdd <Vector2Animator>();
            Vector2AnimationData data     = new Vector2AnimationData {
                StartValue    = startPosition,
                EndValue      = endPosition,
                Duration      = duration,
                EaseType      = easeType,
                AnimationMode = BosAnimationMode.Single,
                Target        = transform.gameObject,
                OnStart       = transform.UpdatePositionFunctor(),
                OnUpdate      = transform.UpdatePositionTimedFunctor(),
                OnEnd         = transform.UpdatePositionFunctor(onComplete)
            };

            animator.StartAnimation(data);
        }
        private IEnumerator ShowGirlImpl()
        {
            yield return(new WaitForSeconds(0.3f));

            Vector2Animator      posAnimator = girlTransform.gameObject.GetOrAdd <Vector2Animator>();
            Vector2AnimationData posData     = new Vector2AnimationData()
            {
                StartValue = new Vector2(-650, -110),
                EndValue   = new Vector2(-360, -110),
                Duration   = .2f,
                EaseType   = EaseType.EaseInOutQuad,
                Target     = girlTransform.gameObject,
                OnStart    = girlTransform.UpdatePositionFunctor(),
                OnUpdate   = girlTransform.UpdatePositionTimedFunctor(),
                OnEnd      = girlTransform.UpdatePositionFunctor(() => { /*StartCoroutine(ShowBubbleImpl());*/
                    StartCoroutine(ShowOkButtonImpl());
                })
            };

            posAnimator.StartAnimation(posData);
        }
Beispiel #10
0
 private void Unhide()
 {
     if (isHided)
     {
         isAnimating = true;
         isHided     = false;
         RectTransform   trs      = GetComponent <RectTransform>();
         Vector2Animator animator = GetComponent <Vector2Animator>();
         animator.StartAnimation(new Vector2AnimationData {
             StartValue    = new Vector2(0, -110),
             EndValue      = new Vector2(0, 92.5f),
             Duration      = 0.3f,
             AnimationMode = BosAnimationMode.Single,
             EaseType      = EaseType.EaseInOutQuad,
             Target        = gameObject,
             OnStart       = trs.UpdatePositionFunctor(),
             OnUpdate      = trs.UpdatePositionTimedFunctor(),
             OnEnd         = trs.UpdatePositionFunctor(() => {
                 isAnimating = false;
             })
         });
     }
 }
Beispiel #11
0
        private IEnumerator MoveToHidedImpl(float totalInterval)
        {
            yield return(new WaitUntil(() => !isAnimating));

            isAnimating = true;
            Vector2Animator positionAnimator = gameObject.GetOrAdd <Vector2Animator>();
            RectTransform   rectTransform    = GetComponent <RectTransform>();

            positionAnimator.StartAnimation(new Vector2AnimationData {
                StartValue    = rectTransform.anchoredPosition,
                EndValue      = hidedPosition,
                AnimationMode = BosAnimationMode.Single,
                Duration      = GetAnimateIntervalForPosition(rectTransform.anchoredPosition, hidedPosition, totalInterval),
                EaseType      = EaseType.EaseInOutQuintic,
                Target        = gameObject,
                OnStart       = rectTransform.UpdatePositionFunctor(),
                OnUpdate      = rectTransform.UpdatePositionTimedFunctor(),
                OnEnd         = rectTransform.UpdatePositionFunctor(() => {
                    isAnimating = false;
                    State       = ModulePartState.Hided;
                })
            });
        }
Beispiel #12
0
        private void AnimateAuditorObject(SecretaryAnimObject mechanicView, Auditor info)
        {
            Vector3Animator scaleAnimator    = mechanicView.gameObject.GetOrAdd <Vector3Animator>();
            Vector2Animator positionAnimator = mechanicView.gameObject.GetOrAdd <Vector2Animator>();
            ColorAnimator   colorAnimator    = mechanicView.gameObject.GetOrAdd <ColorAnimator>();
            FloatAnimator   rotateAnimator   = mechanicView.gameObject.GetOrAdd <FloatAnimator>();


            RectTransform rectTransform = mechanicView.GetComponent <RectTransform>();
            Image         image         = mechanicView.GetComponent <Image>();

            Vector2 endOffset = Random.insideUnitCircle.normalized * 300;

            if (endOffset.y < 0)
            {
                endOffset.y = -endOffset.y;
            }
            Vector2 startPosition = buyButton.GetComponent <RectTransform>().anchoredPosition;
            Vector2 endPosition   = startPosition + endOffset;

            Vector2AnimationData positionData = new Vector2AnimationData {
                StartValue = startPosition,
                EndValue   = endPosition,
                Duration   = 0.3f,
                EaseType   = EaseType.EaseInOutQuad,
                Target     = mechanicView.gameObject,
                OnStart    = rectTransform.UpdatePositionFunctor(),
                OnUpdate   = rectTransform.UpdatePositionTimedFunctor(),
                OnEnd      = rectTransform.UpdatePositionFunctor(() => {
                    StartCoroutine(MoveInPlaceImpl(mechanicView, info));
                })
            };

            Vector3AnimationData scaleData = new Vector3AnimationData {
                StartValue = Vector3.one,
                EndValue   = 2f * Vector3.one,
                Duration   = .3f,
                EaseType   = EaseType.EaseInOutQuad,
                Target     = mechanicView.gameObject,
                OnStart    = rectTransform.UpdateScaleFunctor(),
                OnUpdate   = rectTransform.UpdateScaleTimedFunctor(),
                OnEnd      = rectTransform.UpdateScaleFunctor()
            };

            ColorAnimationData colorData = new ColorAnimationData {
                StartValue = new Color(1, 1, 1, 0),
                EndValue   = new Color(1, 1, 1, 1),
                Duration   = .1f,
                EaseType   = EaseType.EaseInOutQuad,
                Target     = mechanicView.gameObject,
                OnStart    = image.UpdateColorFunctor(),
                OnUpdate   = image.UpdateColorTimedFunctor(),
                OnEnd      = image.UpdateColorFunctor()
            };

            FloatAnimationData rotateData = new FloatAnimationData {
                StartValue = 0,
                EndValue   = Random.Range(-40, 40),
                Duration   = .3f,
                EaseType   = EaseType.EaseInOutQuad,
                Target     = mechanicView.gameObject,
                OnStart    = rectTransform.UpdateZRotation(),
                OnUpdate   = rectTransform.UpdateZRotationTimed(),
                OnEnd      = rectTransform.UpdateZRotation()
            };

            positionAnimator.StartAnimation(positionData);
            scaleAnimator.StartAnimation(scaleData);
            colorAnimator.StartAnimation(colorData);
            rotateAnimator.StartAnimation(rotateData);
        }