public void Execute(Entity[] entities) { var accelerate = entities.SingleEntity().isAccelerating; foreach (var e in _group.GetEntities()) { var move = e.move; var speed = accelerate ? move.maxSpeed : 0; e.ReplaceMove(speed, move.maxSpeed); } }
public void Execute(Entity[] entities) { Debug.Log("Update GameBoard"); var gameBoard = entities.SingleEntity().gameBoard; foreach (var e in _gameBoardElements.GetEntities()) { if (e.position.x >= gameBoard.columns || e.position.y >= gameBoard.rows) { e.isDestroy = true; } } }
public void Execute(Entity[] entities) { UnityEngine.Debug.Log("Process Input"); var inputEntity = entities.SingleEntity(); var input = inputEntity.input; var e = _pool.gameBoardCache.grid[input.x, input.y]; if (e != null && e.isInteractive) { e.isDestroy = true; } _pool.DestroyEntity(inputEntity); }
public void Execute(Entity[] entities) { UnityEngine.Debug.Log("Process Input"); var inputEntity = entities.SingleEntity(); var input = inputEntity.input; var e = _pool.gameBoardCache.grid[input.x, input.y]; if (e != null && e.isInteractive) { e.isDestroy = true; // only send positions for destroyed entities by us if (!inputEntity.isIncoming) { e.isSendable = true; } } _pool.DestroyEntity(inputEntity); }