/* * Item generator 2, a simpler approch to the creation system */ #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_weapon_relic (OBJ_DATA * obj, int level) { int weapon_type = number_range(1, 6); char name_set[MSL]; char shor_set[MSL]; char long_set[MSL]; obj = create_object (get_obj_index (920), 0); AFFECT_DATA af; switch(weapon_type) { default: case 1: obj->level = 35; obj->value[0] = 1; obj->value[1] = 40; obj->value[2] = 80; obj->value[3] = 1; sprintf(name_set, "relic drow longsword"); sprintf(shor_set, "a Drow longsword"); sprintf(long_set, "a drow longsword is on the ground here"); obj->name = str_dup (name_set); obj->short_descr = str_dup (shor_set); obj->description = str_dup (long_set); // Poisoned af.where = TO_WEAPON; af.level = 99; af.type = 99; af.duration = -1; af.location = 0; af.modifier = 0; af.bitvector = WEAPON_POISON; affect_to_obj (obj, &af); // Vampiric af.bitvector = WEAPON_VAMPIRIC; affect_to_obj (obj, &af); // Sharp af.where = TO_WEAPON; af.bitvector = WEAPON_SHARP; affect_to_obj (obj, &af); gen_util_weapon_damroll(obj, 15); gen_util_weapon_hitroll(obj, 15); gen_util_relic_force(obj, 2); gen_util_relic_speed(obj, 2); break; case 2: obj->level = 35; obj->value[0] = 2; obj->value[1] = 40; obj->value[2] = 80; obj->value[3] = 11; sprintf(name_set, "relic drow dagger"); sprintf(shor_set, "a Drow dagger"); sprintf(long_set, "a drow dagger is on the ground here"); obj->name = str_dup (name_set); obj->short_descr = str_dup (shor_set); obj->description = str_dup (long_set); // Poisoned af.where = TO_WEAPON; af.level = 99; af.type = 99; af.duration = -1; af.location = 0; af.modifier = 0; af.bitvector = WEAPON_POISON; affect_to_obj (obj, &af); // Vampiric af.bitvector = WEAPON_VAMPIRIC; affect_to_obj (obj, &af); // Sharp af.where = TO_WEAPON; af.bitvector = WEAPON_SHARP; affect_to_obj (obj, &af); gen_util_weapon_damroll(obj, 10); gen_util_weapon_hitroll(obj, 10); gen_util_relic_force(obj, 1); gen_util_relic_speed(obj, 3); break; case 3: obj->level = 35; obj->value[0] = 4; obj->value[1] = 40; obj->value[2] = 80; obj->value[3] = 7; sprintf(name_set, "relic dwarven mace"); sprintf(shor_set, "a dwarven mace"); sprintf(long_set, "a dwarven mace is on the ground here"); obj->name = str_dup (name_set); obj->short_descr = str_dup (shor_set); obj->description = str_dup (long_set); // Poisoned af.where = TO_WEAPON; af.level = 99; af.type = 99; af.duration = -1; af.location = 0; af.modifier = 0; af.bitvector = WEAPON_FLAMING; affect_to_obj (obj, &af); // Vampiric af.bitvector = WEAPON_FROST; affect_to_obj (obj, &af); gen_util_weapon_damroll(obj, 14); gen_util_weapon_hitroll(obj, 14); gen_util_relic_force(obj, 3); gen_util_relic_speed(obj, 1); break; case 4: obj->level = 35; obj->value[0] = 4; obj->value[1] = 40; obj->value[2] = 80; obj->value[3] = 0; sprintf(name_set, "relic dwarven hammer"); sprintf(shor_set, "a dwarven hammer"); sprintf(long_set, "a dwarven hammer is on the ground here"); obj->name = str_dup (name_set); obj->short_descr = str_dup (shor_set); obj->description = str_dup (long_set); // Poisoned af.where = TO_WEAPON; af.level = 99; af.type = 99; af.duration = -1; af.location = 0; af.modifier = 0; af.bitvector = WEAPON_FLAMING; affect_to_obj (obj, &af); // Vampiric af.bitvector = WEAPON_FROST; affect_to_obj (obj, &af); gen_util_weapon_damroll(obj, 20); gen_util_weapon_hitroll(obj, 20); gen_util_relic_force(obj, 2); break; case 5: obj->level = 35; obj->value[0] = 3; obj->value[1] = 40; obj->value[2] = 80; obj->value[3] = 16; sprintf(name_set, "relic tasoli spear"); sprintf(shor_set, "a tasoli spear"); sprintf(long_set, "a tasoli spear is on the ground here"); obj->name = str_dup (name_set); obj->short_descr = str_dup (shor_set); obj->description = str_dup (long_set); // Poisoned af.where = TO_WEAPON; af.level = 99; af.type = 99; af.duration = -1; af.location = 0; af.modifier = 0; af.bitvector = WEAPON_FLAMING; affect_to_obj (obj, &af); // Vampiric af.bitvector = WEAPON_VORPAL; affect_to_obj (obj, &af); gen_util_weapon_damroll(obj, 10); gen_util_weapon_hitroll(obj, 10); gen_util_relic_speed(obj, 4); break; case 6: obj->level = 35; obj->value[0] = 7; obj->value[1] = 40; obj->value[2] = 80; obj->value[3] = 17; sprintf(name_set, "relic drow whip"); sprintf(shor_set, "a dark drow whip"); sprintf(long_set, "a dark drow whip is on the ground here"); obj->name = str_dup (name_set); obj->short_descr = str_dup (shor_set); obj->description = str_dup (long_set); // Poisoned af.where = TO_WEAPON; af.level = 99; af.type = 99; af.duration = -1; af.location = 0; af.modifier = 0; af.bitvector = WEAPON_FLAMING; affect_to_obj (obj, &af); // Vampiric af.bitvector = WEAPON_VORPAL; affect_to_obj (obj, &af); af.bitvector = WEAPON_SHARP; affect_to_obj (obj, &af); gen_util_weapon_hitroll(obj, 25); gen_util_relic_speed(obj, 3); gen_util_relic_luck(obj, 1); break; } return(obj); }