Ejemplo n.º 1
0
        internal async Task HeistPrep_ChangeState(GameLogic.Heist heist, bool sendToCaller = false)
        {
            var totalNetworth         = heist.Players.Values.Sum(n => n.ProjectedNetworth);
            var totalBarsOverNetworth = 20f * heist.Players.Count / (totalNetworth + 1);

            var playerInfo = new StringBuilder();

            foreach (var player in heist.Players.Values)
            {
                playerInfo.Append(player.Name);
                playerInfo.Append(",");

                var barLength   = totalBarsOverNetworth * player.ProjectedNetworth;
                var networthBar = new string('|', (int)barLength);
                playerInfo.Append(networthBar);
                playerInfo.Append(",");
                playerInfo.Append(player.TimeSpentInJail);
                playerInfo.Append("=");
            }

            if (playerInfo.Length > 0)
            {
                playerInfo.Length = playerInfo.Length - 1;
            }

            if (sendToCaller)
            {
                await Clients.Caller.SendAsync("HeistPrep_ChangeState", playerInfo.ToString(), heist.TotalReward, heist.SnitchReward);
            }
            else
            {
                await Clients.Group(heist.Id).SendAsync("HeistPrep_ChangeState", playerInfo.ToString(), heist.TotalReward, heist.SnitchReward);
            }
        }
Ejemplo n.º 2
0
        private Heist CreateHeist(List <HeistPlayer> eligiblePlayers, int heistCapacity)
        {
            var heistId = Utils.GenerateId(10, this.Heists);

            var snitchReward = this.BetrayalReward;
            var heist        = new Heist(heistId, heistCapacity, snitchReward, this.CurrentYear, this.SnitchBlackmailWindow, this.NetworthFudgePercentage, this.BlackmailRewardPercentage, this.JailFinePercentage);

            for (var i = 0; i < heistCapacity; i++)
            {
                var playerToInsert = eligiblePlayers[i];
                heist.AddPlayer(playerToInsert);
            }

            eligiblePlayers.RemoveRange(0, heistCapacity);
            this.Heists[heistId] = heist;
            return(heist);
        }