public async Task <IActionResult> Update([FromRoute] int broadcasterId, [FromBody] BankHeistSettings bankHeistSettings)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (broadcasterId != bankHeistSettings.Broadcaster)
            {
                return(BadRequest());
            }

            _context.Entry(bankHeistSettings).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!BankHeistSettingsExists(broadcasterId))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
Esempio n. 2
0
        public async Task CreateSettings(int broadcasterId, string twitchBotApiLink)
        {
            BankHeistSettings freshSettings = new BankHeistSettings {
                Broadcaster = broadcasterId
            };

            await LoadSettings(broadcasterId, twitchBotApiLink, await ApiBotRequest.PostExecuteTaskAsync(twitchBotApiLink + $"bankheistsettings/create", freshSettings));
        }
        public async Task <IActionResult> Create([FromBody] BankHeistSettings bankHeistSettings)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            _context.BankHeistSettings.Add(bankHeistSettings);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("Get", new { broadcasterId = bankHeistSettings.Broadcaster }, bankHeistSettings));
        }
        public async Task <IActionResult> Get([FromRoute] int broadcasterId)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            BankHeistSettings bankHeistSettings = await _context.BankHeistSettings.SingleOrDefaultAsync(m => m.Broadcaster == broadcasterId);

            if (bankHeistSettings == null)
            {
                return(NotFound());
            }

            return(Ok(bankHeistSettings));
        }
Esempio n. 5
0
        /// <summary>
        /// Load all of the settings from the database for the bank heist mini-game
        /// </summary>
        /// <param name="broadcasterId"></param>
        public async Task LoadSettings(int broadcasterId, string twitchBotApiLink, BankHeistSettings bankHeistSettings = null)
        {
            if (bankHeistSettings == null)
            {
                bankHeistSettings =
                    await ApiBotRequest.GetExecuteTaskAsync <BankHeistSettings>(twitchBotApiLink + $"bankheistsettings/get/{broadcasterId}");

                if (bankHeistSettings == null)
                {
                    return;                            // check if settings were loaded successfully, else attempt to create new settings
                }
            }

            // refresh arrays and lists
            NextLevelMessages = new string[4];
            Levels            = new BankHeistLevel[]
            {
                new BankHeistLevel {
                },
                new BankHeistLevel {
                },
                new BankHeistLevel {
                },
                new BankHeistLevel {
                },
                new BankHeistLevel {
                }
            };
            Payouts = new BankHeistPayout[]
            {
                new BankHeistPayout {
                },
                new BankHeistPayout {
                },
                new BankHeistPayout {
                },
                new BankHeistPayout {
                },
                new BankHeistPayout {
                }
            };
            Robbers = new BlockingCollection <BankRobber>();

            // settings
            Id = bankHeistSettings.Id;
            CooldownTimePeriodMinutes = bankHeistSettings.CooldownPeriodMin;
            EntryPeriodSeconds        = bankHeistSettings.EntryPeriodSec;
            EntryMessage      = bankHeistSettings.EntryMessage;
            MaxGamble         = bankHeistSettings.MaxGamble;
            MaxGambleText     = bankHeistSettings.MaxGambleText;
            EntryInstructions = bankHeistSettings.EntryInstructions;
            CooldownEntry     = bankHeistSettings.CooldownEntry;
            CooldownOver      = bankHeistSettings.CooldownOver;

            // next level messages
            NextLevelMessages[0] = bankHeistSettings.NextLevelMessage2;
            NextLevelMessages[1] = bankHeistSettings.NextLevelMessage3;
            NextLevelMessages[2] = bankHeistSettings.NextLevelMessage4;
            NextLevelMessages[3] = bankHeistSettings.NextLevelMessage5;

            // game outcomes
            GameStart         = bankHeistSettings.GameStart;
            ResultsMessage    = bankHeistSettings.ResultsMessage;
            SingleUserSuccess = bankHeistSettings.SingleUserSuccess;
            SingleUserFail    = bankHeistSettings.SingleUserFail;
            Success100        = bankHeistSettings.Success100;
            Success34         = bankHeistSettings.Success34;
            Success1          = bankHeistSettings.Success1;
            Success0          = bankHeistSettings.Success0;

            // game levels
            Levels[0].LevelBankName = bankHeistSettings.LevelName1;
            Levels[0].MaxUsers      = bankHeistSettings.LevelMaxUsers1;
            Levels[1].LevelBankName = bankHeistSettings.LevelName2;
            Levels[1].MaxUsers      = bankHeistSettings.LevelMaxUsers2;
            Levels[2].LevelBankName = bankHeistSettings.LevelName3;
            Levels[2].MaxUsers      = bankHeistSettings.LevelMaxUsers3;
            Levels[3].LevelBankName = bankHeistSettings.LevelName4;
            Levels[3].MaxUsers      = bankHeistSettings.LevelMaxUsers4;
            Levels[4].LevelBankName = bankHeistSettings.LevelName5;
            Levels[4].MaxUsers      = bankHeistSettings.LevelMaxUsers5;

            // payout
            Payouts[0].SuccessRate   = bankHeistSettings.PayoutSuccessRate1;
            Payouts[0].WinMultiplier = bankHeistSettings.PayoutMultiplier1;
            Payouts[1].SuccessRate   = bankHeistSettings.PayoutSuccessRate2;
            Payouts[1].WinMultiplier = bankHeistSettings.PayoutMultiplier2;
            Payouts[2].SuccessRate   = bankHeistSettings.PayoutSuccessRate3;
            Payouts[2].WinMultiplier = bankHeistSettings.PayoutMultiplier3;
            Payouts[3].SuccessRate   = bankHeistSettings.PayoutSuccessRate4;
            Payouts[3].WinMultiplier = bankHeistSettings.PayoutMultiplier4;
            Payouts[4].SuccessRate   = bankHeistSettings.PayoutSuccessRate5;
            Payouts[4].WinMultiplier = bankHeistSettings.PayoutMultiplier5;
        }