/*
 *	Item generator 2, a simpler approch to the creation system
 *
 *	File: Suffix.armor.c
 *	Descr: This file holds all armor suffixes called by the
 *		armor prefix/suffix generator.
 */

#if defined(macintosh)
#include <types.h>
#else
#include <sys/types.h>
#endif
#include <ctype.h>
#include <stdio.h>
#include <string.h>
#include <time.h>
#include "merc.h"
#include "interp.h"
#include "magic.h"
#include "recycle.h"
#include "tables.h"

OBJ_DATA *
gen_suffix_armor_luck (OBJ_DATA * obj, int level) 
{
  AFFECT_DATA *af = new_affect ();	// aff data
  char prefix_full[MSL];

  if (level >= 50)		// Quick hack for range
    {
      level = 50;
    }

  int selection = number_range (1, level);	// Switch on level range
  int mod;

  // Now the selection of the modifier
  switch (selection)
    {
    default:
      mod = 1;
      sprintf (prefix_full, "%s of fortune", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
    case 7:
    case 8:
    case 9:
    case 10:
    case 11:
    case 12:
    case 13:
    case 14:
    case 15:
    case 16:
    case 17:
    case 18:
    case 19:
    case 20:
      mod = 1;
      sprintf (prefix_full, "%s of fortune", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    case 21:
    case 22:
    case 23:
    case 24:
    case 25:
    case 26:
    case 27:
    case 28:
    case 29:
    case 30:
    case 31:
    case 32:
    case 33:
    case 34:
    case 35:
    case 36:
    case 37:
    case 38:
    case 39:
    case 40:
      mod = 2;
      sprintf (prefix_full, "%s of luck", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    case 41:
    case 42:
    case 43:
    case 44:
    case 45:
    case 46:
    case 47:
    case 48:
    case 49:
    case 50:
      mod = 3;
      sprintf (prefix_full, "%s of kismet", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    }

  
af->location = APPLY_LUCK;
  
af->modifier = mod;
  
af->where = TO_OBJECT;
  
af->type = 10;
  
af->duration = -1;
  
af->bitvector = 0;
  
af->level = mod;
  
af->next = obj->affected;
  
obj->affected = af;
  


return (obj);
}


OBJ_DATA *
gen_suffix_armor_resil (OBJ_DATA * obj, int level) 
{
  AFFECT_DATA *af = new_affect ();	// aff data
  char prefix_full[MSL];

  if (level >= 50)		// Quick hack for range
    {
      level = 50;
    }

  int selection = number_range (1, level);	// Switch on level range
  int mod;

  // Now the selection of the modifier
  switch (selection)
    {
    default:
      mod = 1;
      sprintf (prefix_full, "%s of recovery", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
    case 7:
    case 8:
    case 9:
    case 10:
    case 11:
    case 12:
    case 13:
    case 14:
    case 15:
    case 16:
    case 17:
    case 18:
    case 19:
    case 20:
      mod = 1;
      sprintf (prefix_full, "%s of recovery", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    case 21:
    case 22:
    case 23:
    case 24:
    case 25:
    case 26:
    case 27:
    case 28:
    case 29:
    case 30:
    case 31:
    case 32:
    case 33:
    case 34:
    case 35:
    case 36:
    case 37:
    case 38:
    case 39:
    case 40:
      mod = 2;
      sprintf (prefix_full, "%s of Resilience", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    case 41:
    case 42:
    case 43:
    case 44:
    case 45:
    case 46:
    case 47:
    case 48:
    case 49:
    case 50:
      mod = 3;
      sprintf (prefix_full, "%s of anti-change", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    }

  
af->location = APPLY_RESIL;
  
af->modifier = mod;
  
af->where = TO_OBJECT;
  
af->type = 10;
  
af->duration = -1;
  
af->bitvector = 0;
  
af->level = mod;
  
af->next = obj->affected;
  
obj->affected = af;
  


return (obj);
}

OBJ_DATA *
gen_suffix_armor_intui (OBJ_DATA * obj, int level) 
{
  AFFECT_DATA *af = new_affect ();	// aff data
  char prefix_full[MSL];

  if (level >= 50)		// Quick hack for range
    {
      level = 50;
    }

  int selection = number_range (1, level);	// Switch on level range
  int mod;

  // Now the selection of the modifier
  switch (selection)
    {
    default:
      mod = 1;
      sprintf (prefix_full, "%s of insight", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
    case 7:
    case 8:
    case 9:
    case 10:
    case 11:
    case 12:
    case 13:
    case 14:
    case 15:
    case 16:
    case 17:
    case 18:
    case 19:
    case 20:
      mod = 1;
      sprintf (prefix_full, "%s of insight", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    case 21:
    case 22:
    case 23:
    case 24:
    case 25:
    case 26:
    case 27:
    case 28:
    case 29:
    case 30:
    case 31:
    case 32:
    case 33:
    case 34:
    case 35:
    case 36:
    case 37:
    case 38:
    case 39:
    case 40:
      mod = 2;
      sprintf (prefix_full, "%s of intuition", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    case 41:
    case 42:
    case 43:
    case 44:
    case 45:
    case 46:
    case 47:
    case 48:
    case 49:
    case 50:
      mod = 3;
      sprintf (prefix_full, "%s of second sight", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    }

  
af->location = APPLY_INTUI;
  
af->modifier = mod;
  
af->where = TO_OBJECT;
  
af->type = 10;
  
af->duration = -1;
  
af->bitvector = 0;
  
af->level = mod;
  
af->next = obj->affected;
  
obj->affected = af;
  


return (obj);
}



OBJ_DATA *
gen_suffix_armor_wis (OBJ_DATA * obj, int level) 
{
  AFFECT_DATA *af = new_affect ();	// aff data
  char prefix_full[MSL];

  if (level >= 50)		// Quick hack for range
    {
      level = 50;
    }

  int selection = number_range (1, level);	// Switch on level range
  int mod;

  // Now the selection of the modifier
  switch (selection)
    {
    default:
      mod = 1;
      sprintf (prefix_full, "%s of the gnome", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
    case 7:
    case 8:
    case 9:
    case 10:
      mod = 1;
      sprintf (prefix_full, "%s of the gnome", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    case 11:
    case 12:
    case 13:
    case 14:
    case 15:
    case 16:
    case 17:
    case 18:
    case 19:
    case 20:
      mod = 2;
      sprintf (prefix_full, "%s of the Eldhan", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    case 21:
    case 22:
    case 23:
    case 24:
    case 25:
    case 26:
    case 27:
    case 28:
    case 29:
    case 30:
      mod = 3;
      sprintf (prefix_full, "%s of the cleric", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    case 31:
    case 32:
    case 33:
    case 34:
    case 35:
    case 36:
    case 37:
    case 38:
    case 39:
    case 40:
      mod = 4;
      sprintf (prefix_full, "%s of the holy sceptre", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    case 41:
    case 42:
    case 43:
    case 44:
    case 45:
    case 46:
    case 47:
    case 48:
    case 49:
    case 50:
      mod = 5;
      sprintf (prefix_full, "%s of kordoch", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    }

  
af->location = APPLY_WIS;
  
af->modifier = mod;
  
af->where = TO_OBJECT;
  
af->type = 10;
  
af->duration = -1;
  
af->bitvector = 0;
  
af->level = mod;
  
af->next = obj->affected;
  
obj->affected = af;
  


return (obj);
}


OBJ_DATA *
gen_suffix_armor_int (OBJ_DATA * obj, int level) 
{
  AFFECT_DATA *af = new_affect ();	// aff data
  char prefix_full[MSL];

  if (level >= 50)		// Quick hack for range
    {
      level = 50;
    }

  int selection = number_range (1, level);	// Switch on level range
  int mod;

  // Now the selection of the modifier
  switch (selection)
    {
    default:
      mod = 1;
      sprintf (prefix_full, "%s of energy", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
    case 7:
    case 8:
    case 9:
    case 10:
      mod = 1;
      sprintf (prefix_full, "%s of energy", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    case 11:
    case 12:
    case 13:
    case 14:
    case 15:
    case 16:
    case 17:
    case 18:
    case 19:
    case 20:
      mod = 2;
      sprintf (prefix_full, "%s of the mind", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    case 21:
    case 22:
    case 23:
    case 24:
    case 25:
    case 26:
    case 27:
    case 28:
    case 29:
    case 30:
      mod = 3;
      sprintf (prefix_full, "%s of brillience", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    case 31:
    case 32:
    case 33:
    case 34:
    case 35:
    case 36:
    case 37:
    case 38:
    case 39:
    case 40:
      mod = 4;
      sprintf (prefix_full, "%s of sorcery", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    case 41:
    case 42:
    case 43:
    case 44:
    case 45:
    case 46:
    case 47:
    case 48:
    case 49:
    case 50:
      mod = 5;
      sprintf (prefix_full, "%s of wizardy", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    }

  
af->location = APPLY_INT;
  
af->modifier = mod;
  
af->where = TO_OBJECT;
  
af->type = 10;
  
af->duration = -1;
  
af->bitvector = 0;
  
af->level = mod;
  
af->next = obj->affected;
  
obj->affected = af;
  


return (obj);
}

OBJ_DATA *
gen_suffix_armor_str (OBJ_DATA * obj, int level) 
{
  AFFECT_DATA *af = new_affect ();	// aff data
  char prefix_full[MSL];

  if (level >= 50)		// Quick hack for range
    {
      level = 50;
    }

  int selection = number_range (1, level);	// Switch on level range
  int mod;

  // Now the selection of the modifier
  switch (selection)
    {
    default:
      mod = 1;
      sprintf (prefix_full, "%s of the dwarf", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
    case 7:
    case 8:
    case 9:
    case 10:
      mod = 1;
      sprintf (prefix_full, "%s of the dwarf", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    case 11:
    case 12:
    case 13:
    case 14:
    case 15:
    case 16:
    case 17:
    case 18:
    case 19:
    case 20:
      mod = 2;
      sprintf (prefix_full, "%s of the ox", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    case 21:
    case 22:
    case 23:
    case 24:
    case 25:
    case 26:
    case 27:
    case 28:
    case 29:
    case 30:
      mod = 3;
      sprintf (prefix_full, "%s of the ogre", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    case 31:
    case 32:
    case 33:
    case 34:
    case 35:
    case 36:
    case 37:
    case 38:
    case 39:
    case 40:
      mod = 4;
      sprintf (prefix_full, "%s of might", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    case 41:
    case 42:
    case 43:
    case 44:
    case 45:
    case 46:
    case 47:
    case 48:
    case 49:
    case 50:
      mod = 5;
      sprintf (prefix_full, "%s of the corru", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    }

  
af->location = APPLY_STR;
  
af->modifier = mod;
  
af->where = TO_OBJECT;
  
af->type = 10;
  
af->duration = -1;
  
af->bitvector = 0;
  
af->level = mod;
  
af->next = obj->affected;
  
obj->affected = af;
  


return (obj);
}

OBJ_DATA *
gen_suffix_armor_dex (OBJ_DATA * obj, int level) 
{
  AFFECT_DATA *af = new_affect ();	// aff data
  char prefix_full[MSL];

  if (level >= 50)		// Quick hack for range
    {
      level = 50;
    }

  int selection = number_range (1, level);	// Switch on level range
  int mod;

  // Now the selection of the modifier
  switch (selection)
    {
    default:
      mod = 1;
      sprintf (prefix_full, "%s of dexterity", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
    case 7:
    case 8:
    case 9:
    case 10:
      mod = 1;
      sprintf (prefix_full, "%s of dexterity", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    case 11:
    case 12:
    case 13:
    case 14:
    case 15:
    case 16:
    case 17:
    case 18:
    case 19:
    case 20:
      mod = 2;
      sprintf (prefix_full, "%s of skill", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    case 21:
    case 22:
    case 23:
    case 24:
    case 25:
    case 26:
    case 27:
    case 28:
    case 29:
    case 30:
      mod = 3;
      sprintf (prefix_full, "%s of accuracy", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    case 31:
    case 32:
    case 33:
    case 34:
    case 35:
    case 36:
    case 37:
    case 38:
    case 39:
    case 40:
      mod = 4;
      sprintf (prefix_full, "%s of precision", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    case 41:
    case 42:
    case 43:
    case 44:
    case 45:
    case 46:
    case 47:
    case 48:
    case 49:
    case 50:
      mod = 5;
      sprintf (prefix_full, "%s of perfection", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    }

  
af->location = APPLY_DEX;
  
af->modifier = mod;
  
af->where = TO_OBJECT;
  
af->type = 10;
  
af->duration = -1;
  
af->bitvector = 0;
  
af->level = mod;
  
af->next = obj->affected;
  
obj->affected = af;
  


return (obj);
}


OBJ_DATA *
gen_suffix_armor_con (OBJ_DATA * obj, int level) 
{
  AFFECT_DATA *af = new_affect ();	// aff data
  char prefix_full[MSL];

  if (level >= 50)		// Quick hack for range
    {
      level = 50;
    }

  int selection = number_range (1, level);	// Switch on level range
  int mod;

  // Now the selection of the modifier
  switch (selection)
    {
    default:
      mod = 1;
      sprintf (prefix_full, "%s of the jackal", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
    case 7:
    case 8:
    case 9:
    case 10:
      mod = 1;
      sprintf (prefix_full, "%s of the jackal", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    case 11:
    case 12:
    case 13:
    case 14:
    case 15:
    case 16:
    case 17:
    case 18:
    case 19:
    case 20:
      mod = 2;
      sprintf (prefix_full, "%s of the fox", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    case 21:
    case 22:
    case 23:
    case 24:
    case 25:
    case 26:
    case 27:
    case 28:
    case 29:
    case 30:
      mod = 3;
      sprintf (prefix_full, "%s of the wolf", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    case 31:
    case 32:
    case 33:
    case 34:
    case 35:
    case 36:
    case 37:
    case 38:
    case 39:
    case 40:
      mod = 4;
      sprintf (prefix_full, "%s of the tiger", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    case 41:
    case 42:
    case 43:
    case 44:
    case 45:
    case 46:
    case 47:
    case 48:
    case 49:
    case 50:
      mod = 5;
      sprintf (prefix_full, "%s of tedeska", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    }

  
af->location = APPLY_CON;
  
af->modifier = mod;
  
af->where = TO_OBJECT;
  
af->type = 10;
  
af->duration = -1;
  
af->bitvector = 0;
  
af->level = mod;
  
af->next = obj->affected;
  
obj->affected = af;
  


return (obj);
}


OBJ_DATA *
gen_suffix_armor_hp (OBJ_DATA * obj, int level) 
{
  AFFECT_DATA *af = new_affect ();	// aff data
  char prefix_full[MSL];

  if (level >= 50)		// Quick hack for range
    {
      level = 50;
    }

  int selection = number_range (1, level);	// Switch on level range
  int mod;

  // Now the selection of the modifier
  switch (selection)
    {
    default:
      mod = number_range (1, 5);
      sprintf (prefix_full, "%s of life", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
    case 7:
    case 8:
    case 9:
    case 10:
      mod = number_range (1, 5);
      sprintf (prefix_full, "%s of life", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    case 11:
    case 12:
    case 13:
    case 14:
    case 15:
    case 16:
    case 17:
    case 18:
    case 19:
    case 20:
      mod = number_range (6, 10);
      sprintf (prefix_full, "%s of blood", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    case 21:
    case 22:
    case 23:
    case 24:
    case 25:
    case 26:
    case 27:
    case 28:
    case 29:
    case 30:
      mod = number_range (11, 15);
      sprintf (prefix_full, "%s of life force", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    case 31:
    case 32:
    case 33:
    case 34:
    case 35:
    case 36:
    case 37:
    case 38:
    case 39:
    case 40:
      mod = number_range (16, 20);
      sprintf (prefix_full, "%s of greater life force", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    case 41:
    case 42:
    case 43:
    case 44:
    case 45:
      mod = number_range (21, 25);
      sprintf (prefix_full, "%s of the fubashi", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    case 46:
    case 47:
    case 48:
    case 49:
    case 50:
      mod = number_range (26, 30);
      sprintf (prefix_full, "%s of the deurgar", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    }

  
af->location = APPLY_HIT;
  
af->modifier = mod;
  
af->where = TO_OBJECT;
  
af->type = 10;
  
af->duration = -1;
  
af->bitvector = 0;
  
af->level = mod;
  
af->next = obj->affected;
  
obj->affected = af;
  


return (obj);
}

OBJ_DATA *
gen_suffix_armor_mana (OBJ_DATA * obj, int level) 
{
  AFFECT_DATA *af = new_affect ();	// aff data
  char prefix_full[MSL];

  if (level >= 50)		// Quick hack for range
    {
      level = 50;
    }

  int selection = number_range (1, level);	// Switch on level range
  int mod;

  // Now the selection of the modifier
  switch (selection)
    {
    default:
      mod = number_range (1, 5);
      sprintf (prefix_full, "%s of the apprentice", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
    case 7:
    case 8:
    case 9:
    case 10:
      mod = number_range (1, 5);
      sprintf (prefix_full, "%s of the apprentice", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    case 11:
    case 12:
    case 13:
    case 14:
    case 15:
    case 16:
    case 17:
    case 18:
    case 19:
    case 20:
      mod = number_range (6, 10);
      sprintf (prefix_full, "%s of the acolyte", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    case 21:
    case 22:
    case 23:
    case 24:
    case 25:
    case 26:
    case 27:
    case 28:
    case 29:
    case 30:
      mod = number_range (11, 15);
      sprintf (prefix_full, "%s of the necroamancer", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    case 31:
    case 32:
    case 33:
    case 34:
    case 35:
    case 36:
    case 37:
    case 38:
    case 39:
    case 40:
      mod = number_range (16, 20);
      sprintf (prefix_full, "%s of the wizard", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    case 41:
    case 42:
    case 43:
    case 44:
    case 45:
      mod = number_range (21, 25);
      sprintf (prefix_full, "%s of the Archiwizard", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    case 46:
    case 47:
    case 48:
    case 49:
    case 50:
      mod = number_range (26, 30);
      sprintf (prefix_full, "%s of the Grand wizard", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    }

  
af->location = APPLY_MANA;
  
af->modifier = mod;
  
af->where = TO_OBJECT;
  
af->type = 10;
  
af->duration = -1;
  
af->bitvector = 0;
  
af->level = mod;
  
af->next = obj->affected;
  
obj->affected = af;
  


return (obj);
}

OBJ_DATA *
gen_suffix_armor_move (OBJ_DATA * obj, int level) 
{
  AFFECT_DATA *af = new_affect ();	// aff data
  char prefix_full[MSL];

  if (level >= 50)		// Quick hack for range
    {
      level = 50;
    }

  int selection = number_range (1, level);	// Switch on level range
  int mod;

  // Now the selection of the modifier
  switch (selection)
    {
    default:
      mod = number_range (1, 5);
      sprintf (prefix_full, "%s of the mouse", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
    case 7:
    case 8:
    case 9:
    case 10:
      mod = number_range (1, 5);
      sprintf (prefix_full, "%s of the mouse", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    case 11:
    case 12:
    case 13:
    case 14:
    case 15:
    case 16:
    case 17:
    case 18:
    case 19:
    case 20:
      mod = number_range (6, 10);
      sprintf (prefix_full, "%s of the horse", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    case 21:
    case 22:
    case 23:
    case 24:
    case 25:
    case 26:
    case 27:
    case 28:
    case 29:
    case 30:
      mod = number_range (11, 15);
      sprintf (prefix_full, "%s of the cheeta", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    case 31:
    case 32:
    case 33:
    case 34:
    case 35:
    case 36:
    case 37:
    case 38:
    case 39:
    case 40:
      mod = number_range (16, 20);
      sprintf (prefix_full, "%s of the hawk", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    case 41:
    case 42:
    case 43:
    case 44:
    case 45:
      mod = number_range (21, 25);
      sprintf (prefix_full, "%s of the kobald", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    case 46:
    case 47:
    case 48:
    case 49:
    case 50:
      mod = number_range (26, 30);
      sprintf (prefix_full, "%s of the tasoli", obj->short_descr);
      
obj->short_descr = str_dup (prefix_full);
      break;
    }

  
af->location = APPLY_MOVE;
  
af->modifier = mod;
  
af->where = TO_OBJECT;
  
af->type = 10;
  
af->duration = -1;
  
af->bitvector = 0;
  
af->level = mod;
  
af->next = obj->affected;
  
obj->affected = af;
  


return (obj);
}