/*
 *	Item generator 2, a simpler approch to the creation system
 *
 *	File: Generator.Ring.c
 *	Descr: This file holds the main generation of Ring items
 *	       Makes sure Ring has magical property
 */

#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_ring_rare (OBJ_DATA * obj, int level)
{
	char name_set[MSL];
	char shor_set[MSL];
	char long_set[MSL];
	char prefix[MSL];
	char suffix[MSL];

	obj = create_object (get_obj_index (910), 0);
	obj->wear_flags =  ITEM_TAKE;
	obj->wear_flags += ITEM_WEAR_FINGER;


	switch(number_range(1, 5))
	{	default:
		case 1:
		sprintf(prefix, "Raven");
		break;
		case 2:
		sprintf(prefix, "Dark");
		break;
		case 3:
		sprintf(prefix, "Destructive");
		break;
		case 4:
		sprintf(prefix, "Unholy");
		break;
		case 5:
		sprintf(prefix, "Shimmering");
		break;
	}

	switch(number_range(1, 5))
	{	default:
		case 1:
		sprintf(suffix, "spiral");
		break;
		case 2:
		sprintf(suffix, "coil");
		break;
		case 3:
		sprintf(suffix, "circle");
		break;
		case 4:
		sprintf(suffix, "thorned ring");
		break;
		case 5:
		sprintf(suffix, "ring");
		break;
	}

	switch(number_range(1, 3))
	{	default:
		case 1:
		gen_ring_prefix(obj, level);
		gen_ring_suffix(obj, level);
		break;

		case 2:
		gen_ring_prefix(obj, level);
		gen_ring_prefix(obj, level);
		gen_ring_suffix(obj, level);
		break;

		case 3:
		gen_ring_prefix(obj, level);
		gen_ring_suffix(obj, level);
		gen_ring_suffix(obj, level);
		break;

		case 4:
		gen_ring_prefix(obj, level);
		gen_ring_prefix(obj, level);
		gen_ring_suffix(obj, level);
		gen_ring_suffix(obj, level);
		break;
	}

	sprintf(name_set, "%s %s", prefix, suffix);
	sprintf(shor_set, "%s %s", prefix, suffix);
	sprintf(long_set, "a small ring is on the ground here");
	obj->name        = str_dup (name_set);
	obj->short_descr = str_dup (shor_set);
	obj->description = str_dup (long_set);
	obj->level	   = level;

	return(obj);
}


OBJ_DATA *
gen_ammy_rare (OBJ_DATA * obj, int level)
{
	char name_set[MSL];
	char shor_set[MSL];
	char long_set[MSL];
	char prefix[MSL];
	char suffix[MSL];

	obj = create_object (get_obj_index (911), 0);
	obj->wear_flags =  ITEM_TAKE;
	obj->wear_flags += ITEM_WEAR_NECK;


	switch(number_range(1, 5))
	{	default:
		case 1:
		sprintf(prefix, "Hawk");
		break;
		case 2:
		sprintf(prefix, "Dark");
		break;
		case 3:
		sprintf(prefix, "Destructive");
		break;
		case 4:
		sprintf(prefix, "Unholy");
		break;
		case 5:
		sprintf(prefix, "Shimmering");
		break;
	}

	switch(number_range(1, 5))
	{	default:
		case 1:
		sprintf(suffix, "chain");
		break;
		case 2:
		sprintf(suffix, "coil");
		break;
		case 3:
		sprintf(suffix, "necklace");
		break;
		case 4:
		sprintf(suffix, "string");
		break;
		case 5:
		sprintf(suffix, "amulet");
		break;
	}

	switch(number_range(1, 3))
	{	default:
		case 1:
		gen_ring_prefix(obj, level);
		gen_ring_suffix(obj, level);
		break;

		case 2:
		gen_ring_prefix(obj, level);
		gen_ring_prefix(obj, level);
		gen_ring_suffix(obj, level);
		break;

		case 3:
		gen_ring_prefix(obj, level);
		gen_ring_suffix(obj, level);
		gen_ring_suffix(obj, level);
		break;

		case 4:
		gen_ring_prefix(obj, level);
		gen_ring_prefix(obj, level);
		gen_ring_suffix(obj, level);
		gen_ring_suffix(obj, level);
		break;
	}

	sprintf(name_set, "%s %s", prefix, suffix);
	sprintf(shor_set, "%s %s", prefix, suffix);
	sprintf(long_set, "a small amulet is on the ground here");
	obj->name        = str_dup (name_set);
	obj->short_descr = str_dup (shor_set);
	obj->description = str_dup (long_set);
	obj->level	   = level;

	return(obj);
}