Esempio n. 1
0
        private float getCurTime(ISyncScenarioItem item)
        {
            float curTime = 0.0f;

            if (item is MoveTween)
            {
                MoveTween tSh = (item as MoveTween);
                if (tSh != null)
                {
                    curTime = tSh.CurTime;
                }
            }

            if (item is AlphaTween)
            {
                AlphaTween tF = (item as AlphaTween);

                if (tF != null)
                {
                    curTime = tF.CurTime;
                }
            }

            if (item is ScaleTween)
            {
                ScaleTween tF = (item as ScaleTween);

                if (tF != null)
                {
                    curTime = tF.CurTime;
                }
            }

            return(curTime);
        }
Esempio n. 2
0
 private void Update()
 {
     if (currentItem.IsNullOrComplete() && Input.GetKeyUp(KeyCode.Space))
     {
         currentItem = GetExplosionItem(time).PlayRegisterAndReturnSelf();
     }
 }
Esempio n. 3
0
        public override void StartTurn(UnitController unit)
        {
            base.StartTurn(unit);
            _selectionAnimation?.Stop();
            _selectionAnimation = GetSelectionAnimation().PlayAndReturnSelf();

            UIDragController.Instance.Activate(unit.Position);
            UIDragController.Instance.Swipe += OnSwipe;
        }
Esempio n. 4
0
        public void OnHealthChanged(CharacterStat stat)
        {
            if (_prevHealthValue > stat.CurrentValue)
            {
                _damageTakenItem?.Stop();
                _damageTakenItem = DamageEffect.GetExplosionItem(0.3f).PlayRegisterAndReturnSelf();
            }

            _prevHealthValue = stat.CurrentValue;
        }
Esempio n. 5
0
        public void Play()
        {
            started = true;

            scenarioItem = scenarioItemProvider();
            if (null != scenarioItem)
            {
                scenarioItem.Play();
            }
        }
        public override ISyncScenarioItem Apply(CastContext castContext)
        {
            if (!CouldCast || !activeAbilityConfig.CouldApply(castContext, Level))
            {
                return(null);
            }
            var scenarioItem = base.Apply(castContext);

            CurrentCooldown  = activeAbilityConfig.Cooldown.GetValue(Level);
            cooldownScenario = new IterateActionScenarioItem((leftTime) => { CurrentCooldown = leftTime; }, CurrentCooldown).PlayAndReturnSelf();
            return(scenarioItem);
        }
Esempio n. 7
0
        public override void StartTurn(UnitController unit)
        {
            base.StartTurn(unit);

            _turnScenarioItem = new SyncScenario(
                new CompleteScenarioItemConditionWaiter(
                    CurrentUnit.CastAbility(new CastContext {
                Caster = unit
            }),
                    true),
                new ActionScenarioItem(() => Game.Instance.NextTurn())
                ).PlayAndReturnSelf();
        }
Esempio n. 8
0
 public void SetValue(float value, bool instant = false)
 {
     _currentValue = Mathf.Clamp01(value);
     if (instant)
     {
         UpdateView();
     }
     else
     {
         _scenario?.Stop();
         _scenario = new SizeTween(_foreground.rectTransform, GetEndSize(), 0.3f, EaseType.Linear);
         _scenario.Play();
     }
 }
Esempio n. 9
0
 private SyncScenario GetSelectionAnimation()
 {
     return(new SyncScenario(
                new List <ISyncScenarioItem> {
         new ScaleTween(CurrentUnit.Selection, Vector3.one),
         new ScaleTween(CurrentUnit.Selection, Vector3.one * 1.3f, 0.3f, EaseType.BounceInOut),
         new ScaleTween(CurrentUnit.Selection, Vector3.one, 0.2f, EaseType.QuadIn),
         new TimeWaiterScenarioItem(0.4f)
     },
                (s, interrupted) =>
     {
         new ScaleTween(CurrentUnit.Selection, Vector3.one * 0.5f).Play();
         if (!interrupted)
         {
             _selectionAnimation = GetSelectionAnimation().PlayAndReturnSelf();
         }
     }));
 }
Esempio n. 10
0
        public ISyncScenarioItem OpenScreen(ScreenType screenTypeType, float duration = 0.3f)
        {
            if (TopScreen != null && TopScreen.ScreenType == screenTypeType || _currentTransition != null)
            {
                return(null);
            }

            var screenToOpen = _screensByType[screenTypeType];

            _currentTransition?.Stop();

            var transitions = new List <ISyncScenarioItem>();

            if (!screenToOpen.IsPopup && TopScreen != null)
            {
                transitions.Add(TopScreen.GetHideTransition(duration));
            }

            transitions.Add(screenToOpen.GetShowTransition(duration));

            _currentTransition = new SyncScenario(
                new List <ISyncScenarioItem>()
            {
                new CompositeItem(transitions)
            },
                (scenario, result) =>
            {
                TopScreen?.UnFocus();
                if (!screenToOpen.IsPopup && TopScreen != null)
                {
                    _openScreens.Remove(TopScreen);
                }
                _openScreens.Add(screenToOpen);
                screenToOpen.Focus();
                _currentTransition = null;
            });

            return(_currentTransition.PlayAndReturnSelf());
        }
Esempio n. 11
0
        public virtual void Play()
        {
            complete = false;
            isPaused = false;
            if (syncScenarioItem == null)
            {
                if (syncScenarioItemGetter == null)
                {
                    Stop();
                    return;
                }

                syncScenarioItem = syncScenarioItemGetter();
            }
            if (!isStarted)
            {
                syncScenarioItem.Play();
            }
            if (playCoroutine == null)
            {
                playCoroutine = waitCoroutine();
            }
            SyncCode.Instance.StartCoroutine(playCoroutine);
        }
Esempio n. 12
0
 public static bool IsNullOrComplete(this ISyncScenarioItem item)
 {
     return(item == null || item.IsComplete());
 }
Esempio n. 13
0
 public LazyScenarioItem(Func <ISyncScenarioItem> scenarioItemProvider)
 {
     this.started = false;
     this.scenarioItemProvider = scenarioItemProvider;
     this.scenarioItem         = null;
 }
Esempio n. 14
0
 public virtual ISyncScenarioItem Attach(CastContext castContext)
 {
     attachScenario?.Stop();
     attachScenario = Config.Attach(castContext, Level);
     return(attachScenario);
 }
Esempio n. 15
0
 public CompleteScenarioItemConditionWaiter(ISyncScenarioItem syncScenarioItem, bool isStarted = false)
 {
     this.syncScenarioItem = syncScenarioItem;
     this.isStarted        = isStarted;
 }
Esempio n. 16
0
 public static ISyncScenarioItem PlayRegisterAndReturnSelf(this ISyncScenarioItem item)
 {
     item.Play();
     MapController.Instance.AddScenario(item);
     return(item);
 }
Esempio n. 17
0
 public virtual ISyncScenarioItem Apply(CastContext castContext)
 {
     castScenario?.Stop();
     castScenario = Config.Apply(castContext, Level);
     return(castScenario);
 }
Esempio n. 18
0
 public void AddValue(Vector3 endPosition, float duration, EaseType easing, ISyncScenarioItem tween)
 {
     positions.Add(endPosition);
     durations.Add(duration);
     tweens.Add(tween);
 }
Esempio n. 19
0
 public void AddScenario(ISyncScenarioItem scenarioItem)
 {
     _allScenarios.Add(scenarioItem);
 }
Esempio n. 20
0
 public static ISyncScenarioItem PlayAndReturnSelf(this ISyncScenarioItem item)
 {
     item.Play();
     return(item);
 }