/* /lib/donate.c
* a donation box inheritable
* created by BillGates@Dead Souls 961023
*/
#include "include/donate.h"
#include <lib.h>
private int TotalAssets;
private string LocalCurrency, Owner;
static void create() {
this_object()->AddSave( ({ "TotalAssets" }) );
TotalAssets = 0;
}
static void init() {
if( (string)this_player()->ClassMember((string)GetOwner()) ||
(string)this_player()->GetClan() == (string)GetOwner() ) {
add_action( (: eventDonate :) , "donate" );
}
}
string GetLong(string str) {
string ret = "\nIt currently contains "+TotalAssets+" " +
"coins and bills.";
if(TotalAssets) return ret;
else return "";
}
string SetLocalCurrency(string currency) {
return (LocalCurrency = currency);
}
string GetLocalCurrency() {return LocalCurrency;}
string SetOwner(string owner) {return (Owner = owner);}
string GetOwner() {return Owner;}
int AddAssets(int amount) {
TotalAssets += amount;
return 1;
}
int GetAssets() {return TotalAssets;}
int eventDonate(string amt, string type) {
int amount;
object tp = this_player();
if(sscanf(amt,"%d", amount) < 1) {
write("That isn't a proper amount.");
return 1;
}
if(!valid_currency(type)){
write("That isn't a valid currency.");
return 1;
}
if(!amount) {
tp->eventPrint("Donate how much?\n");
return 0;
}
if(amount < 0) {
tp->eventPrint("Nice try!\n");
return 0;
}
//if(type != GetLocalCurrency()) {
// tp->eventPrint("The " + pluralize(GetOwner()) +
// " only deal in " + GetLocalCurrency() +
// ".\n");
// return 0;
// }
if((int)tp->GetCurrency(type) < amount) {
tp->eventPrint("You don't have that much " + type + "!\n");
return 0;
}
tp->AddCurrency(type, -amount);
AddAssets(amount);
tp->eventPrint(GetOwner() + " is grateful "
"for your donation.");
if(living(this_object())) this_object()->eventForce("say Thank you!");
return 1;
}