#include <sys/types.h> #include <stdio.h> #include <string.h> #include <time.h> #include "merc.h" void do_weaponenhance(CHAR_DATA *ch, char *argument) { OBJ_DATA *obj; if (!IS_SPHERE(ch, SPHERE_ENCHANTMENT)) { send_to_char("You need the Enhancement Sphere for this.\n\r",ch); return; } if ( ch->practice < 1500) { send_to_char("It costs 1500 primal to enhance a weapon.\n\r",ch); return; } if (argument[0] == '\0') { send_to_char("Which item do you wish to forge?\n\r", ch); return; } if ( (obj = get_obj_carry(ch, argument)) == NULL) { send_to_char("You are not carrying that item.\n\r", ch); return; } /* if (IS_SET(obj->quest,QUEST_RELIC) || IS_SET(obj->quest,QUEST_ARTIFACT)) { send_to_char("Not on a Relic.\n\r",ch); return; } */ if (IS_SET(obj->quest,QUEST_RITUAL)) { send_to_char("This item has already been through the Ritual!\n\r",ch); return; } if (obj->item_type == ITEM_WEAPON) { obj->value[1] += 100; obj->value[2] += 100; obj->level = 50; oset_affect(ch,obj,50,APPLY_HITROLL,TRUE); oset_affect(ch,obj,50,APPLY_DAMROLL,TRUE); SET_BIT(obj->quest,QUEST_RITUAL); obj->condition = 100; obj->toughness = 100; obj->resistance = 1; act("You bestow power into $p through the Dark Ritual.", ch, obj, NULL, TO_CHAR); act("$n bestows power into $p through the Dark Ritual.", ch, obj, NULL, TO_ROOM); if(!IS_SET(obj->weapflags, WEAPON_FLAMING)) SET_BIT(obj->weapflags, WEAPON_FLAMING); ch->practice -= 1500; WAIT_STATE(ch, 8); return; } } void do_armorenhance(CHAR_DATA *ch, char *argument) { OBJ_DATA *obj; if (!IS_SPHERE(ch, SPHERE_ENCHANTMENT)) { send_to_char("You need the Enhancement Sphere for this.\n\r",ch); return; } if ( ch->practice < 1500) { send_to_char("It costs 1500 primal to enhance a weapon.\n\r",ch); return; } if (argument[0] == '\0') { send_to_char("Which item do you wish to forge?\n\r", ch); return; } if ( (obj = get_obj_carry(ch, argument)) == NULL) { send_to_char("You are not carrying that item.\n\r", ch); return; } /* if (IS_SET(obj->quest,QUEST_RELIC) || IS_SET(obj->quest,QUEST_ARTIFACT)) { send_to_char("Not on a Relic.\n\r",ch); return; } */ if (IS_SET(obj->quest,QUEST_RITUAL)) { send_to_char("This item has already been through the Ritual!\n\r",ch); return; } if (obj->item_type == ITEM_ARMOR) { obj->value[0] += 50; oset_affect(ch,obj,30,APPLY_HITROLL,TRUE); oset_affect(ch,obj,30,APPLY_DAMROLL,TRUE); oset_affect(ch,obj,-50,APPLY_AC,TRUE); SET_BIT(obj->quest,QUEST_RITUAL); obj->condition = 100; obj->toughness = 100; obj->resistance = 1; act("You bestow power into $p through the Dark Ritual.", ch, obj, NULL, TO_CHAR); act("$n bestows power into $p through the Dark Ritual.", ch, obj, NULL, TO_ROOM); ch->practice -= 1500; WAIT_STATE(ch, 8); return; } } void do_caust(CHAR_DATA * ch, char *argument) { OBJ_DATA *obj; if (!IS_SPHERE(ch, SPHERE_ENCHANTMENT)) { send_to_char("You need the Enhancement Sphere for this.\n\r",ch); return; } if (argument[0] == '\0') { send_to_char("Which item do you wish to caust?\n\r", ch); return; } if ((obj = get_obj_carry(ch, argument)) == NULL) { send_to_char("You are not carrying that item.\n\r", ch); return; } if (obj->item_type != ITEM_WEAPON) { send_to_char("That is not a weapon!\n\r", ch); return; } if (dice(1, 100) == 1) { act("$p is disintegrated by $n's poison.", ch, obj, NULL, TO_ROOM); act("Your poison eats through $p.", ch, obj, NULL, TO_CHAR); extract_obj(obj); return; } if (IS_WEAP(obj, WEAPON_POISON)) { act("$p is already coated with deadly poison.", ch, obj, NULL, TO_CHAR); return; } act("You run your tongue along $p, coating it with a sickly venom.", ch, obj, NULL, TO_CHAR); act("$n runs $m tongue along $p, coating it with a sickly venom.", ch, obj, NULL, TO_ROOM); WAIT_STATE(ch, 8); SET_BIT(obj->weapflags, WEAPON_POISON); obj->value[1] += 10 - ch->generation; obj->value[2] += 10 - ch->generation; } void do_immolate(CHAR_DATA * ch, char *argument) { OBJ_DATA *obj; if (!IS_SPHERE(ch, SPHERE_ENCHANTMENT)) { send_to_char("You need the Enhancement Sphere for this.\n\r",ch); return; } if (argument[0] == '\0') { send_to_char("Which item do you wish to immolate?\n\r", ch); return; } if ((obj = get_obj_carry(ch, argument)) == NULL) { send_to_char("You are not carrying that item.\n\r", ch); return; } if (obj->item_type != ITEM_WEAPON) { send_to_char("That is not a weapon!\n\r", ch); return; } /* if (dice(1, 100) == 1) { act("$p explodes in a burst of flames.", ch, obj, NULL, TO_ROOM); act("$p explodes in a burst of flames.", ch, obj, NULL, TO_CHAR); damage(ch, ch, 500, gsn_inferno); extract_obj(obj); return; } */ if (IS_WEAP(obj, WEAPON_FLAMING)) { act("$p is already flaming.", ch, obj, NULL, TO_CHAR); return; } act("$p bursts into flames.", ch, obj, NULL, TO_CHAR); act("$p, carried by $n bursts into flames.", ch, obj, NULL, TO_ROOM); WAIT_STATE(ch, 8); SET_BIT(obj->weapflags, WEAPON_FLAMING); } void do_wfreeze(CHAR_DATA * ch, char *argument) { OBJ_DATA *obj; if (!IS_SPHERE(ch, SPHERE_ENCHANTMENT)) { send_to_char("You need the Enhancement Sphere for this.\n\r",ch); return; } if (argument[0] == '\0') { send_to_char("Which item do you wish to freeze?\n\r", ch); return; } if ((obj = get_obj_carry(ch, argument)) == NULL) { send_to_char("You are not carrying that item.\n\r", ch); return; } if (obj->item_type != ITEM_WEAPON) { send_to_char("That is not a weapon!\n\r", ch); return; } if (dice(1, 100) == 1) { act("$p freezes and shatters.", ch, obj, NULL, TO_ROOM); act("$p freezes and shatters.", ch, obj, NULL, TO_CHAR); extract_obj(obj); return; } if (IS_WEAP(obj, WEAPON_FROST)) { act("$p is already frozen.", ch, obj, NULL, TO_CHAR); return; } act("$p is surrounded by ice crystals.", ch, obj, NULL, TO_CHAR); act("$p, carried by $n is surrounded by ice crystals.", ch, obj, NULL, TO_ROOM); WAIT_STATE(ch, 8); SET_BIT(obj->weapflags, WEAPON_FROST); } void do_poisonblade(CHAR_DATA * ch, char *argument) { OBJ_DATA *obj; char arg[MAX_INPUT_LENGTH]; argument = one_argument(argument, arg); if (IS_NPC(ch)) return; if (!IS_SPHERE(ch, SPHERE_ENCHANTMENT)) { send_to_char("You need the Enhancement Sphere for this.\n\r",ch); return; } if (arg[0] == '\0') { stc("Poison What?\n\r", ch); return; } if ((obj = get_obj_carry(ch, arg)) == NULL) { send_to_char("You dont have that item.\n\r", ch); return; } if (obj->item_type != ITEM_WEAPON) { send_to_char("You can only poison weapons!\n\r", ch); return; } if (IS_SET(obj->quest, QUEST_WWPOISON)) { send_to_char ("#0This item has already been #gP#Goisone#gd!#n.\n\r", ch); return; } SET_BIT(obj->quest, QUEST_WWPOISON); stc("#0You coat your weapon in foul smelling #gp#Goiso#gn!#n\n\r", ch); obj->timer = 35; return; }