int
d_dispel_abil(struct command *c)
{
	int target = c->a;
	struct char_magic *p;

	p = rp_magic(target);

	if (p && p->ability_shroud > 0)
	{
		if (!charge_aura(c->who, 3))
			return FALSE;

		wout(c->who, "Dispeled an aura %s ability shroud from %s.",
						nice_num(p->ability_shroud),
						box_name(target));
		p->ability_shroud = 0;
		wout(target, "The magical ability shroud has dissipated.");
	}
	else
	{
		wout(c->who, "%s had no ability shroud.", box_name(target));
	}

	return TRUE;
}
Example #2
0
static int
hinder_med_chance(int who)
{
  struct char_magic *p;

  p = rp_magic(who);

  if (p == NULL || p->hinder_meditation < 1)
    return 0;

  switch (p->hinder_meditation) {
  case 1:
    return 10;
  case 2:
    return 25;
  case 3:
    return 50;
  case 4:
    return 75;
  case 5:
    return 90;

  default:
    assert(FALSE);
  }
}