示例#1
0
    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
                    }));
                }
            }
        }