Ejemplo n.º 1
0
        public async Task <IResult> GiveMoneyToOtherAsync(ulong callerId, ulong targetId, int moneyToGive)
        {
            var caller = await _provider.GetActiveCharacterAsync(callerId);

            if (caller == null)
            {
                return(CharacterResult.CharacterNotFound());
            }

            var target = await _provider.GetActiveCharacterAsync(targetId);

            if (target == null)
            {
                return(CharacterResult.CharacterNotFound());
            }

            if (caller.Money - moneyToGive >= 0)
            {
                caller.Money -= moneyToGive;
                target.Money += moneyToGive;

                await _provider.UpdateCharacterAsync(caller);

                await _provider.UpdateCharacterAsync(target);

                return(CharacterResult.MoneyGiven(moneyToGive, target.Name));
            }
            else
            {
                return(GenericResult.ValueTooHigh());
            }
        }
Ejemplo n.º 2
0
        public async Task SetStatisticAsync_AboveMaximum_ReturnTooHigh()
        {
            // Arrange
            var charProvider = new MockCharacterProvider();
            var statProvider = new MockStatisticProvider();
            var statOptions  = new StatisticOptions
            {
                InitialAttributeMax    = 10,
                InitialAttributePoints = 12,
            };

            var controller = new StatisticController(charProvider, statProvider, new GenericProgressionStrategy(statProvider, statOptions));

            // Act
            var result = await controller.SetStatisticAsync(1, "strength", 11);

            // Assert
            Assert.Equal(GenericResult.ValueTooHigh(), result);
        }