private void TriggerRestart() { var e = _input.CreateEntity(); e.SetFlag <RestartComponent>(); e.SetFlag <DestroyedComponent>(); }
private void EmitCombo(int id) { var entity = _game.CreateEntity(); entity.Get <ComboComponent>().Apply(id); entity.SetFlag <DestroyedComponent>(); }
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++; }
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); } }
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 }); }