// Gototh, 09/09/98
/*
 * This shadow increases a skill bonuses by a certain percentage.
 */
#include <skills.h>
inherit "/std/effect_shadow";
/**
 * @ignore yes
 */
varargs int query_skill_bonus(string word, int true) {
  int i, bonus;
  mixed args;
  string querying;
  mapping skills_to_modify;
  bonus = player->query_skill_bonus(word, true);
  
  if(true) {
    return bonus;
  }
  args = arg();
  /*
   * Create a mapping of the skills to modify and the percentages
   * to modify them by.
   */
  skills_to_modify = ([ ]);
  for(i = 0; i < sizeof(args); i += 3) {
    if(!skills_to_modify[args[i]]) {
      skills_to_modify[args[i]] = ({ });
    }
    skills_to_modify[args[i]] += ({ args[i + 1] });
  }
  /*
   * Check if the bonus being queried is to be modified.
   */
  querying = SKILL_OB->query_skill(explode(word, "."));
  if(!skills_to_modify[querying]) {
    return bonus;
  }
  /*
   * Adjust the bonus by the correct percentage.
   */
   
  tell_creator(find_living("gototh"), "bonus: %O\n", bonus);
  tell_creator(find_living("gototh"), "skills_to_modify[querying][i]: %O\n", 
    skills_to_modify[querying][i]);  
  for(i = 0; i < sizeof(skills_to_modify[querying]); i++) {
    if(skills_to_modify[querying][i] < 0) {
      bonus -= ((bonus * -(skills_to_modify[querying][i])) / 100);
    } else {
      bonus += ((bonus * skills_to_modify[querying][i]) / 100);
    }
  }
  tell_creator(find_living("gototh"), "bonus: %O\n", bonus);
  return bonus;
} /* query_skill_bonus() */