/** improved phantasm **/ status improved(string str, mixed alt_type) { string who; object ob; int level, sp_points; if(!str || sscanf(str,"phantasm %s", str) != 1) { write("improved phantasm <string>\n"); return 1; } if(!alt_type) alt_type = "illusion"; level = (objectp(alt_type)) ? (int)alt_type->query_cast_level() : (int)call_other(this_player(), "query_"+ alt_type); sp_points = (objectp(alt_type)) ? (int)alt_type->query_charges() : (int)call_other(this_player(), "query_"+ alt_type +"_points"); if(level < 10) { write("You are not knowledgable enough.\n"); return 1; } if(sp_points < 3) { write("You feel too weak.\n"); return 1; } if(objectp(alt_type)) alt_type->adj_charges(-3); else call_other(this_player(), "adj_"+ alt_type +"_points", -3); say(str +"\n"); write("You improved phantasm: "+ str +"\n"); log_file("Illusion", (string)this_player()->query_name(1) + " improved phantasmed "+ str +"\n"); if(objectp(alt_type)) alt_type->end_spell(); return 1; } /* Native Mode Move */ #include <move.h>