Пример #1
0
    public void Execute()
    {
        foreach (var entity in _entities.GetEntities())
        {
            if (!entity.hasTranslateToPosition)
            {
                continue;
            }

            var dir         = GameExtension.GetCanvasPosition(entity.gridPosition.value) - entity.canvasPosition.value;
            var newPosition = entity.canvasPosition.value + dir.normalized * entity.translateToPosition.startSpeed * Time.deltaTime;
            entity.ReplaceCanvasPosition(newPosition);

            var dist = dir.magnitude;
            if (dist <= _contexts.game.sharedVal.value.minDistance)
            {
                //complete
                entity.ReplaceCanvasPosition(GameExtension.GetCanvasPosition(entity.gridPosition.value));
                entity.RemoveTranslateToPosition();
                entity.isMoveComplete          = true;
                entity.isOutOfRange            = false;
                entity.isInterpolationComplete = true;
            }
        }
    }
Пример #2
0
 /// <summary>
 /// The main entry point for the application.
 /// </summary>
 static void Main(string[] args)
 {
     using (GameExtension game = new GameExtension())
     {
         game.Run();
     }
 }
Пример #3
0
    public void Play(ulong amount, Vector3 position, bool isCircle)
    {
        var finalDuration   = isCircle ? duration * 1.5f : duration;
        var durationSection = finalDuration / 4;

        transform.localScale           = startScale;
        rectTransform.anchoredPosition = position;
        canvasGroup.alpha = 0f;
        goldTxt.text      = GameExtension.ConvertGold(amount);


        var targetScale = startScale + scaleRange;

        transform.DOScale(targetScale, finalDuration).SetEase(ease).OnComplete(Remove);
        transform.DOShakeScale(finalDuration, shakeStrength);

        canvasGroup.DOFade(1, durationSection);
        canvasGroup.DOFade(0, durationSection).SetDelay(durationSection * 3);

        if (targetPos != Vector3.zero)
        {
            rectTransform.DOAnchorPos(targetPos, finalDuration).SetEase(ease);
        }
        else
        {
            var targetYPos = transform.position.y + upAmount;
            rectTransform.DOAnchorPosY(targetYPos, finalDuration).SetEase(ease);
        }
    }
Пример #4
0
        protected override void OnDeactivated(DeactivationEventArgs eventArgs)
        {
            if (eventArgs.Closed)
            {
                _gameExtension.GameLogicUpdating -= OnGameLogicUpdating;
                _gameExtension = null;

                Document.PropertyChanged -= OnDocumentPropertyChanged;
                Reset(true, true);
            }

            base.OnDeactivated(eventArgs);
        }
Пример #5
0
        protected override void OnActivated(ActivationEventArgs eventArgs)
        {
            if (eventArgs.Opened)
            {
                _gameExtension = Document.Editor.Extensions.OfType <GameExtension>().FirstOrDefault().ThrowIfMissing();
                _gameExtension.GameLogicUpdating += OnGameLogicUpdating;

                Document.PropertyChanged += OnDocumentPropertyChanged;
                Initialize();
            }

            base.OnActivated(eventArgs);
        }
Пример #6
0
    void Start()
    {
        this._contexts = Contexts.sharedInstance;
        this._contexts.game.SetSharedVal(this.sharedValues);
        this._contexts.game.SetPayLines(this.paylines);

        this._contexts.game.SetTesting(testing);
        SetPayLines();
        this._contexts.game.SetPayLinesTries(this._trie);
        GameExtension.SetContexts(this._contexts);

        this._systems = CreateSystems();
        this._systems.Initialize();
        LoadPayLines();
    }
Пример #7
0
    public void Initialize()
    {
        var dimension = this._contexts.game.sharedVal.value.dimension;

        for (var y = 0; y < dimension.y; y++)
        {
            for (var x = 0; x < dimension.x; x++)
            {
                GameExtension.CreateEntity(
                    this._contexts,
                    new Dimension(x, y),
                    y != 0
                    );
            }
        }
    }
    public void Spin(float delay, float acceleration, float speed)
    {
        if (_spinSettings.endSpin == SpinType.All)
        {
            _delayAmount = 0f;
        }
        else
        {
            _delayAmount = _index * delay;
        }

        _acceleration  = acceleration <= 0 ? GameExtension.GetRandomValue(_spinSettings.acceleration) : acceleration;
        _timeCounter   = 0f;
        _currentSpeed  = speed <= 0f ? GameExtension.GetRandomValue(_spinSettings.startSpeed) : speed;
        _yOffset       = 0f;
        _increaseSpeed = true;
        _inClamp       = false;
        _inSpin        = true;
        OnSpinStart?.Invoke(this._index);
    }
    public void Spin()
    {
        if (!_inSpin)
        {
            horizontalLayout.enabled = false;
            _inSpin       = true;
            _acceleration = settings.spinSettings.useSameAcceleration
                ? GameExtension.GetRandomValue(settings.spinSettings.acceleration)
                : 0f;

            _speed = settings.spinSettings.useSameSpeed
                ? GameExtension.GetRandomValue(settings.spinSettings.startSpeed)
                : 0f;

            _delayAmongReel = GameExtension.GetRandomValue(settings.spinSettings.delayAmongReels);

            if (settings.spinSettings.startSpin == SpinType.All)
            {
                foreach (var reel in reels)
                {
                    reel.ResetShape();
                    reel.Spin(_delayAmongReel, _acceleration, _speed);
                }
            }
            else if (settings.spinSettings.startSpin == SpinType.Single)
            {
                //start spin the first reel
                reels[0].ResetShape();
                reels[0].Spin(_delayAmongReel, _acceleration, _speed);

                //init delay variables

                _timeCounter  = 0;
                _reelIndex    = 1;
                _isSingleSpin = true;
            }
        }
        UIManager.Instance.UpdateSpinBtn(_inSpin);
    }
 public void OnClickSpin()
 {
     GameExtension.OnClickSpinButton();
 }
 public void OnClickStopSpin()
 {
     GameExtension.OnStopSpin();
 }
Пример #12
0
 private void UpdateCircleCost()
 {
     addNewCircleBtn.GetComponentInChildren <Text>().text = GameExtension.ConvertGold(_parent.GetNextCircleCost);
 }
Пример #13
0
 private void ConvertGold(ulong amount)
 {
     print(GameExtension.ConvertGold(amount));
 }
Пример #14
0
 private void SetGold(ulong value)
 {
     goldTxt.text = GameExtension.ConvertGold(value);
 }
Пример #15
0
 public void UpdateUpgradeCircleCost()
 {
     upgradeCircleBtn.GetComponentInChildren <Text>().text = GameExtension.ConvertGold(_parent.GetUpgradeCircleCost);
 }
 public void UpdateGold(uint amount)
 {
     goldTxt.text = GameExtension.ConvertGold(amount);
 }
Пример #17
0
 private void UpdateUpgradeCost()
 {
     upgradeLevelBtn.GetComponentInChildren <Text>().text = GameExtension.ConvertGold(_parent.GetUpgradeCost());
 }