/*
* Item Generator version 2
* File Description: Generator.Armor.c
* This file holds the generation armor.
*
* This file sets all avaible properties to the object
* From keyword/short_descr/long, wear flags, value
* weight, and AC values.
*
* This generator also makes use of the prefix/suffix generator for armor
*
* The names of the items have no link to anything but randomness.
*
* -Thri
*/
#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_armor_rare (OBJ_DATA * obj, int level)
{
char name_set[MSL];
char shor_set[MSL];
char long_set[MSL];
int prefix_name = number_range(1, 12);
int suffix_name = number_range(1, 10);
char prefix[MSL];
char suffix[MSL];
int armor_type = number_range(1, 11);
obj = create_object (get_obj_index (919), 0);
obj->wear_flags = ITEM_TAKE;
switch(number_range(1, 2))
{
default:
case 1:
gen_armor_choice (obj, level);
gen_armor_choice (obj, level);
break;
case 2:
gen_armor_choice (obj, level);
gen_armor_choice (obj, level);
gen_armor_choice (obj, level);
break;
}
switch(prefix_name)
{
default:
case 1:
sprintf( prefix, "Ancient");
break;
case 2:
sprintf( prefix, "Leather");
break;
case 3:
sprintf( prefix, "Death");
break;
case 4:
sprintf( prefix, "Destruction");
break;
case 5:
sprintf( prefix, "Golden");
break;
case 6:
sprintf( prefix, "Onyx");
break;
case 7:
sprintf( prefix, "Micia");
break;
case 8:
sprintf( prefix, "Jet black");
break;
case 9:
sprintf( prefix, "Jeweled");
break;
case 10:
sprintf( prefix, "Moonstone");
break;
case 11:
sprintf( prefix, "Sapphire");
break;
case 12:
sprintf( prefix, "Horseman's");
break;
}
switch(suffix_name)
{
default:
case 1:
sprintf( suffix, "carpace");
break;
case 2:
sprintf( suffix, "defense");
break;
case 3:
sprintf( suffix, "armour");
break;
case 4:
sprintf( suffix, "chainmail");
break;
case 5:
sprintf( suffix, "plated mail");
break;
case 6:
sprintf( suffix, "shield");
break;
case 7:
sprintf( suffix, "power");
break;
case 8:
sprintf( suffix, "struggle");
break;
case 9:
sprintf( suffix, "spiral");
break;
case 10:
sprintf( suffix, "coil");
break;
}
switch(armor_type)
{
case GEN_ARMOR_BODY:
obj->wear_flags += ITEM_WEAR_BODY;
sprintf(name_set, "%s %s", prefix, suffix);
sprintf(shor_set, "%s %s", prefix, suffix);
sprintf(long_set, "%s %s is on the ground here.", prefix, suffix);
obj->name = str_dup (name_set);
obj->short_descr = str_dup (shor_set);
obj->description = str_dup (long_set);
break;
case GEN_ARMOR_HEAD:
obj->wear_flags += ITEM_WEAR_HEAD;
sprintf(name_set, "%s %s", prefix, suffix);
sprintf(shor_set, "%s %s", prefix, suffix);
sprintf(long_set, "%s %s is on the ground here.", prefix, suffix);
obj->name = str_dup (name_set);
obj->short_descr = str_dup (shor_set);
obj->description = str_dup (long_set);
break;
case GEN_ARMOR_FEET:
obj->wear_flags += ITEM_WEAR_FEET;
sprintf(name_set, "%s %s", prefix, suffix);
sprintf(shor_set, "%s %s", prefix, suffix);
sprintf(long_set, "%s %s is on the ground here.", prefix, suffix);
obj->name = str_dup (name_set);
obj->short_descr = str_dup (shor_set);
obj->description = str_dup (long_set);
break;
case GEN_ARMOR_LEGS:
obj->wear_flags += ITEM_WEAR_LEGS;
sprintf(name_set, "%s %s", prefix, suffix);
sprintf(shor_set, "%s %s", prefix, suffix);
sprintf(long_set, "%s %s is on the ground here.", prefix, suffix);
obj->name = str_dup (name_set);
obj->short_descr = str_dup (shor_set);
obj->description = str_dup (long_set);
break;
case GEN_ARMOR_HAND:
obj->wear_flags += ITEM_WEAR_HANDS;
sprintf(name_set, "%s %s", prefix, suffix);
sprintf(shor_set, "%s %s", prefix, suffix);
sprintf(long_set, "%s %s is on the ground here.", prefix, suffix);
obj->name = str_dup (name_set);
obj->short_descr = str_dup (shor_set);
obj->description = str_dup (long_set);
break;
case GEN_ARMOR_WAIST:
obj->wear_flags += ITEM_WEAR_WAIST;
sprintf(name_set, "%s %s", prefix, suffix);
sprintf(shor_set, "%s %s", prefix, suffix);
sprintf(long_set, "%s %s is on the ground here.", prefix, suffix);
obj->name = str_dup (name_set);
obj->short_descr = str_dup (shor_set);
obj->description = str_dup (long_set);
break;
case GEN_ARMOR_WRIST:
obj->wear_flags += ITEM_WEAR_WRIST;
sprintf(name_set, "%s %s", prefix, suffix);
sprintf(shor_set, "%s %s", prefix, suffix);
sprintf(long_set, "%s %s is on the ground here.", prefix, suffix);
obj->name = str_dup (name_set);
obj->short_descr = str_dup (shor_set);
obj->description = str_dup (long_set);
break;
case GEN_ARMOR_ARMS:
obj->wear_flags += ITEM_WEAR_ARMS;
sprintf(name_set, "%s %s", prefix, suffix);
sprintf(shor_set, "%s %s", prefix, suffix);
sprintf(long_set, "%s %s is on the ground here.", prefix, suffix);
obj->name = str_dup (name_set);
obj->short_descr = str_dup (shor_set);
obj->description = str_dup (long_set);
break;
case GEN_ARMOR_SHIELD:
obj->wear_flags += ITEM_WEAR_SHIELD;
sprintf(name_set, "%s %s", prefix, suffix);
sprintf(shor_set, "%s %s", prefix, suffix);
sprintf(long_set, "%s %s is on the ground here.", prefix, suffix);
obj->name = str_dup (name_set);
obj->short_descr = str_dup (shor_set);
obj->description = str_dup (long_set);
break;
case GEN_ARMOR_FLOAT:
obj->wear_flags += ITEM_WEAR_FLOAT;
sprintf(name_set, "%s %s", prefix, suffix);
sprintf(shor_set, "%s %s", prefix, suffix);
sprintf(long_set, "%s %s is on the ground here.", prefix, suffix);
obj->name = str_dup (name_set);
obj->short_descr = str_dup (shor_set);
obj->description = str_dup (long_set);
break;
case GEN_ARMOR_ABOUT:
sprintf(name_set, "%s %s", prefix, suffix);
sprintf(shor_set, "%s %s", prefix, suffix);
sprintf(long_set, "%s %s is on the ground here.", prefix, suffix);
obj->name = str_dup (name_set);
obj->short_descr = str_dup (shor_set);
obj->description = str_dup (long_set);
break;
}
obj->level = number_range( (level -5), (level +5) ); // Level
obj->weight = number_range(3, 8); // Weight
obj->cost = number_range(1, (level * 5) ); // Value
int armor_1 = number_range(1, (level / 2) );
obj->value[0] = armor_1;
obj->value[1] = armor_1;
obj->value[2] = armor_1;
obj->value[3] = armor_1;
return (obj);
}