#ifndef MAGE_H #define MAGE_H #define HEAL_MAGE_PERIOD (20 - query_intelligence()/6) /*** mage schools ***/ int illusion; /* illusion spells stat */ int charm; int conjuration; int abjuration; int necromancy; int evocation; int divination; int alteration; int illusion_points; /* current spell points for illusions */ int charm_points; int conjuration_points; int abjuration_points; int necromancy_points; int evocation_points; int divination_points; int alteration_points; /*** Mage ***/ int set_illusion(int i) { return illusion = i; } int set_charm(int i) { return charm = i; } int set_conjuration(int i) { return conjuration = i; } int set_abjuration(int i) { return abjuration = i; } int set_necromancy(int i) { return necromancy = i; } int set_evocation(int i) { return evocation = i; } int set_divination(int i) { return divination = i; } int set_alteration(int i) { return alteration = i; } int query_illusion() { return illusion; } int query_charm() { return charm; } int query_conjuration() { return conjuration; } int query_abjuration() { return abjuration; } int query_necromancy() { return necromancy; } int query_evocation() { return evocation; } int query_divination() { return divination; } int query_alteration() { return alteration; } void clear_mage() { illusion = 0; charm = 0; conjuration = 0; abjuration = 0; necromancy = 0; evocation = 0; divination = 0; divination = 0; illusion_points = 0; charm_points = 0; conjuration_points = 0; abjuration_points = 0; necromancy_points = 0; evocation_points = 0; divination_points = 0; divination_points = 0; } int adj_alteration_points(int i) { alteration_points = alteration_points + i; if(alteration_points > alteration*2) alteration_points = alteration*2; if(alteration_points < 0) alteration_points = 0; return alteration_points; } int adj_illusion_points(int i) { illusion_points = illusion_points + i; if(illusion_points > illusion * 2) illusion_points = illusion * 2; if(illusion_points < 0) illusion_points = 0; return illusion_points; } int adj_charm_points(int i) { charm_points = charm_points + i; if(charm_points > charm * 2) charm_points = charm * 2; if(charm_points < 0) charm_points = 0; return charm_points; } int adj_conjuration_points(int i) { conjuration_points = conjuration_points + i; if(conjuration_points > conjuration*2) conjuration_points = conjuration*2; if(conjuration_points < 0) conjuration_points = 0; return conjuration_points; } int adj_abjuration_points(int i) { abjuration_points = abjuration_points + i; if(abjuration_points > abjuration * 2) abjuration_points = abjuration * 2; if(abjuration_points < 0) abjuration_points = 0; return abjuration_points; } int adj_necromancy_points(int i) { necromancy_points = necromancy_points + i; if(necromancy_points > necromancy * 2) necromancy_points = necromancy * 2; if(necromancy_points < 0) necromancy_points = 0; return necromancy_points; } int adj_evocation_points(int i) { evocation_points = evocation_points + i; if(evocation_points > evocation * 2) evocation_points = evocation * 2; if(evocation_points < 0) evocation_points = 0; return evocation_points; } int adj_divination_points(int i) { divination_points = divination_points + i; if(divination_points > divination * 2) divination_points = divination * 2; if(divination_points < 0) divination_points = 0; return divination_points; } int query_illusion_points(int i) { return illusion_points; } int query_charm_points(int i) { return charm_points; } int query_conjuration_points(int i) { return conjuration_points; } int query_abjuration_points(int i) { return abjuration_points; } int query_necromancy_points(int i) { return necromancy_points; } int query_evocation_points(int i) { return evocation_points; } int query_divination_points(int i) { return divination_points; } int query_alteration_points(int i) { return alteration_points; } void query_mage_stats() { string str; write("\n -=[ Mage Schools ]=-\n\n"); str = " Illusion: "+illusion+"("+illusion_points+" pts) "; str = extract(str,0,25); str += " Charm: "+charm+"("+charm_points+" pts) "; str = extract(str,0,50); str += " Conjuration: "+conjuration+"("+conjuration_points+" pts) "; str = extract(str,0,75); write(str +"\n"); str = " Abjuration: "+abjuration+"("+abjuration_points+" pts) "; str = extract(str,0,25); str += " Necromancy: "+necromancy+"("+necromancy_points+" pts) "; str = extract(str,0,50); str += " Evocation: "+evocation+"("+evocation_points+" pts) "; str = extract(str,0,75); write(str +"\n"); str = " Divination: "+divination+"("+divination_points+" pts) "; str = extract(str,0,25); str += " Alteration: "+alteration+"("+alteration_points+" pts) "; str = extract(str,0,50); write(str +"\n"); } void adj_all_mage(int h) { adj_alteration_points(h); adj_illusion_points(h); adj_charm_points(h); adj_conjuration_points(h); adj_abjuration_points(h); adj_necromancy_points(h); adj_evocation_points(h); adj_divination_points(h); } void heal_mage() { if(random(HEAL_MAGE_PERIOD)) return; adj_all_mage(1); } #endif /* MAGE_H */