private void CommitPosition(IContext context, CommitCellSelectionMessage message) { var gameField = context.Get <ConquerGameField>(); var model = context.Get <CellItemModel>(); var player = context.Get <ConquerPlayerModel>(); var turn = player.TurnModel.Value; var cellInfo = model.CellInfo; var size = new Vector2Int(cellInfo.Width, cellInfo.Height); var result = gameField.Validate(new RectInt(turn.SelectedCell.Value.Position, size), player.Id.Value); if (result.valid) { gameField.UpdateCellDataAtRange(result.rect, player.Id.Value); model.Fixed.Value = true; model.Column.Value = result.rect.x; model.Row.Value = result.rect.y; var cellPlaced = new CellActorPlacedMessage() { Cell = result.rect.min, ActorId = model.CellId.Value, }; context.Publish(cellPlaced); } }
private void OnCellItemPlaced(IContext context, CellActorPlacedMessage message) { context.Publish(new EndOfTurnMessage()); }