Ejemplo n.º 1
0
        public static void Request_Player_AddCredits(IdCredits arg, Action <IdCredits> callback = null, Action <ErrorInfo> onError = null)
        {
            Action <CmdId, object> wiredCallback = null;

            if (callback != null)
            {
                wiredCallback = (_, val) => callback((IdCredits)val);
            }

            var apiCmd = new GenericAPICommand(
                CmdId.Request_Player_AddCredits,
                arg,
                wiredCallback,
                onError ?? noOpErrorHandler
                );

            Broker.Execute(apiCmd);
        }
        private BalanceActionResult convertPointsToCredits(int playerId, int points)
        {
            var account = SafeGetAccount(AccountType.Player, playerId, null);

            log(() => $"*** before account: {Serializer.Serialize(account)}");
            var result = new BalanceActionResult()
            {
                amountRequested = points,
                playerAccount   = playerId,
                transactionType = TransactionType.Credits,
                playerBalance   = account.balances[ResourceType.Points]
            };

            if (result.playerBalance >= points)
            {
                var credits = points * settings.creditExchangeRate;
                account.balances[ResourceType.Points] -= points;
                result.playerBalance = account.balances[ResourceType.Points];

                normalizePlayerPoints(playerId, account);
                SaveAccount(account);

                log(() => $"*** after account: {Serializer.Serialize(account)}");
                var idCredits = new IdCredits()
                {
                    id      = playerId,
                    credits = credits
                };

                var cmd = new APICmd(CmdId.Request_Player_AddCredits, idCredits);
                broker.ExecuteCommand(cmd);
                result.succeeded = true;
            }
            else
            {
                result.succeeded = false;
                result.reason    = "insuffucient point balance";
            }
            return(result);
        }
        private void ProcessEvent_Player_Credits(IdCredits idCredits)
        {
            DebugLog("Event_Player_Credits - Credits player with id {0}: {1}", idCredits.id, idCredits.credits);

            // TODO: update player credits here
        }
Ejemplo n.º 4
0
 public async Task <IdCredits> Request_Player_AddCredits(IdCredits arg, CancellationToken ct)
 {
     return(await Broker.SendRequestAsync <IdCredits, IdCredits>(CmdId.Request_Player_AddCredits, arg, ct));
 }
Ejemplo n.º 5
0
 public async Task <IdCredits> Request_Player_AddCredits(IdCredits arg)
 {
     return(await Broker.SendRequestAsync <IdCredits, IdCredits>(CmdId.Request_Player_AddCredits, arg));
 }
Ejemplo n.º 6
0
 public void Request_Player_AddCredits(IdCredits arg, Action <IdCredits> callback = null, Action <ErrorInfo> onError = null)
 {
     Broker.Request_Player_AddCredits(arg, callback, onError);
 }
Ejemplo n.º 7
0
 public static Task <IdCredits> Request_Player_AddCredits(IdCredits param)
 {
     return(Broker.CreateCommandWithArgAndReturn <IdCredits, IdCredits>(CmdId.Request_Player_AddCredits, param));
 }
Ejemplo n.º 8
0
 public static Task <IdCredits> Request_Player_AddCredits(IdCredits param, Action <IdCredits> callback, Action <ErrorInfo> onError = null)
 {
     return(Broker.CreateCommandWithArgAndReturn <IdCredits, IdCredits>(CmdId.Request_Player_AddCredits, param, callback, onError));
 }