----------------------------------------------------------
-- Banker Function --
----------------------------------------------------------------------------------
-- Copyright 2008 The Mana World Development Team --
-- --
-- This file is part of The Mana World. --
-- --
-- The Mana World is free software; you can redistribute it and/or modify it --
-- under the terms of the GNU General Public License as published by the Free --
-- Software Foundation; either version 2 of the License, or any later version. --
----------------------------------------------------------------------------------
function Banker(npc, ch)
if mana.being_get_gender(ch) == GENDER_MALE then
do_message(npc, ch, "Welcome to the bank, sir!")
elseif mana.being_get_gender(ch) == GENDER_FEMALE then
do_message(npc, ch, "Welcome to the bank, madam!")
else
do_message(npc, ch, "Welcome to the bank... uhm... person of unspecified gender!")
end
local account = tonumber(get_quest_var(ch, "BankAccount"))
local result = -1
do_wait()
if (account == nil) then --Initial account creation, if needed
do_message(npc, ch, "Hello! Would you like to setup a bank account? There is a sign-on bonus right now!")
result = do_choice(npc, ch, "Yes", "No")
if (result == 1) then
mana.chr_set_quest(ch, "BankAccount", 5)
do_message(npc, ch, "Your account has been made. Your sign-on bonus is 5GP.")
account = 5
end
end
if (account ~= nil) then --If the player has an account
local money = 0
local input = 0
result = 1
while (result < 3) do --While they've choosen a valid option that isn't "Never mind"
account = tonumber(get_quest_var(ch, "BankAccount")) --Why do I need to convert this?
do_message(npc, ch, "Your balance: " .. account .. ".\nYour money: " .. mana.chr_money(ch) .. ".")
result = do_choice(npc, ch, "Deposit", "Withdraw", "Never mind")
if (result == 1) then --Deposit
money = mana.chr_money(ch);
if (money > 0) then --Make sure they have money to deposit
do_message(npc, ch, "How much would you like to deposit? (0 will cancel)")
input = do_ask_integer(npc, ch, 0, money, 1)
do_wait()
money = mana.chr_money(ch)
if (input > 0 and input <= money) then --Make sure something weird doesn't happen and they try to deposit more than they have
mana.chr_money_change(ch, -input)
mana.chr_set_quest(ch, "BankAccount", account + input)
do_message(npc, ch, input .. " GP deposited.")
elseif (input > money) then --Chosen more than they have
do_message(npc, ch, "You don't have that much money. But you just did....")
end
else
do_message(npc, ch, "You don't have any money to deposit!")
end
elseif (result == 2) then --Withdraw
if (account > 0) then --Make sure they have money to withdraw
do_message(npc, ch, "How much would you like to withdraw? (0 will cancel)")
input = do_ask_integer(npc, ch, 0, account, 1)
if (input > 0 and input <= account) then --Make sure something weird doesn't happen and they try to withdraw more than they have
mana.chr_money_change(ch, input)
mana.chr_set_quest(ch, "BankAccount", account - input)
do_message(npc, ch, input .. " GP withdrawn.")
elseif (input > account) then --Chosen more than they have
do_message(npc, ch, "You don't have that much in your account. But you just did....")
end
else
do_message(npc, ch, "Your account is empty!")
end
end
end --This ends the while loop
end
do_message(npc, ch, "Thank you. Come again!")
end