Пример #1
0
        private void cmdNuyenGained_Click(object sender, EventArgs e)
        {
            frmExpense frmNewExpense = new frmExpense();
            frmNewExpense.Mode = ExpenseType.Nuyen;
            frmNewExpense.ShowDialog(this);

            if (frmNewExpense.DialogResult == DialogResult.Cancel)
                return;

            // Create the Expense Log Entry.
            ExpenseLogEntry objEntry = new ExpenseLogEntry();
            objEntry.Create(frmNewExpense.Amount, frmNewExpense.strReason, ExpenseType.Nuyen, frmNewExpense.SelectedDate);
            objEntry.Refund = frmNewExpense.Refund;
            _objCharacter.ExpenseEntries.Add(objEntry);

            ExpenseUndo objUndo = new ExpenseUndo();
            objUndo.CreateNuyen(NuyenExpenseType.ManualAdd, "");
            objEntry.Undo = objUndo;

            // Adjust the character's Nuyen total.
            _objCharacter.Nuyen += frmNewExpense.Amount;

            UpdateCharacterInfo();

            _blnIsDirty = true;
            UpdateWindowTitle();
        }
Пример #2
0
        private void cmdNuyenSpent_Click(object sender, EventArgs e)
        {
            frmExpense frmNewExpense = new frmExpense();
            frmNewExpense.Mode = ExpenseType.Nuyen;
            frmNewExpense.ShowDialog(this);

            if (frmNewExpense.DialogResult == DialogResult.Cancel)
                return;

            // Make sure the Nuyen expense would not put the character's remaining Nuyen amount below 0.
            if (_objCharacter.Nuyen - frmNewExpense.Amount < 0)
            {
                MessageBox.Show(LanguageManager.Instance.GetString("Message_NotEnoughNuyen"), LanguageManager.Instance.GetString("MessageTitle_NotEnoughNuyen"), MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }

            // Create the Expense Log Entry.
            ExpenseLogEntry objEntry = new ExpenseLogEntry();
            objEntry.Create(frmNewExpense.Amount * -1, frmNewExpense.strReason, ExpenseType.Nuyen, frmNewExpense.SelectedDate);
            _objCharacter.ExpenseEntries.Add(objEntry);

            ExpenseUndo objUndo = new ExpenseUndo();
            objUndo.CreateNuyen(NuyenExpenseType.ManualSubtract, "");
            objEntry.Undo = objUndo;

            // Adjust the character's Nuyen total.
            _objCharacter.Nuyen += frmNewExpense.Amount * -1;

            UpdateCharacterInfo();

            _blnIsDirty = true;
            UpdateWindowTitle();
        }
Пример #3
0
        private void lstNuyen_DoubleClick(object sender, EventArgs e)
        {
            try
            {
                ListViewItem objTest = lstNuyen.SelectedItems[0];
            }
            catch
            {
                return;
            }

            ExpenseLogEntry objEntry = new ExpenseLogEntry();
            ListViewItem objItem = lstNuyen.SelectedItems[0];

            // Find the selected Nuyen Expense.
            foreach (ExpenseLogEntry objCharacterEntry in _objCharacter.ExpenseEntries)
            {
                if (objCharacterEntry.InternalId == objItem.SubItems[3].Text)
                {
                    objEntry = objCharacterEntry;
                    break;
                }
            }

            // If this is a manual entry, let the player modify the amount.
            int intOldAmount = objEntry.Amount;
            bool blnAllowEdit = false;
            try
            {
                if (objEntry.Undo.NuyenType == NuyenExpenseType.ManualAdd || objEntry.Undo.NuyenType == NuyenExpenseType.ManualSubtract)
                    blnAllowEdit = true;
            }
            catch
            {
                return;
            }

            frmExpense frmEditExpense = new frmExpense();
            frmEditExpense.Mode = ExpenseType.Nuyen;
            frmEditExpense.strReason = objEntry.Reason;
            frmEditExpense.Amount = objEntry.Amount;
            frmEditExpense.Refund = objEntry.Refund;
            frmEditExpense.SelectedDate = objEntry.Date;
            frmEditExpense.LockFields(blnAllowEdit);

            frmEditExpense.ShowDialog(this);

            if (frmEditExpense.DialogResult == DialogResult.Cancel)
                return;

            // If this is a manual entry, update the character's Karma total.
            int intNewAmount = frmEditExpense.Amount;
            if (blnAllowEdit && intOldAmount != intNewAmount)
            {
                objEntry.Amount = intNewAmount;
                _objCharacter.Nuyen += (intNewAmount - intOldAmount);
                UpdateCharacterInfo();
            }

            // Rename the Expense.
            objEntry.Reason = frmEditExpense.strReason;
            objEntry.Date = frmEditExpense.SelectedDate;

            PopulateExpenseList();

            _blnIsDirty = true;
            UpdateWindowTitle();
        }