Пример #1
0
        public override void Enable()
        {
            base.Enable();

            var context = Behaiour.Context;

            context.SetValue(ActionConsts.Unit, this);

            Behaiour.SelectState(BehaiourState.Create);

            _particle?.Clear();
        }
Пример #2
0
        public new void Construct(IScoreManager scoreManager)
        {
            _particle = GetComponentInChildren <ParticleSystem>();

            var createState = new Sequence(
                new CheckCrystal(),
                new CustomAction(c =>
            {
                _particle?.Play();
                scoreManager.AddScore(1);
            }),
                new WaitForSecondAction(_particle != null ? _particle.main.duration : 0),
                new DestroyEntity()
                );

            Behaiour.Register(BehaiourState.Create, createState);
        }
Пример #3
0
        public new void Construct(GameField field, FieldElement.Factory elementFactory)
        {
            _field    = field;
            _animator = GetComponent <Animator>();

            var createState = new Sequence(
                new CheckUnitLeave(),
                new CreateNewTile(field),
                new WaitForSecondAction(0.15f),
                new CustomAction(c =>
            {
                _animator?.SetBool("Destroy", true);
            }),
                new WaitForSecondAction(1.0f),
                new DestroyTile(field)
                );

            Behaiour.Register(BehaiourState.Create, createState);
        }
Пример #4
0
        public void Construct(IInputManager input, StartWindow.Factory startWindow, IScoreManager scoreManager)
        {
            var createState = new Sequence(
                new ParallelSelector(
                    new MoveUnit(),
                    new SwitchMoveDirection(input),
                    new CheckUnitInField()
                    ),
                new DropBall(),
                new CustomAction(c =>
            {
                scoreManager.Finish();
                startWindow.Create();
            }),
                new DestroyEntity()
                );

            Behaiour.Register(BehaiourState.Create, createState);
        }