// Petrarch
// Merentha Lib 1.0
// <skills>
#include <skills.h>
#include <std.h>
#include <daemons.h>
#define SKILL_DISPLAY "\n %^GREEN%^"+list[i]+" %^ORANGE%^"+this_player()->query_skill_level(list[i])+" ("+(this_player()->query_skill_points(list[i])*100/SKILL_D->formula(this_player(),list[i]))+"%)"
#define OLD_SKILL_DISPLAY "\n %^GREEN%^"+list[i]+" %^ORANGE%^"+this_player()->query_skill_level(list[i])+"/"+SKILL_D->overall_skill_adjustment(this_player(), list[i])+"/"+SKILL_D->formula(this_player(), list[i])+"/"+SKILL_D->adj_formula(this_player(), list[i])
inherit DAEMON;
mapping skills=([
"combat": COMBAT_SKILLS,
"weapons": WEAPON_SKILLS,
"magic": MAGIC_SKILLS,
"nature": NATURE_SKILLS,
"deception": DECEPTION_SKILLS,
"science": SCIENCE_SKILLS,
]);
int command() {
string *list, *lcombat, *lweapons, *lnature;
string combat, weapons, magic, nature, deception, science, ret="";
int i,max,w,x;
combat="%^RED%^Combat";
i=sizeof(list=skills["combat"]);
while(i--)
combat+=SKILL_DISPLAY;
weapons="%^RED%^Weapons";
i=sizeof(list=skills["weapons"]);
while(i--)
weapons+=SKILL_DISPLAY;
magic="%^RED%^Magic";
i=sizeof(list=skills["magic"]);
while(i--)
magic+=SKILL_DISPLAY;
nature="%^RED%^Nature";
i=sizeof(list=skills["nature"]);
while(i--)
nature+=SKILL_DISPLAY;
deception="%^RED%^Deception";
i=sizeof(list=skills["deception"]);
while(i--)
deception+=SKILL_DISPLAY;
i=sizeof(list=skills["science"]);
science="%^RED%^Science";
while(i--)
science+=SKILL_DISPLAY;
combat+="\n \n"+magic+"\n \n";
weapons+="\n \n"+deception;
nature+="\n \n"+science;
max=sizeof(lcombat=explode(combat,"\n"));
if(max<i=sizeof(lweapons=explode(weapons,"\n"))) max=i;
if(max<i=sizeof(lnature=explode(nature,"\n"))) max=i;
i=0;
x=this_player()->getenv("SCREEN");
if(!x) x=75;
w=x-4;
w=to_int(w/3);
while(i<max) {
if(i>=sizeof(lcombat)) ret+=arrange_string(" ",w+3);
else ret+=arrange_string(lcombat[i],w+3);
if(i>=sizeof(lweapons)) ret+=arrange_string(" ",w-1);
else ret+=arrange_string(lweapons[i],w-1);
if(i>=sizeof(lnature)) ret+=arrange_string(" ",w-2);
else ret+=arrange_string(lnature[i],w-2);
ret+="\n";
i++;
}
message("command",border(ret,"skills",x),this_player());
return 1;
}
string help() {
return "\
Syntax: skills\n\n\
This command displays your current skill levels.\n\
Skills determine how good you are in a given field of combat, magic, nature or other area. The higher your skill level the better you are in that area. Skills improve with incresed use.\n\
\n\
See also: stats, classes, races";
}