public void GainPoints(int scoreEarned, ISquarePiece[] pieces) { PointsAwarded?.Invoke(scoreEarned, pieces); CurrentScore += scoreEarned; BonusChanged?.Invoke(ScoreCalculator.ActiveBonus); if (ReachedTarget) { SaveProgress(GameResult.ReachedTarget); } }
private void RemoveAddedPoints(Order order) { PointsAwarded pointsAwarded = _session.QueryOver <PointsAwarded>().Where(awarded => awarded.Order.Id == order.Id).SingleOrDefault(); if (pointsAwarded != null) { bool anyPointsRemoved = _session.QueryOver <PointsRemoved>() .Where(removed => removed.Order.Id == order.Id && removed.RemovalFor.Id == pointsAwarded.Id) .Any(); if (!anyPointsRemoved) { _session.Transact(session => session.Save(new PointsRemoved { Order = order, RemovalFor = pointsAwarded, Points = -pointsAwarded.Points, User = order.User })); } } }