Exemplo n.º 1
0
        /// <summary>Frees a <see cref="JailedUser"/> from Jail.</summary>
        /// <param name="jailUser"><see cref="JailedUser"/> to be freed</param>
        /// <returns>True if successful</returns>
        public async Task <bool> FreeFromJail(JailedUser jailUser)
        {
            SQLiteCommand cmd = new SQLiteCommand {
                CommandText = "DELETE FROM Jail WHERE [Username] = @name"
            };

            cmd.Parameters.AddWithValue("@name", jailUser.Name);
            return(await SQLiteHelper.ExecuteCommand(_con, cmd));
        }
Exemplo n.º 2
0
 private void LstJail_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     if (LstJail.SelectedIndex >= 0)
     {
         _selectedUser = GameState.AllJailedUsers[LstJail.SelectedIndex];
         DataContext   = _selectedUser;
     }
     BtnBailOut.IsEnabled = LstJail.SelectedIndex >= 0 && GameState.CurrentUser.GoldOnHand >= _selectedUser.Fine;
 }
Exemplo n.º 3
0
 /// <summary>Deletes a <see cref="User"/> from Jail if the location was changed.</summary>
 private async void CheckJail()
 {
     if (GameState.CurrentUser.CurrentLocation == SleepLocation.Jail)
     {
         JailedUser jailedUser = GameState.AllJailedUsers.Find(jailed => jailed.Name == GameState.CurrentUser.Name);
         if (await GameState.DatabaseInteraction.FreeFromJail(jailedUser))
         {
             GameState.AllJailedUsers.Remove(jailedUser);
         }
     }
 }
Exemplo n.º 4
0
        /// <summary>Sends a <see cref="JailedUser"/> to Jail.</summary>
        /// <param name="jailUser"><see cref="JailedUser"/> to be jailed</param>
        /// <returns>True if successful</returns>
        public async Task <bool> SendToJail(JailedUser jailUser)
        {
            SQLiteCommand cmd = new SQLiteCommand {
                CommandText = "INSERT INTO Jail([Username], [Reason], [Fine], [DateJailed])VALUES(@name, @reason, @fine, @dateJailed)"
            };

            cmd.Parameters.AddWithValue("@name", jailUser.Name);
            cmd.Parameters.AddWithValue("@reason", jailUser.Reason.ToString());
            cmd.Parameters.AddWithValue("@fine", jailUser.Fine);
            cmd.Parameters.AddWithValue("@dateJailed", jailUser.DateJailed);
            return(await SQLiteHelper.ExecuteCommand(_con, cmd));
        }
Exemplo n.º 5
0
        private async void BtnBailOut_Click(object sender, RoutedEventArgs e)
        {
            Functions.AddTextToTextBox(GameState.GamePage.TxtGame, $"You bail out {_selectedUser.Name} for {_selectedUser.FineToString} gold.");
            GameState.CurrentUser.GoldOnHand -= _selectedUser.Fine;
            await GameState.DatabaseInteraction.FreeFromJail(_selectedUser);

            GameState.AllJailedUsers.Remove(_selectedUser);
            GameState.AllUsers.Find(user => user.Name == _selectedUser.Name).CurrentLocation = SleepLocation.Streets;
            await GameState.DatabaseInteraction.SaveUser(GameState.AllUsers.Find(user => user.Name == _selectedUser.Name));

            await GameState.DatabaseInteraction.SaveUser(GameState.CurrentUser);

            _selectedUser = new JailedUser();
            DataContext   = _selectedUser;
            RefreshItemsSource();
        }
Exemplo n.º 6
0
        private async void BtnGoToJail_Click(object sender, RoutedEventArgs e)
        {
            Functions.AddTextToTextBox(TxtCourt, GameState.CurrentUser.GoldOnHand < _fine
                ? "You don't have the money required to pay the fine."
                : "You decide it is best to spend the night in jail.");

            GameState.CurrentUser.CurrentLocation = SleepLocation.Jail;
            JailedUser jailedUser = new JailedUser(GameState.CurrentUser.Name, _reason, _fine, DateTime.UtcNow);

            if (await GameState.DatabaseInteraction.SendToJail(jailedUser))
            {
                BtnPayFine.IsEnabled = false;
                BtnJail.IsEnabled    = false;
                GameState.CurrentUser.CurrentLocation = SleepLocation.Jail;
                GameState.AllJailedUsers.Add(jailedUser);
                _blnFinished         = true;
                BtnFreedom.IsEnabled = true;
                BtnFreedom.Content   = "_Back";
            }
            FinishCourt();
            ClosePage();
        }
Exemplo n.º 7
0
        /// <summary>Checks whether a <see cref="JailedUser"/> has served their time.</summary>
        public async void CheckJailed()
        {
            jailedUser   = GameState.AllJailedUsers.Find(user => user.Name == GameState.CurrentUser.Name);
            jailTimeSpan = DateTime.UtcNow - jailedUser.DateJailed;
            if (jailTimeSpan.Seconds >= jailedUser.Fine / 10)
            {
                Functions.AddTextToTextBox(TxtGame, "You awaken in a jail cell. A guard looms over you.\nHe barks at you, \"You're free to go!\"\nYou briskly leave the jail.");
                await GameState.DatabaseInteraction.FreeFromJail(jailedUser);

                GameState.CurrentUser.CurrentLocation = SleepLocation.Streets;
                ToggleButtons(true);

                Display();

                await GameState.DatabaseInteraction.SaveUser(GameState.CurrentUser);
            }
            else
            {
                ToggleButtons(false);
                Functions.AddTextToTextBox(TxtGame, $"You awaken in a jail cell. You have not yet finished your sentence. You have {(jailedUser.Fine / 10) - jailTimeSpan.Seconds} seconds remaining.");
                Timer1.Start();
            }
        }