示例#1
0
    private void TriggerRestart()
    {
        var e = _input.CreateEntity();

        e.SetFlag <RestartComponent>();
        e.SetFlag <DestroyedComponent>();
    }
示例#2
0
        private void EmitCombo(int id)
        {
            var entity = _game.CreateEntity();

            entity.Get <ComboComponent>().Apply(id);
            entity.SetFlag <DestroyedComponent>();
        }
示例#3
0
    public void CreateRandomElement(GridPosition position)
    {
        var typeCount      = _contexts.Config.Unique.Get <TypeCountComponent>().Component.Value;
        var maxType        = Mathf.Clamp(typeCount - 1, 1, 100);
        var randomType     = Random.Range(0, maxType + 1);
        var normalizedType = Mathf.InverseLerp(0, maxType, randomType);

        var entity = _game.CreateEntity();

        entity.SetFlag <ElementComponent>();
        entity.SetFlag <MovableComponent>();
        entity.Get <IdComponent>().Apply(_entityCounter);
        entity.Get <ElementTypeComponent>().Apply(randomType);
        entity.Get <AssetComponent>().Apply("Element");
        entity.Get <ColorComponent>().Apply(new Color(normalizedType, normalizedType, normalizedType));
        entity.Get <PositionComponent>().Apply(position);
        _entityCounter++;
    }
示例#4
0
    public void CreateRandomElement(GridPosition position)
    {
        var typeCount = _contexts.Config.GetUnique <TypeCountComponent>().Value;

        int maxType = typeCount;

        if (typeCount - 1 < 1)
        {
            maxType = 1;
        }
        else if (typeCount >= 100)
        {
            maxType = 100;
        }

        // Unity's Random class can't be used outside of the Unity environment.
        //var maxType = Mathf.Clamp(typeCount - 1, 1, 100);
        //var randomType = Random.Range(0, maxType + 1);

        var randomType     = Random.Value.Next(0, maxType + 1);
        var normalizedType = Mathf.InverseLerp(0, maxType, randomType);

        var entity = _game.CreateEntity();

        _game.SetFlag <ElementComponent>(entity, true);
        _game.SetFlag <MovableComponent>(entity, true);
        _game.Set(entity, new IdComponent {
            value = _entityCounter
        });
        _game.Set(entity, new ElementTypeComponent {
            value = randomType
        });
        _game.Set(entity, new AssetComponent {
            value = "Element",
            id    = (int)ActorType.Element
        });
        _game.Set(entity, new ColorComponent {
            value = new Color(normalizedType, normalizedType, normalizedType)
        });

        entity.Set <PositionComponent>(c => c.value = position);
        _entityCounter++;
    }
        protected override void Execute(List <InputEntity> entities)
        {
            foreach (var entity in _elementGroup.GetEntities(_buffer))
            {
                entity.SetFlag <DestroyedComponent>();
            }

            var e = _game.CreateEntity();

            e.SetFlag <RestartHappenedComponent>();
        }
        protected override void Execute(List <GameEntity> entities)
        {
            var definitions = _config.Unique.Get <ComboDefinitionsComponent>().Component.Value;

            foreach (var entity in entities)
            {
                var combo      = entity.GetComponent <ComboComponent>().Value;
                var definition = definitions.Definitions[combo];
                var e          = _game.CreateEntity();
                e.Get <RewardComponent>().Apply(definition.Reward);
            }
        }
示例#7
0
        protected override void Execute(List <GameEntity> entities)
        {
            var table = _config.Unique.Get <ScoringTableComponent>().Component.Value;

            var scoreId = entities.Count;

            scoreId--;

            if (scoreId >= table.Count)
            {
                scoreId = table.Count - 1;
            }

            var reward = table[scoreId];

            _game.CreateEntity().Get <RewardComponent>().Apply(reward);

            // var e = _game.CreateEntity();
            //_game.Set(e, new RewardComponent { Value = reward });
        }