コード例 #1
0
        private static TransferValidity CheckTransferValidity(Transfer transfer, Team currentTeam)
        {
            if (transfer.PlayerIn == null || transfer.PlayerOut == null)
            {
                return TransferValidity.PlayerIsNull;
            }

            if (currentTeam.Players.Any(p => p.Id == transfer.PlayerIn.Id))
            {
                return TransferValidity.PlayerTransferredInAlreadyInTeam;
            }

            //player transferred out must have been in original team
            if (currentTeam.Players.All(p => p.Id != transfer.PlayerOut.Id))
            {
                return TransferValidity.PlayerTransferredOutNotOriginallyInTeam;
            }

            if (transfer.PlayerIn.Position != transfer.PlayerOut.Position)
            {
                return TransferValidity.TransferedPlayersNotInSamePosition;
            }

            return TransferValidity.Valid;
        }
コード例 #2
0
        public static IList<Transfer> CreateValidTransfers(Team currentTeam, int transferCount)
        {
            var transfers = new List<Transfer>();
            for (int i = 0; i < transferCount; i++)
            {
                //start at 3rd player so captain and vice captain are untouched
                var playerOut = currentTeam.Players[i + 2];

                var playerIn = playerOut.DeepClone();
                playerIn.Id = 102 + i;

                var transfer = new Transfer
                {
                    PlayerIn = playerIn,
                    PlayerOut = playerOut
                };

                transfers.Add(transfer);
            }
            return transfers;
        }
コード例 #3
0
 public static void LogTransfer(Transfer transfer, ILogger logger, bool important = false)
 {
     logger.Log(Tag.Transfers, string.Format("Transferring in {0} ({1}) for {2} ({3})", transfer.PlayerIn.Name, transfer.PlayerIn.NowCost.ToMoney(), transfer.PlayerOut.Name, transfer.PlayerOut.NowCost.ToMoney()), important);
 }
コード例 #4
0
        Team ProcessTransfer(Transfer transfer, Team currentTeam)
        {
            currentTeam.Players.Remove(transfer.PlayerOut);

            transfer.PlayerIn.OriginalCost = transfer.PlayerIn.NowCost;
            currentTeam.Players.Add(transfer.PlayerIn);

            if (VerboseLoggingEnabled)
            {
                LogHelper.LogTransfer(transfer, _logger, true);
            }

            return currentTeam;
        }