/**
* The basic nationality inherit. The nationality keeps track of any
* specific information about the nationality.
* @author Pinkfish
* @started Tue Jun 4 15:08:33 PDT 2002
*/
inherit "/std/basic/setup";
class region {
string description;
string start_location;
string accent_ob;
}
private string _name;
private string _information;
private string _same_nat_description;
private string _different_nat_description;
private string _start_loc;
private string _language;
private string _accent;
private string _currency;
private mapping _regions;
void create() {
_regions = ([ ]);
// This is mostly just in case we need it in the future.
do_setup();
}
/**
* This method adds a region to the nationality.
* @param name the name of the region
* @param description the description of the region
* @param start the start location of the region
* @param accent the accent object for this region
*/
void add_region(string name, string description, string start, string accent) {
class region bing;
bing = new(class region,
description : description,
start_location : start,
accent_ob : accent);
_regions[name] = bing;
}
/**
* This method sets the name of the nationality.
* @param name the name of the nationality
*/
void set_name(string name) {
_name = name;
}
/**
* This method returns the name of the nationality.
* @return the name of the nationality
*/
string query_name() {
return _name;
}
/**
* This method sets the description of the nationality when viewed
* by someone who is also the same nationality.
* @param description the description of the nationality
*/
void set_same_nationality_description(string description) {
_same_nat_description = description;
}
/**
* This method returns the description of the nationality when viewed
* by someone who is also the same nationality.
* @return the description of the nationality
*/
string query_same_nationality_description() {
return _same_nat_description;
}
/**
* This method sets the description of the nationality when viewed
* by someone who is of a different nationality.
* @param description the description of the nationality
*/
void set_different_nationality_description(string description) {
_different_nat_description = description;
}
/**
* This method returns the description of the nationality when viewed
* by someone who is of a different nationality.
* @return the description of the nationality
*/
string query_different_nationality_description() {
return _different_nat_description;
}
/**
* This method returns the description shown to the person looking
* at the character. This is currently disabled.
* @param looker the person doing the looking
* @param person the person being looked at
* @return a nice description
*/
string query_look_description(object person, object looker) {
return "";
if (person->query_nationality() == looker->query_nationality()) {
return capitalize(person->query_pronoun()) + " " +
_same_nat_description;
} else {
return capitalize(person->query_pronoun()) + " " +
_different_nat_description;
}
}
/**
* This method sets the start location of the nationality.
* @param start_loc the start location of the nationality
*/
void set_default_start_location(string start_loc) {
_start_loc = start_loc;
}
/**
* This method returns the start location of the nationality.
* @return the start location of the nationality
*/
string query_default_start_location() {
return _start_loc;
}
/**
* This method sets the language of the nationality.
* @param language the language of the nationality
*/
void set_language(string language) {
_language = language;
}
/**
* This method returns the language of the nationality.
* @return the language of the nationality
*/
string query_language() {
return _language;
}
/**
* This is the informaton the player will see in the start room. Should
* be full of happy stuff to make people want to be from the this place.
* @param info the information to use
*/
void set_information(string info) {
_information = info;
}
/**
* This method returns the information the player will see in the start
* room.
* @return the information about the nationality
*/
string query_information() {
if (!_information) {
_information = "The $C$" + query_name() + " nationality is yet to "
"be described.\n";
}
return _information;
}
/**
* This method returns the names of all the regions in nationality.
* @return the names of the regions
*/
string* query_regions() {
return keys(_regions);
}
/**
* This method returns the description for the specific regions.
* @param region the region
* @return the description
*/
string query_region_description(string region) {
return _regions[region]->description;
}
/**
* This method returns the start location for the specific regions.
* @param region the region
* @return the start location
*/
string query_region_start_location(string region) {
return _regions[region]->start_location;
}
/**
* This method returns the start location, if the region does not have one
* set it uses the default one.
* @param region the region to look at first
*/
string query_start_location(string region) {
if (_regions[region] && _regions[region]->start_location) {
return _regions[region]->start_location;
}
return _start_loc;
}
/**
* This method returns the accent object for the specific region.
* @param region the region to find the accent for
* @return the accent object
*/
string query_region_accent_ob(string region) {
if (_regions[region]) {
return _regions[region]->accent_ob;
}
return 0;
}
/**
* This method sets the currency area to use for the nationality.
* @param currency the currency to use
*/
void set_currency_area(string area) {
_currency = area;
}
/**
* This method returns the current area to use for the nationality.
* @return the currency area
*/
string query_currency_area() {
return _currency;
}