public static void CreateWorkEffect(Transform mechanic, GameObject effectPrefab) { GameObject inst = Instantiate<GameObject>(effectPrefab); RectTransform effectRect = inst.GetComponent<RectTransform>(); effectRect.SetParent(mechanic.parent, false); effectRect.anchoredPosition = mechanic.GetComponent<RectTransform>().anchoredPosition + new Vector2(0, 120); var colorData = AnimUtils.GetColorAnimData(Color.white, Color.white.ChangeAlpha(0), 2, EaseType.EaseInOutQuad, effectRect); var rotateData = new FloatAnimationData { StartValue = -40, EndValue = 40, Duration = 0.5f, EaseType = EaseType.EaseInOutQuad, OnStart = effectRect.UpdateZRotation(), OnUpdate = effectRect.UpdateZRotationTimed(), OnEnd = effectRect.UpdateZRotation(), Target = inst, AnimationMode = BosAnimationMode.PingPong }; var posData = new Vector2AnimationData { StartValue = effectRect.anchoredPosition, EndValue = effectRect.anchoredPosition + new Vector2(0, 250), Duration = 2, EaseType = EaseType.EaseInOutQuad, OnStart = effectRect.UpdatePositionFunctor(), OnUpdate = effectRect.UpdatePositionTimedFunctor(), OnEnd = effectRect.UpdatePositionFunctor() }; inst.GetOrAdd<ColorAnimator>().StartAnimation(colorData); inst.GetOrAdd<FloatAnimator>().StartAnimation(rotateData); inst.GetOrAdd<Vector2Animator>().StartAnimation(posData); Destroy(inst, 2); }
// Start is called before the first frame update void Start() { this.enemyRunesManager = GameObject.Find("Enemy Runes").GetComponent <EnemyRunesManager>(); transform.localScale = new Vector3(0, 0, 1); Enemy.OnDeath += () => { Destroy(this.gameObject); }; Enemy.OnAttack += (target) => { float intensity = 1; var startPosition = transform.position; var targetPosition = new Vector3(target.Coordinates.x, target.Coordinates.y, startPosition.z); /// attack animation attackAnimation = StartCoroutine(AnimUtils.Animate(0.5f, (t) => { float lerp = Mathf.Pow(Mathf.Cos(Mathf.PI / 2 + Mathf.PI * Mathf.Sqrt(t)), 4) * intensity; transform.position = Vector3.Lerp(startPosition, targetPosition, lerp); if (t == 1) { attackAnimation = null; } })); }; Enemy.OnHeal += (int heal) => { AnimUtils.AddDamageOrHealNumber(heal, transform.position, false); }; Enemy.OnHit += (int damage) => { AnimUtils.AddDamageOrHealNumber(damage, transform.position, true); }; Enemy.OnRuneTriggered += (message) => AnimUtils.ShowFloatingText(message, transform.position); }
void HandleUsed() { GetComponent <SpriteRenderer>().sprite = usedAltar; GetComponent <Animator>().enabled = false; GetComponentInChildren <ParticleSystem>()?.Stop(); AnimUtils.ShowFloatingText("Upgraded first Rune!", transform.position); }
private void UpdateMegaTextObject() { if (manager != null) { var mgrLevel = Services.ManagerService.GetManagerEfficiencyRollbackLevel(manager.Id); if (mgrLevel.IsMega) { megaTextObject?.Activate(); if (megaTextObject != null) { var scaleData1 = AnimUtils.GetScaleAnimData(1, 1.2f, 0.5f, EaseType.EaseInOutQuad, megaTextObject.GetComponent <RectTransform>(), () => { var scaleData2 = AnimUtils.GetScaleAnimData(1.2f, 1, 0.5f, EaseType.EaseInOutQuad, megaTextObject.GetComponent <RectTransform>()); megaTextObject.GetOrAdd <Vector2Animator>().StartAnimation(scaleData2); }); megaTextObject.GetOrAdd <Vector2Animator>().StartAnimation(scaleData1); } ToggleAdditionalObjects(true); } else { megaTextObject?.Deactivate(); ToggleAdditionalObjects(false); } } else { megaTextObject?.Deactivate(); ToggleAdditionalObjects(false); } }
public void Start() { StartCoroutine( AnimUtils.LoopAction( GrowTime, (t) => CurrentSize = GrowthCurve.Evaluate(t) * Size ) ); }
private void ScaleTitle() { var data1 = AnimUtils.GetScaleAnimData(1, 1.1f, 0.4f, EaseType.EaseInOutSin, titleObject.GetComponent <RectTransform>(), () => { var data2 = AnimUtils.GetScaleAnimData(1.1f, 1, 0.4f, EaseType.EaseInOutSin, titleObject.GetComponent <RectTransform>()); titleObject.GetOrAdd <Vector2Animator>().StartAnimation(data2); }); titleObject.GetOrAdd <Vector2Animator>().StartAnimation(data1); }
IEnumerator ChangeFloors(int newDepth) { PlayerManager.inputEnabled = false; // let player movement animation finish // yield return new WaitForSeconds(0.25f); // disable player input var pManager = GameObject.Find("Player").GetComponent <PlayerManager>(); // pManager.enabled = false; // shrink player var initialScale = pManager.transform.localScale; yield return(AnimUtils.Animate(0.5f, (t) => { var s = 1 - t; var newScale = new Vector3(s, s, 1); newScale.Scale(initialScale); pManager.transform.localScale = newScale; })); yield return(new WaitForSeconds(0.5f)); bool runePieceAcquired = false; if (newDepth % 4 == 1) { var trigger = RuneGenerator.randomTrigger(player.shards); player.AddRuneShard(trigger); runePieceAcquired = true; } else if (newDepth % 4 == 3) { var action = RuneGenerator.randomAction(player.shards); player.AddRuneShard(action); runePieceAcquired = true; } depthPanel.GetComponentInChildren <TMPro.TMP_Text>().text = "Depth " + newDepth; depthPanel.transform.Find("RunePieceAcquired").gameObject.SetActive(runePieceAcquired); depthPanel.SetActive(true); yield return(null); Destroy(currentGrid); NewGrid(newDepth); yield return(new WaitForSeconds(2)); depthPanel.SetActive(false); yield return(AnimUtils.Animate(0.5f, (t) => { var newScale = new Vector3(t, t, 1); newScale.Scale(initialScale); pManager.transform.localScale = newScale; })); PlayerManager.inputEnabled = true; // pManager.enabled = true; }
private void AnimateToggleIcon(RectTransform target) { foreach (var anim in ToggleIconAnimators) { anim.Stop(); } target.gameObject.GetOrAdd <Vector2Animator>().StartAnimation(AnimUtils .GetScaleAnimData(1, 1.15f, 1, EaseType.EaseInOutQuad, target) .AsAnimationMode(BosAnimationMode.PingPong)); }
IEnumerator Pulse() { yield return(AnimUtils.Animate(0.5f, (t) => { var scale = 1 + Mathf.Sin(t * Mathf.PI) * 1.0f; transform.localScale = new Vector3(scale, scale, 1); })); transform.localScale = new Vector3(1, 1, 1); pulse = null; }
/* * private void AnimateTextScroll() { * textScroll.verticalNormalizedPosition = 1; * textScrollAnimator.StartAnimation(new FloatAnimationData { * StartValue = 1, * EndValue = 0, * Duration = 1, * EaseType = EaseType.Linear, * Target = textScroll.gameObject, * OnStart = (v, o) => textScroll.verticalNormalizedPosition = v, * OnUpdate = (v, t, o) => textScroll.verticalNormalizedPosition = v, * OnEnd = (v, o) => textScroll.verticalNormalizedPosition = v * }); * }*/ private IEnumerator FadeInBack() { yield return(new WaitForEndOfFrame()); ColorAnimator colorAnimator = back.gameObject.GetOrAdd <ColorAnimator>(); var colorData = AnimUtils.GetColorAnimData(Color.black.ChangeAlpha(0), Color.black.ChangeAlpha(0.74f), .1f, EaseType.EaseInOutQuad, back.GetComponent <RectTransform>(), BosAnimationMode.Single, () => { StartCoroutine(ShowGirlImpl()); }); colorAnimator.StartAnimation(colorData); }
private IEnumerator StartAnimationImpl(List <Vector2AnimationData> datas) { if (isWaitingForStart) { yield break; } if (IsStarted) { isWaitingForStart = true; } yield return(new WaitUntil(() => false == IsStarted)); isWaitingForStart = false; if (!IsStarted) { //this.Datas = datas; Datas.Clear(); foreach (var data in datas) { Datas.Add(new BosVector2AnimationInfo { Data = data, Direction = BosAnimationDirection.Forward }); } timer = 0f; easeFuncs.Clear(); events.Clear(); for (int i = 0; i < Datas.Count; i++) { easeFuncs.Add(AnimUtils.GetEaseFunc(Datas[i].Data.EaseType)); List <AnimationEventInfo <Vector2> > dataEvents = new List <AnimationEventInfo <Vector2> >(); if (Datas[i].Data.Events != null) { foreach (AnimationEvent <Vector2> evt in Datas[i].Data.Events) { dataEvents.Add(new AnimationEventInfo <Vector2> { Event = evt, IsCompleted = false }); } } events.Add(dataEvents); } isStartedStatus.Clear(); for (int i = 0; i < Datas.Count; i++) { isStartedStatus.Add(true); } Datas.ForEach(d => d.Data.OnStart?.Invoke(d.Data.StartValue, d.Data.Target)); } }
public override void Setup(ViewData data) { base.Setup(data); ColorAnimator colorAnimator = background.gameObject.GetOrAdd <ColorAnimator>(); colorAnimator.StartAnimation( AnimUtils.GetColorAnimData( new Color(0, 0, 0, 0), new Color(0, 0, 0, 0.83f), 0.3f, EaseType.EaseInOutQuartic, background.GetComponent <RectTransform>(), BosAnimationMode.Single)); }
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); }
IEnumerator DoIntro() { yield return(AnimUtils.Animate(1f, t => { var s = 100 - 99 * t; text.rectTransform.localScale = new Vector3(s, s, 1); })); yield return(new WaitForSeconds(2)); yield return(AnimUtils.Animate(2, t => { var s = 1 - t; text.rectTransform.localScale = new Vector3(s, s, 1); this.GetComponent <Image>().color = new Color(0, 0, 0, s); })); Destroy(this.gameObject); }
private void ToggleAdditionalObjects(bool isActive) { foreach (var obj in additionalMegaObjects) { if (isActive) { obj.Activate(); ColorAnimator colorAnimator = obj.GetComponent <ColorAnimator>(); colorAnimator?.StartAnimation(AnimUtils.GetColorAnimData(new Color(1, 1, 1, 0.5f), new Color(1, 1, 1, 0), 2, EaseType.EaseInOutQuad, obj.GetComponent <RectTransform>(), BosAnimationMode.PingPong)); } else { obj.Deactivate(); } } }
public IEnumerator FeedPlayer(PlayerController player, Food food) { if (food.Eaten) { yield break; } food.Eaten = true; player.Grow(food.Mass); float initialScale = food.transform.localScale.x; yield return(AnimUtils.LoopAction(food.FeedTime, (time) => { food.transform.localScale = Vector3.one * (1 - time) * (1 - time) * initialScale; })); Destroy(food.gameObject); }
void Start() { Player = Grid.instance.Player; Player.OnHit += HandlePlayerHit; Player.OnHeal += HandleHeal; Player.OnRuneTriggered += (message) => AnimUtils.ShowFloatingText(message, transform.position); transform.position = new Vector3(Player.Coordinates.x, Player.Coordinates.y, 0); SoundEffectSource = GameObject.Find("Player").GetComponent <AudioSource>(); attackEffects = new List <AudioClip>(new AudioClip[] { (AudioClip)Resources.Load("Sounds/thwack-01"), (AudioClip)Resources.Load("Sounds/thwack-02"), (AudioClip)Resources.Load("Sounds/thwack-04"), (AudioClip)Resources.Load("Sounds/thwack-06"), (AudioClip)Resources.Load("Sounds/thwack-07"), (AudioClip)Resources.Load("Sounds/thwack-08"), (AudioClip)Resources.Load("Sounds/thwack-09"), }); }
IEnumerator GameOverScreen() { GameOverContainer.SetActive(true); GameOverText.gameObject.SetActive(false); var replay = GameOverContainer.transform.Find("Replay").gameObject; var backToMain = GameOverContainer.transform.Find("Back to Main").gameObject; replay.SetActive(false); backToMain.SetActive(false); yield return(AnimUtils.Animate(1f, (t) => { GameOverContainer.GetComponent <Image>().color = new Color(0, 0, 0, t * 0.9f); })); yield return(new WaitForSeconds(0.25f)); if (player.newHighscoreReached == null) { // hasn't been computed yet; compute it for the first time, and store it player.newHighscoreReached = player.score > Player.HIGHSCORE; Player.HIGHSCORE = player.score; } GameOverText.text = $"<b><color=red>You succumb to insanity...</color></b>\nScore: {player.score}\nHigh Score: {Player.HIGHSCORE}"; if (player.newHighscoreReached == true) { GameOverText.text += $"\nNew high score!"; } GameOverText.gameObject.SetActive(true); yield return(AnimUtils.Animate(1, (t) => { GameOverText.color = new Color(1, 1, 1, t); })); yield return(new WaitForSeconds(0.25f)); replay.SetActive(true); yield return(new WaitForSeconds(0.25f)); backToMain.SetActive(true); }
private void MoveIn() { CanvasGroup canvasGroup = background.GetComponent <CanvasGroup>(); panelColorAnimator.StartAnimation(AnimUtils.GetColorAnimData(panel.color.ChangeAlpha(0), panel.color.ChangeAlpha(.5f), .1f, EaseType.Linear, panel.GetComponent <RectTransform>(), BosAnimationMode.Single, () => { backAlphaAnimator.StartAnimation(new FloatAnimationData { StartValue = 0, EndValue = 1, Duration = 0.15f, AnimationMode = BosAnimationMode.Single, EaseType = EaseType.EaseInOutQuad, Target = background.gameObject, OnStart = canvasGroup.UpdateAlphaFunctor(), OnUpdate = canvasGroup.UpdateAlphaTimedFunctor(), OnEnd = canvasGroup.UpdateAlphaFunctor() }); backScaleAnimator.StartAnimation(background.ConstructScaleAnimationData(new Vector3(1.5f, 1.5f, 1), new Vector3(1, 1, 1), 0.15f, BosAnimationMode.Single, EaseType.EaseInOutQuad)); })); }
public void Setup(TutorialFingerData data) { Data = data; GetComponent <RectTransform>().anchoredPosition = data.Position; if (data.IsTooltipVisible) { tooltipParent.gameObject.Activate(); tooltipText.text = data.TooltipText; SetupTooltipLayout(data); var colorData = AnimUtils.GetColorAnimData(tooltipText.color.ChangeAlpha(0), tooltipText.color, 0.3f, EaseType.EaseInOutQuad, tooltipText.GetComponent <RectTransform>(), BosAnimationMode.Single); tooltipText.gameObject.GetOrAdd <ColorAnimator>().StartAnimation(colorData); } else { tooltipParent.gameObject.Deactivate(); } if (Data.Timeout > 0f) { StartCoroutine(RemoveAfterTimeout(Data.Timeout)); } }
public void SetBadgeCount(int count) { var TabNotifyText = tabView.CustomView.FindViewById <TextView>(Resource.Id.txtTabNotification); if (count == Convert.ToInt16(TabNotifyText.Text)) { return; } badge = count; if (badge > 0) { TabNotifyText.Visibility = ViewStates.Visible; AnimUtils.ShowAnimationWithAlpha(TabNotifyText, () => { TabNotifyText.Text = $"{count}"; }); //tabView.CustomView.FindViewById<TextView>(Resource.Id.txtTabNotification).Visibility = ViewStates.Visible; } else { TabNotifyText.Text = "0"; TabNotifyText.Visibility = ViewStates.Gone; } }
private void MoveOut() { CanvasGroup canvasGroup = background.GetComponent <CanvasGroup>(); backAlphaAnimator.StartAnimation(new FloatAnimationData { StartValue = 1, EndValue = 0, Duration = 0.1f, EaseType = EaseType.EaseInOutQuad, Target = background.gameObject, OnStart = canvasGroup.UpdateAlphaFunctor(), OnUpdate = canvasGroup.UpdateAlphaTimedFunctor(), OnEnd = canvasGroup.UpdateAlphaFunctor(() => { panelColorAnimator.StartAnimation( AnimUtils.GetColorAnimData( panel.color.ChangeAlpha(.5f), panel.color.ChangeAlpha(0), 0.1f, EaseType.EaseInOutQuad, panel.GetComponent <RectTransform>())); }) }); }
private void CreateParticles() { GameObject inst = Instantiate(particlesPrefab, transform, false); RectTransform particlesTransform = inst.GetComponent <RectTransform>(); particlesTransform.anchoredPosition = new Vector2(131, -147); var basePlayerView = FindObjectOfType <BasePlayerView>(); if (!basePlayerView) { Destroy(inst); } else { particlesTransform.SetParent(basePlayerView.progressParticles.transform.parent, true); particlesTransform.GetComponent <BezierMover>().Setup(AnimUtils.GetBezierQubicData(particlesTransform.GetComponent <RectTransformPositionObject>(), start: particlesTransform.anchoredPosition, end: basePlayerView.progressParticles.GetComponent <RectTransform>().anchoredPosition, interval: 1.5f, onComplete: (go) => { Services.Execute(() => Destroy(inst), 0.5f); })); } }
private void Scale() { var scaleData = AnimUtils.GetScaleAnimData(0.01f, 1f, 0.2f, EaseType.EaseInOutQuartic, GetComponent <RectTransform>()); gameObject.GetOrAdd <Vector2Animator>().StartAnimation(scaleData); }
private IEnumerator EmitEffectImpl(GameObject prefab, int count, RectTransform startPoint, RectTransform endPoint, string rewardType, int rewardIndex) { float interval = 1; float controlPointLength = 400; for (int i = 0; i < count; i++) { yield return(new WaitForSeconds(0.06f)); GameObject instance = Instantiate <GameObject>(prefab); RectTransform rectTransform = instance.GetComponent <RectTransform>(); rectTransform.SetParent(transform, false); rectTransform.anchoredPosition = startPoint.anchoredPosition; BezierMover mover = instance.GetComponent <BezierMover>(); BezierData bezierData = null; Vector2 diff = endPoint.anchoredPosition - startPoint.anchoredPosition; if (rewardType == "playercash") { bezierData = new BezierData { Interval = interval, Type = BezierType.Quadratic, Target = instance.GetComponent <RectTransformPositionObject>(), Points = new Vector3[] { startPoint.anchoredPosition, diff * 0.5f + diff.normalized.Orthogonal() * UnityEngine.Random.Range(-controlPointLength, 0), endPoint.anchoredPosition }, OnComplete = g => Destroy(g) }; } else if (rewardType == "companycash") { bezierData = new BezierData { Interval = interval, Type = BezierType.Quadratic, Target = instance.GetComponent <RectTransformPositionObject>(), Points = new Vector3[] { startPoint.anchoredPosition, diff * 0.5f + diff.normalized.Orthogonal() * UnityEngine.Random.Range(0, controlPointLength), endPoint.anchoredPosition }, OnComplete = g => Destroy(g) }; } else { bezierData = new BezierData { Interval = interval, Type = BezierType.Quadratic, Target = instance.GetComponent <RectTransformPositionObject>(), Points = new Vector3[] { startPoint.anchoredPosition, diff * 0.5f + diff.normalized.Orthogonal() * UnityEngine.Random.Range(-controlPointLength * 0.5f, controlPointLength * 0.5f), endPoint.anchoredPosition }, OnComplete = g => Destroy(g) }; } mover.Setup(bezierData); ColorAnimator colorAnimator = instance.GetComponent <ColorAnimator>(); colorAnimator.StartAnimation(AnimUtils.GetColorAnimData(new Color(1, 1, 1, 1f), Color.white, 0.3f, EaseType.EaseInOutQuad, rectTransform, BosAnimationMode.Single, () => { colorAnimator.StartAnimation(AnimUtils.GetColorAnimData(Color.white, new Color(1, 1, 1, 1f), 0.4f, EaseType.EaseInOutQuad, rectTransform, BosAnimationMode.Single, () => { })); })); Vector3Animator scaleAnimator = instance.GetComponent <Vector3Animator>(); scaleAnimator.StartAnimation(new Vector3AnimationData { AnimationMode = BosAnimationMode.PingPong, Duration = 0.2f, EaseType = EaseType.EaseInOutQuad, StartValue = new Vector3(1, 1, 1), EndValue = new Vector3(2f, 2f, 1), Target = instance, OnStart = rectTransform.UpdateScaleFunctor(), OnUpdate = rectTransform.UpdateScaleTimedFunctor(), OnEnd = rectTransform.UpdateScaleFunctor() }); FloatAnimator rotationAnimator = instance.GetComponent <FloatAnimator>(); rotationAnimator.StartAnimation(new FloatAnimationData { Duration = interval, AnimationMode = BosAnimationMode.Single, EaseType = EaseType.Linear, StartValue = 0, EndValue = 720, Target = instance, OnStart = rectTransform.UpdateZRotation(), OnUpdate = rectTransform.UpdateZRotationTimed(), OnEnd = rectTransform.UpdateZRotation() }); } yield return(new WaitForSeconds(interval - 0.1f)); CompleteRewardIndex(rewardIndex); }
private void ScaleOut() => gameObject.GetOrAdd <Vector2Animator>().StartAnimation( AnimUtils.GetScaleAnimData(0.95f, 1, 0.15f, EaseType.EaseInOutCubic, gameObject.GetComponent <RectTransform>()) );
private void PrepareAnimationObject(GameObject obj) { RectTransform trs = obj.GetComponent <RectTransform>(); Image image = obj.GetComponent <Image>(); Vector3Animator scaleAnimator = obj.GetComponent <Vector3Animator>(); ColorAnimator colorAnimator = obj.GetComponent <ColorAnimator>(); BezierMover mover = obj.GetComponent <BezierMover>(); RectTransformPositionObject positionObject = obj.GetComponent <RectTransformPositionObject>(); Vector3AnimationData scaleData = new Vector3AnimationData() { AnimationMode = BosAnimationMode.Single, Duration = interval * 0.5f, EaseType = EaseType.EaseInOutQuad, EndValue = Vector3.one * 1.25f, Events = null, StartValue = Vector3.one, Target = obj, OnStart = (s, o) => trs.localScale = s, OnUpdate = (s, t, o) => trs.localScale = s, OnEnd = (s, o) => { trs.localScale = s; Vector3AnimationData scale2Data = new Vector3AnimationData() { StartValue = Vector3.one * 1.25f, EndValue = Vector3.one, Duration = interval * 0.5f, EaseType = EaseType.EaseInOutQuad, Target = obj, OnStart = (s2, o2) => trs.localScale = s2, OnUpdate = (s2, t2, o2) => trs.localScale = s2, OnEnd = (s2, o2) => trs.localScale = s2 }; scaleAnimator.StartAnimation(scale2Data); ColorAnimationData colorData = new ColorAnimationData() { StartValue = Color.white, EndValue = new Color(1, 1, 1, 0.2f), Duration = interval * 0.5f, EaseType = EaseType.EaseInOutQuad, Target = obj, OnStart = (c2, o2) => image.color = c2, OnUpdate = (c2, t2, o2) => image.color = c2, OnEnd = (c2, o2) => image.color = c2 }; colorAnimator.StartAnimation(colorData); } }; scaleAnimator.StartAnimation(scaleData); var bezierData = AnimUtils.GetBizerQuadData(positionObject, startObject.anchoredPosition, endObject.anchoredPosition, interval * 1.1f, (go) => Destroy(go), linerFactor, orthoFactor); mover.Setup(bezierData); }
public IEnumerator actionTaken(bool delay, Action then) { _elapsedTurns += 1; EnqueueEvent(new GameEvent(GameEvent.EventType.TURN_ELAPSED)); var turnWaitDuration = delay ? 0.25f : 0; // wait 0.2f seconds yield return(new WaitForSeconds(turnWaitDuration)); ClearEventQueue(); Entities.FindAll(e => e.Dead).ForEach(e => { e.GoDie(); Rune rune = e.RuneList[0]; if (rune != null) { AnimUtils.ShowFloatingText("Rune Shard Recovered!", new Vector3(e.Coordinates.x, e.Coordinates.y, 0)); if (UnityEngine.Random.value > 0.5f) { Player.AddRuneShard(rune.action); } else { Player.AddRuneShard(rune.trigger); } } this.EnqueueEvent(new GameEvent(GameEvent.EventType.ENEMY_DEAD)); }); Entities.RemoveAll(e => e.Dead); bool enemiesMoved = false; foreach (var e in Enemies) { e.TakeTurn(); // if (e.isVisible) { enemiesMoved = true; // yield return new WaitForSeconds(turnWaitDuration); // } } ClearEventQueue(); // We want to prevent movement scumming, so if the player hasn't been hit in 75 turns, spawn some enemies if (++Player.TurnsSinceHitByEnemy >= 200) { var positions = EnumerateCircle(Player.Coordinates, 3) .Where(pos => canOccupy(pos)) .ToList() .Shuffle() .Take(2); foreach (var pos in positions) { Enemy enemy = new Enemy0(pos); AddEntity(enemy); OnEntityAdded(enemy); } Player.TurnsSinceHitByEnemy = 0; } if (enemiesMoved) { yield return(new WaitForSeconds(turnWaitDuration)); } /// Move onto the next floor! if (Tiles[Player.Coordinates.x, Player.Coordinates.y] is Downstairs) { Player.score += 10; OnCleared?.Invoke(); } then(); }
public T GetAnimParameter <T>(string param) { return((T)AnimUtils.GetParameter <T>(Animator, param)); }
public void SetAnimParameter(string param, object value) { AnimUtils.SetParameter(Animator, param, value, AnimParams.IsTrigger(param)); }