/* Aleena - Chosen Prophet of the All-God
* Angel, November 1993
*/
inherit "inherit/monster";
object symb;
reset(arg) {
::reset(arg);
if(arg) return;
set_name("aleena");
set_gender(2);
set_magic_resist(75);
set_wc(30);
set_level(30);
set_ac(30);
set_short("Prophet Aleena, Priestess of the All-God");
set_long(
"With green eyes and a young delicate face, there is an eternal \n"+
"peace within this young woman. Even though only in her youth \n"+
"she is the most powerful cleric, one chosen by the most powerful \n"+
"of all gods - the Creator.\n");
load_spells(30, ({ "fs", "csw", "hwd", "bls", "crs" }));
load_chat(8, ({ "Aleena says: Welcome child.\n",
"Aleena prays before the altar.\n",
"Aleena prays earnestly.\n",
"Aleena says: have you come to pray, my child?\n",
"Aleena smiles happily.\n",
"Aleena says: Worship with me, my child.\n"
}));
load_a_chat(8, ({ "Aleena says: My Lord will protect me.\n",
"Aleena exclaims: Oh Lord, protect me.\n",
"Aleena says: The All-God will strike you down.\n",
"Aleena asks: Why do you attack me?\n"
}));
move_object(clone_object("room/city/monst/armour"),this_object());
move_object(clone_object("room/city/monst/mace"),this_object());
init_command("wield mace");
init_command("wear armour");
/*
symb = clone_object("inherit/armour");
symb -> set_type("amulet");
symb -> set_name("symbol");
symb -> set_ac(1);
symb -> set_weight(1);
symb -> set_value(300);
symb -> set_short("A holy symbol");
symb -> set_alias("holy symbol");
symb -> set_long(
"This is a platinum holysymbol to the All-God. It gives off a \n"+
"soft light and is perhaps magical in nature.\n");
move_object(symb, this_object());
init_command("wear symbol");
*/
}
init() {
::init();
call_out("welcome", 1, this_player());
add_action("pray", "pray");
}
hit_player() {
object obj;
obj = this_player();
if(obj -> query_level() < 15) {
this_object() -> stop_all_fight();
this_player() -> stop_all_fight();
say("Aleena says: I wouldn't do that if I were you "+
obj->query_name() +"\n");
return 0;
}
}
welcome(object obj) {
if(this_player()->query_ghost()) {
write("Aleena exclaims: I shall pray to the All-God to raise you!\n");
obj->toggle_ghost();
return 1;
}
say("Aleena says: Welcome, "+ this_player()->query_name() +". "+
"Please worship with me.\n");
}
pray() {
if(!this_player()->query_ghost()) {
write("Aleena says: I can offer you the following services.\n\n"+
"Cure Light Wounds......100 coins \n"+
"Cure Disease...........200 coins \n"+
"Dispel Magic...........500 coins \n"+
"Aleena says: Tell me which service you wish, "+
this_player()->query_name() +"?\n");
return 1;
}
this_player()->toggle_ghost();
return 1;
}
catch_tell(str) {
call_out("delay_catch",1,str);
}
delay_catch(string str) {
string tmp1, tmp2;
if(this_object()->query_attack()) return;
if(environment(this_player()) != environment()) {
if(sscanf(str, "%stell%s", tmp1, tmp2)) {
write("Aleena says: I hear you. But my powers can only be given "+
"in my presence.\n");
}
return;
}
if(sscanf(str, "%scure light wounds%s", tmp1, tmp2)) {
cure_wounds();
}
else if(sscanf(str, "%scure disease%s", tmp1, tmp2)) {
cure_disease();
}
else if(sscanf(str, "%sdispel magic%s", tmp1, tmp2)) {
dispel_magic();
}
else if(sscanf(str, "%shullo%s", tmp1, tmp2)) {
say("Aleena says: Hullo, my child.\n");
}
}
cure_wounds() {
if(this_player()->query_money() < 100) {
write("Aleena says: But you don't have enough money for the donation.\n");
return 1;
}
say("Aleena begins a silent prayer.\n");
say("Aleena touches the wounds of "+ this_player()->query_name() +"\n"+
this_player()->query_possessive() +" wounds are healed.\n", this_player());
tell_object(this_player(), "Aleena touches your wounds.\n"+
"You are healed.\n");
this_player()->add_money(-100);
this_player()->adj_hp(2 * (random(4) + 1));
return 1;
}
cure_disease() {
object disease;
if(this_player()->query_money() < 200) {
say("Aleena says: But you don't have enough money for the donation.\n");
return 1;
}
if(present("Disease", this_player()));
disease = present("Disease", this_player());
if(!disease) {
say("Aleena says: But you have no diseases, "
+ this_player()->query_name() +"\n");
return 1;
}
say("Aleena begins a silent prayer.\n");
say("Aleena lays her hands upon "+ this_player()->query_name()
+" and\nheals "+ this_player()->query_possessive()
+" diseases.\n", this_player());
tell_object(this_player(), "Aleena lays her hands on you and "+
"cures your diseases.\n");
this_player()->add_money(-200);
destruct(disease);
return 1;
}
dispel_magic() {
int i, j;
object obj;
obj = all_inventory(this_player());
if(this_player()->query_money() < 500) {
say("Aleena says: But you don't have enough money for the donation.\n");
return 1;
}
say("Aleena begins a silent prayer.\n");
for(i=0; i<sizeof(obj); i++) {
if(obj[i] -> dispel_magic()) {
if(obj[i] -> short())
say(obj[i] -> short() +" is dispelled.\n");
else
say("Something is dispelled.\n");
j++;
}
}
if(!j) {
say("Nothing happens.\n");
}
this_player()->add_money(-500);
return 1;
}