public void Run()
 {
     foreach (var i in _filter)
     {
         _filter.Get2(i).Value += _filter.Get2(i).Value;
     }
 }
        void IEcsRunSystem.Run()
        {
            if (_pieces.IsEmpty())
            {
                return;
            }

            var board = _boards.Get1(0);

            var offsets = new int[board.Size.X];

            foreach (var i in _pieces)
            {
                offsets[_pieces.Get2(i).Value.X]++;
            }

            foreach (var i in _pieces)
            {
                var value    = _pieces.Get1(i).Value;
                var position = _pieces.Get2(i).Value;

                var view = _viewService.CreatePieceView(value, position.X, position.Y + offsets[position.X]);
                view.UpdatePosition(position.X, position.Y);

                _pieces.GetEntity(i).Get <View>().Value = view;
            }
        }
Esempio n. 3
0
    void IEcsRunSystem.Run()
    {
        if (!MultiplayerManager.IsMaster)
        {
            return;
        }

        foreach (var p in players)
        {
            var view = players.Get1(p).view;

            if (!view.GetComponent <PhotonView>())
            {
                continue;
            }

            if (players.Get2(p).enemyTarget)
            {
                var playerPos = view.transform.position;
                var enemyPos  = players.Get2(p).enemyTarget.position;

                var direction = enemyPos - playerPos;
                direction.x *= -1f;

                float angleTarget  = Vector2.SignedAngle(direction, Vector2.up);
                float angleCurrent = view.transform.rotation.eulerAngles.z;
                float angle        = Mathf.LerpAngle(angleCurrent, angleTarget, .1f);

                Quaternion rotation = Quaternion.Euler(0, 0, angle);
                view.transform.rotation = rotation;
            }
        }
    }
Esempio n. 4
0
        void IEcsRunSystem.Run()
        {
            if (_selected.GetEntitiesCount() < 2)
            {
                return;
            }

            var mismatch = false;

            var value = _selected.Get2(0).Value;

            foreach (var i in _selected)
            {
                if (_selected.Get2(i).Value != value)
                {
                    mismatch = true;
                    break;
                }
            }

            foreach (var i in _selected)
            {
                var entity = _selected.GetEntity(i);
                if (mismatch)
                {
                    entity.Get <Mismatched>();
                }
                else
                {
                    entity.Get <Matched>();
                }
                entity.Del <Selected>();
            }
        }
Esempio n. 5
0
        void IEcsRunSystem.Run()
        {
            if (_tank.Get2(0)[email protected])
            {
                _health.transform.position = _sceneInfo._cam.WorldToScreenPoint(_tank.Get2(0).transform.position + new Vector3(0, 0, 2.5f));
                _health.value = _tank.Get3(0).health.Remap(0, _tank.Get3(0).startHealth, 0, 1);
            }
            else
            {
                _health.gameObject.SetActive(false);
            }

            foreach (var i in _state)
            {
                switch (_state.Get1(i).gameState)
                {
                case GameState.Play:
                    break;

                case GameState.Pause:
                    break;

                case GameState.End:
                    _endGame.SetActive(true);
                    break;

                case GameState.Quit:
                    break;
                }
            }
        }
Esempio n. 6
0
        void IEcsRunSystem.Run()
        {
            foreach (var i in ecsFilter)
            {
                Rigidbody x = ecsFilter.Get1(i).rb;
                x.velocity = new Vector3(x.velocity.x, x.velocity.y, -ecsFilter.Get2(i).speed);

                if (x.transform.localPosition.z < -ecsFilter.Get2(i).tpDistance * 2)
                {
                    x.transform.localPosition = new Vector3(x.transform.localPosition.x, x.transform.localPosition.y, ecsFilter.Get2(i).tpDistance * 2 * (ecsFilter.Get2(i).tylesCount - 1));
                }
            }
        }
Esempio n. 7
0
        void IEcsRunSystem.Run()
        {
            float jumpForce = _injectData.JumpForce;

            foreach (var i in _filter)
            {
                var entity = _filter.GetEntity(i);

                _filter.Get1(i).Animator.SetBool(JUMP_PROPERTY_NAME, true);
                var up = _filter.Get2(i).NormalToGround;
                //Add Jump data
                ref var attractor = ref _filter.Get2(i);
                ref var jump      = ref entity.Get <JumpData>();
Esempio n. 8
0
        void IEcsRunSystem.Run()
        {
            if (_inputFilter.IsEmpty() || !_movingFilter.IsEmpty())
            {
                return;
            }

            _trajectory.Clear();

            var position  = _origin;
            var direction = _inputFilter.Get2(0).Value - position;

            var hitBubbleView = HitTest(position, direction, _trajectory);

            if (!hitBubbleView)
            {
                return;
            }

            Vector2Int hitBubblePosition = Vector2Int.zero;

            foreach (var i in _bubbleFilter)
            {
                if (_bubbleFilter.Get3(i).Value == hitBubbleView)
                {
                    hitBubblePosition = _bubbleFilter.Get2(i).Value;
                    break;
                }
            }

            var newBubblePosition =
                NewBubblePosition(hitBubblePosition, hitBubbleView.transform.position, _trajectory.Last());

            if (!newBubblePosition.HasValue)
            {
                return;
            }

            foreach (var point in _trajectory)
            {
                var trajectory = _world.NewEntity();
                trajectory.Get <Trajectory>();
                trajectory.Get <WorldPosition>().Value = point;
            }

            var prediction = _world.NewEntity();

            prediction.Get <Prediction>();
            prediction.Get <Position>().Value = newBubblePosition.Value;
        }
Esempio n. 9
0
 public void Run()
 {
     if (_gameState.State == State.Game)
     {
         var deltaTime = Time.deltaTime;
         foreach (var index in _filter)
         {
             var transform = _filter.Get1(index).Transform;
             var direction = _filter.Get2(index).Direction;
             var speed     = _filter.Get2(index).Speed;
             speed += _configuration.SpeedUpPerCoin * _gameState.CoinsCount;
             transform.Translate(direction * speed * deltaTime);
         }
     }
 }
 void IEcsRunSystem.Run()
 {
     foreach (var e in events)
     {
         foreach (var p in players)
         {
             var view = players.Get1(p).view;
             if (view.photonView.ViewID == events.Get1(e).ViewID)
             {
                 players.Get2(p).Value = events.Get1(e).hp;
                 players.Get2(p).Value = Mathf.Clamp(players.Get2(p).Value, 0, int.MaxValue);
             }
         }
     }
 }
Esempio n. 11
0
        void IEcsRunSystem.Run()
        {
            _occupiedCache.Clear();
            foreach (var i in _tiles)
            {
                _occupiedCache.Add(_tiles.Get2(i).Value);
            }

            foreach (var i in _tiles)
            {
                var position = _tiles.Get2(i).Value;

                var leftLocked = false;
                foreach (var coord in TileGridUtils.LeftNeighbours)
                {
                    if (_occupiedCache.Contains(position + coord))
                    {
                        leftLocked = true;
                        break;
                    }
                }

                var rightLocked = false;
                foreach (var coord in TileGridUtils.RightNeigbours)
                {
                    if (_occupiedCache.Contains(position + coord))
                    {
                        rightLocked = true;
                        break;
                    }
                }

                if (leftLocked && rightLocked)
                {
                    _tiles.GetEntity(i).Get <Locked>();
                    continue;
                }

                foreach (var coord in TileGridUtils.TopNeigbours)
                {
                    if (_occupiedCache.Contains(position + coord))
                    {
                        _tiles.GetEntity(i).Get <Locked>();
                        continue;
                    }
                }
            }
        }
Esempio n. 12
0
    void IEcsRunSystem.Run()
    {
        foreach (var p in events)
        {
            foreach (var idx in players)
            {
                ref var player = ref players.Get1(idx);

                if (player.view == events.Get1(p).player)
                {
                    ref var hp = ref players.Get2(idx);

                    if (player.view.IsMine())
                    {
                        //Debug.Log(events.Get1(p).damageData.Damage);
                        hp.Value -= events.Get1(p).damageData.Damage;
                        hp.Value  = Mathf.Clamp(hp.Value, 0, int.MaxValue);
                        events.Get1(p).player.OnDamage(hp.Value);
                    }

                    if (hp.Value <= 0)
                    {
                        players.GetEntity(idx).Get <DestroyEvent>().DestroyerID = events.Get1(p).damageData.OwnerId;
                    }
                }
            }
Esempio n. 13
0
        void IEcsRunSystem.Run()
        {
            float delta = Time.deltaTime;

            foreach (var i in _filter)
            {
                var     body      = _filter.Get1(i);
                ref var attractor = ref _filter.Get2(i);
                var     entity    = _filter.GetEntity(i);
                // If entity is moving
                if (entity.Has <PhysicTranslation>())
                {
                    SetNotSleepping(ref attractor, entity);
                    continue;
                }
                bool wannaSleep = (body.Value.velocity.sqrMagnitude <= SLEEP_THRESHOLD);
                // Not want sleep
                if (!wannaSleep)
                {
                    SetNotSleepping(ref attractor, entity);
                }
                // Put to sleep
                else if (attractor.TimeToSleep >= SLEEP_DELLAY)
                {
                    entity.Get <WannaSleepTag>();
                }
                // Tick
                else
                {
                    attractor.TimeToSleep += delta;
                }
            }
Esempio n. 14
0
        public void Run()
        {
            foreach (var index in _filter)
            {
                var position  = _filter.Get2(index).value.transform.position;
                var takenType = _filter.Get1(index).value;

                SignView signView = null;
                switch (takenType)
                {
                case SignType.Cross:
                    signView = _configuration.CrossView;
                    break;

                case SignType.Ring:
                    signView = _configuration.RingView;
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
                var instance = UnityEngine.Object.Instantiate(signView, position, Quaternion.identity);
                _filter.GetEntity(index).Get <TakenRef>().value = instance;
            }
        }
Esempio n. 15
0
 public void Run()
 {
     foreach (int machine in _machineEntities)
     {
         var machineComponent     = _machineEntities.Get1(machine);
         var framesPerMachineFreq = (int)((1.0 / machineComponent.frequency) / Time.deltaTime);
         if (framesPerMachineFreq > 0 && Time.frameCount % framesPerMachineFreq == 0)
         {
             var       positionComponent = _machineEntities.Get2(machine);
             ref var   machineEntity     = ref _machineEntities.GetEntity(machine);
             SpawnItem spawnItem;
             spawnItem.Position = positionComponent.Position;
             spawnItem.Rotation = Random.rotation;
             float angle1    = Random.Range(-machineComponent.angle, machineComponent.angle);
             float angle2    = Random.Range(-machineComponent.angle, machineComponent.angle);
             var   velocityX = machineComponent.power * Mathf.Sin(Mathf.Deg2Rad * angle1);
             var   velocityY = machineComponent.power * Mathf.Sin(Mathf.Deg2Rad * angle2);
             var   velocityZ = -machineComponent.power;
             spawnItem.Velocity       = new Vector3(velocityX, velocityY, velocityZ);
             spawnItem.SetNewPosition = true;
             spawnItem.SetNewRotation = true;
             spawnItem.SetNewVelocity = true;
             spawnItem.Tag            = "Bomb";
             spawnItem.PrefabIndex    = -1;
             machineEntity.Get <PoolSpawnFrame>().ToSpawn = new List <SpawnItem> {
                 spawnItem
             };
         }
     }
Esempio n. 16
0
        public void Run()
        {
            foreach (var i in createRequests)
            {
                var newObject = createRequests.Get1(i).transform;
                var entity    = createRequests.GetEntity(i);

                var position = newObject.position.ToVector2Int();
                worldService.worldField[position.x][position.y].Add(entity);
                entity.Get <PositionComponent>().position     = position;
                entity.Get <WorldObjectComponent>().transform = newObject;
            }

            foreach (var i in positionRequests)
            {
                ref var positionComponent = ref positionRequests.Get1(i);
                var     oldPosition       = positionComponent.position;
                var     newPosition       = positionRequests.Get2(i).newPosition;
                var     entity            = positionRequests.GetEntity(i);

                worldService.worldField[oldPosition.x][oldPosition.y].Remove(entity);
                worldService.worldField[newPosition.x][newPosition.y].Add(entity);

                positionComponent.position = newPosition;
            }
Esempio n. 17
0
        void IEcsRunSystem.Run()
        {
            // add your run code here.
            foreach (var index in _filterUnplaced)
            {
                ref Price pr = ref _filterUnplaced.Get2(index);

                if (Input.GetMouseButtonDown(0))
                {
                    if (!EventSystem.current.IsPointerOverGameObject())
                    {
                        if (SingleTone.Wallet >= pr.value)
                        {
                            _filterUnplaced.GetEntity(index).Del <Unplaced>();
                            SingleTone.currentrlyHeld  = null;
                            SingleTone.IsMouseOccupied = false;

                            SingleTone.Wallet -= pr.value;
                        }
                        else
                        {
                            SingleTone.ui.NotEnoughMoney();
                        }
                    }
                }
            }
Esempio n. 18
0
        void IEcsRunSystem.Run()
        {
            if (_gameState.Score % 10 != 0 || _newCubeFilter.IsEmpty() || !NewCubeIsOnTop())
            {
                return;
            }

            _scene.Camera.transform.DOLocalMove(new Vector3(0, 10f, 10f), 1f).SetRelative(true);

            bool NewCubeIsOnTop()
            {
                var maxCubeY = 0;

                foreach (var i in _cubeFilter)
                {
                    var cubeY = _cubeFilter.Get2(i).Value.y;
                    if (cubeY > maxCubeY)
                    {
                        maxCubeY = cubeY;
                    }
                }
                var newCubeY = _newCubeFilter.Get3(0).Value.y;

                return(newCubeY > maxCubeY);
            }
        }
Esempio n. 19
0
 public void Run()
 {
     foreach (var index in _filter)
     {
         ref var position = ref _filter.Get1(index);
         position.value += _filter.Get2(index).value *_gameState.PlayerMovementSpeed *Time.deltaTime;
     }
    void IEcsRunSystem.Run()
    {
        foreach (var p in players)
        {
            var     view = players.Get1(p).view;
            ref var move = ref players.Get2(p);

            if (!view.GetComponent <PhotonView>())
            {
                continue;
            }

            if (view.GetComponent <PhotonView>().IsMine)
            {
                if (joystick.Direction == Vector2.zero)
                {
                    var x = Input.GetAxis("Horizontal");
                    var y = Input.GetAxis("Vertical");
                    move.Value = new Vector2(x, y) * Time.deltaTime * move.Speed;
                }
                else
                {
                    move.Value = joystick.Direction * Time.deltaTime * move.Speed;
                }
            }
        }
Esempio n. 21
0
 void IEcsRunSystem.Run()
 {
     // add your run code here.
     foreach (var index in _asteroidFilter)
     {
         ref TransformRef   asteroidTransformRefComponent   = ref _asteroidFilter.Get2(index);
         ref ColliderRadius asteroidColliderRadiusComponent = ref _asteroidFilter.Get3(index);
Esempio n. 22
0
 public void Run()
 {
     for (int i = 0, iMax = _filter.GetEntitiesCount(); i < iMax; i++)
     {
         _filter.Get3(i).Value += (_filter.Get1(i).Value + _filter.Get2(i).Value) * Time;
     }
 }
Esempio n. 23
0
        public void Run()
        {
            foreach (var i in entities)
            {
                ref var movement        = ref entities.Get2(i);
                var     currentPosition = entities.Get1(i).position;
                var     targetPosition  = entities.Get3(i).target;

                Directions?newHeading       = null;
                Directions?alternateHeading = null;
                var        sqrMagnitude     = (targetPosition - currentPosition).sqrMagnitude;
                foreach (var direction in DirectionUtils.availableDirections)
                {
                    var possiblePosition = direction.GetPosition(currentPosition);
                    if (WallOnPosition(possiblePosition))
                    {
                        continue;
                    }

                    var possibleSqrMagnitude = (targetPosition - possiblePosition).sqrMagnitude;
                    if (possibleSqrMagnitude <= sqrMagnitude)
                    {
                        newHeading   = direction;
                        sqrMagnitude = possibleSqrMagnitude;
                    }
                    else
                    {
                        alternateHeading = direction;
                    }
                }

                movement.heading = newHeading ?? alternateHeading ?? movement.heading;
            }
 void IEcsRunSystem.Run()
 {
     // add your run code here.
     foreach (var index in _filterBullet)
     {
         ref TargetID     targetIDComponent     = ref _filterBullet.Get2(index);
         ref TransformRef transformRefComponent = ref _filterBullet.Get3(index);
Esempio n. 25
0
 public void Run()
 {
     foreach (var i in _playerMovementPresentationFilter)
     {
         ref var movementPresentation = ref _playerMovementPresentationFilter.Get2(i);
         _playerMovementPresenter.Present(movementPresentation);
     }
        void IEcsRunSystem.Run()
        {
            foreach (var i in _bubbleFilter)
            {
                var     entity = _bubbleFilter.GetEntity(i);
                var     view   = _bubbleFilter.Get2(i).Value;
                Vector2 position;

                if (entity.Has <WorldPosition>())
                {
                    position = entity.Get <WorldPosition>().Value;
                }
                else if (entity.Has <Position>())
                {
                    position = Hex.ToWorldPosition(entity.Get <Position>().Value);
                }
                else
                {
                    continue;
                }

                if ((Vector2)view.transform.position == position)
                {
                    continue;
                }

                view.transform.DOComplete();
                view.transform.DOLocalMove(position, _config.BubbleMoveSpeed)
                .SetEase(Ease.Linear)
                .SetSpeedBased(true);
            }
        }
Esempio n. 27
0
 public void Run()
 {
     if (!_filter.IsEmpty())
     {
         var entity = _filter.GetEntity(0);
         var data   = _dataFilter.Get2(0);
         entity.Get <ClearGridEvent>();
         ref var drawData = ref entity.Get <LineDrawData>();
         var     drawList = new List <(Vector2Int, Sprite)>();
         for (var i = 0; i < data.Points.Count; i++)
         {
             if (i == 0)
             {
                 drawList.Add((data.Points[i], _spritesContainer.LineBeginningSprite));
             }
             else if (i == data.Points.Count - 1)
             {
                 drawList.Add((data.Points[i], _spritesContainer.LineEndSprite));
             }
             else
             {
                 drawList.Add((data.Points[i], _spritesContainer.FilledSprite));
             }
         }
         drawData.drawData = drawList;
     }
        public void Run()
        {
            foreach (var id in damageFilter)
            {
                var damageEntity = damageFilter.GetEntity(id);

                //если сущьность существует
                if (!damageEntity.IsAlive())
                {
                    return;
                }

                var damage = damageFilter.Get1(id).DamageAmount;

                ref var healthComponent = ref damageFilter.Get2(id);

                healthComponent.HP -= damage;

                if (healthComponent.HP <= 0)
                {
                    damageEntity.Replace(new DestroyComponentEvent());
                }

                //добавляем компонент-событие изменения HP
                damageEntity.Replace(new ChangeHPEvent());
            }
 void IEcsRunSystem.Run()
 {
     // add your run code here.
     foreach (var index in _filterTower)
     {
         ref Shooter      shooterComponent           = ref _filterTower.Get2(index);
         ref TransformRef towerTransformRefComponent = ref _filterTower.Get3(index);
Esempio n. 30
0
 public void Run()
 {
     foreach (var index in _filter)
     {
         ref var gameView = ref _filter.Get1(index);
         gameView.value.transform.position = _filter.Get2(index).value;
     }