Esempio n. 1
0
/*
 *  Sat Oct  3 18:33:15 1998 -- Scott Turner
 *
 *  Select a random beast.  This should be inversely weighted by the
 *  combat prowess of the beast.
 *
 */
int
random_beast(int sk)
{
  int i, choice = 0;
  int sum = 0, val;

  loop_item(i) {
    if (item_attack(i) &&
        item_defense(i) &&
        item_wild(i) &&
        (!sk || subkind(i) == sk) && !rp_item(i)->maintenance) {
      val = MAX_MM - MM(i) + 1;
      if (val < 0)
        val = 1;
      sum += val;
      if (rnd(1, sum) <= val) {
        choice = i;
      };
    };
  }
  next_item;

  assert(choice);
  return choice;
};
char *
plural_item_name(int item, int qty)
{
	char *s;

	if (qty == 1)
		return display_name(item);

	s = rp_item(item) ? rp_item(item)->plural_name : "";

	if (s == NULL || *s == '\0')
	{
		fprintf(stderr, "warning: plural name not set for "
				"item %s\n", box_code(item));
		s = display_name(item);
	}

	return s;
}
Esempio n. 3
0
/*
 *  Sat Oct  3 18:22:54 1998 -- Scott Turner
 *
 *  Select a random soldier-type unit.
 *
 */
static int
random_soldier()
{
  int i, choice = 0;
  int sum = 0;

  loop_item(i) {
    if (item_attack(i) &&
        item_defense(i) && man_item(i) && rp_item(i)->maintenance) {
      sum++;
      if (rnd(1, sum) == 1) {
        choice = i;
      };
    };
  }
  next_item;

  return choice;

};