コード例 #1
0
        public async Task <IActionResult> Update([FromRoute] int broadcasterId, [FromBody] BankHeistSetting bankHeistSetting)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (broadcasterId != bankHeistSetting.BroadcasterId)
            {
                return(BadRequest());
            }

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

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

            return(NoContent());
        }
コード例 #2
0
        public async Task <IActionResult> Create([FromBody] BankHeistSetting bankHeistSetting)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            _context.BankHeistSetting.Add(bankHeistSetting);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("Get", new { broadcasterId = bankHeistSetting.BroadcasterId }, bankHeistSetting));
        }
コード例 #3
0
        public async Task <IActionResult> Get([FromRoute] int broadcasterId)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            BankHeistSetting bankHeistSetting = await _context.BankHeistSetting.SingleOrDefaultAsync(m => m.BroadcasterId == broadcasterId);

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

            return(Ok(bankHeistSetting));
        }
コード例 #4
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)
        {
            BankHeistSetting bankHeistSetting = await ApiBotRequest.GetExecuteTaskAsync <BankHeistSetting>(twitchBotApiLink + $"bankheistsettings/get/{broadcasterId}");

            if (bankHeistSetting == null)
            {
                bankHeistSetting = new BankHeistSetting {
                    BroadcasterId = broadcasterId
                };
                bankHeistSetting = await ApiBotRequest.PostExecuteTaskAsync(twitchBotApiLink + $"bankheistsettings/create", bankHeistSetting);
            }

            if (bankHeistSetting == null)
            {
                throw new Exception("Unable to create initial boss fight 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 = bankHeistSetting.Id;
            CooldownTimePeriodMinutes = bankHeistSetting.CooldownPeriodMin;
            EntryPeriodSeconds        = bankHeistSetting.EntryPeriodSec;
            EntryMessage      = bankHeistSetting.EntryMessage;
            MaxGamble         = bankHeistSetting.MaxGamble;
            MaxGambleText     = bankHeistSetting.MaxGambleText;
            EntryInstructions = bankHeistSetting.EntryInstructions;
            CooldownEntry     = bankHeistSetting.CooldownEntry;
            CooldownOver      = bankHeistSetting.CooldownOver;

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

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

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

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