#ifndef PSI_H
#define PSI_H
/*** Psionicist ***/
int clairsentient; /* sensory effecting powers */
int psycokinetic; /* object effecting powers */
int psycometabolic; /* body effecting powers */
int psycoportive; /* space effecting powers */
int telepathic; /* thought effecting powers */
int metapsionic; /* enhancement powers */
int psionic_points; /* current psionic points */
int max_psionic_points; /* maximum psionic points */
/*** Psionicist ***/
int query_clairsentient() { return clairsentient; }
int query_psycokinetic() { return psycokinetic; }
int query_psycometabolic() { return psycometabolic; }
int query_psycoportive() { return psycoportive; }
int query_telepathic() { return telepathic; }
int query_metapsionic() { return metapsionic; }
void set_max_psp() {
max_psionic_points += clairsentient + psycokinetic + psycometabolic;
max_psionic_points += psycoportive + telepathic + metapsionic;
max_psionic_points = 2 * max_psionic_points;
}
int set_clairsentient(int i) {
clairsentient = i;
set_max_psp();
return clairsentient;
}
int set_psycokinetic(int i) {
psycokinetic = i;
set_max_psp();
return psycokinetic;
}
int set_psycometabolic(int i) {
psycometabolic = i;
set_max_psp();
return psycometabolic;
}
int set_psycoportive(int i) {
psycoportive = i;
set_max_psp();
return psycoportive;
}
int set_telepathic(int i) {
telepathic = i;
set_max_psp();
return telepathic;
}
int set_metapsionic(int i) {
metapsionic = i;
set_max_psp();
return metapsionic;
}
int query_psionic_points() { return psionic_points; }
int query_psp() { return psionic_points; }
int query_max_psionic_points() { return max_psionic_points; }
int query_max_psp() { return max_psionic_points; }
int adj_psionic_points(int i) {
psionic_points = psionic_points + i;
if(psionic_points > max_psionic_points)
psionic_points = max_psionic_points;
return psionic_points;
}
void clear_psionicist() {
clairsentient = 0; psycokinetic = 0; psycometabolic = 0;
psycoportive = 0; telepathic = 0; metapsionic = 0;
psionic_points = 0; max_psionic_points = 0;
}
void query_psionicist_stats() {
string str;
str = "\n -=[ Psionicist Disciplines ]=-\n\n";
str += " Clairsentience: "+clairsentient+" ";
str = extract(str,0,25);
str += " Psycokinetic: "+psycokinetic+" ";
str = extract(str,0,50);
str += " Psycometabolism: "+psycometabolic+" ";
str = extract(str,0,75);
write(str +"\n");
str = " Psycoportive: "+psycoportive+" ";
str = extract(str,0,25);
str += " Telepathy: "+telepathic+" ";
str = extract(str,0,50);
str += " Metapsionic: "+metapsionic+" ";
str = extract(str,0,75);
write(str +"\n");
write(" Psionic Points: "+psionic_points+"/"+max_psionic_points+"\n");
}
void heal_psionicist(int h) {
adj_psionic_points(h);
}
#endif /* PSI_H */