#include <sys/types.h> #include <ctype.h> #include <math.h> #include <stdio.h> #include <string.h> #include <time.h> #include "mud.h" /* Place holder */ void do_mechanize( CHAR_DATA * ch, char *argument ) { OBJ_DATA *ro, *ri, *ru, *ry, *rt; /* if( !IS_IMMORTAL(ch) ) { send_to_char("Test Command. Immortals only.\n\r", ch); return; } */ if( !IS_ICER( ch ) ) { send_to_char( "You can't do that.\n\r", ch ); return; } if( wearing_sentient_chip( ch ) ) { ch_printf( ch, "You can't use this." ); return; } if( !argument || argument[0] == '\0' ) { send_to_char( "Syntax: mechanize [ START ]\n\r", ch ); return; } if( !str_prefix( argument, "START" ) ) { if( !wearing_augment( ch ) ) { send_to_char( "You must be wearing the Mecha-Icer Augmentation.", ch ); return; } if( !wearing_bodyplate( ch ) ) { send_to_char( "You must be wearing the Mecha-Icer Body Plating.", ch ); return; } if( !wearing_forearm( ch ) ) { send_to_char( "You must be wearing the Mecha-Icer Forearm Segments.", ch ); return; } if( !wearing_legseg( ch ) ) { send_to_char( "You must be wearing the Mecha-Icer Leg Segments.", ch ); return; } if( !wearing_cranial( ch ) ) { send_to_char( "You must be wearing the Mecha-Icer Cranial Plating.", ch ); return; } if( ch->pcdata->learned[gsn_mechaicer] == 100 ) { send_to_char( "You have already absorbed this power! Use it well!\n\r", ch ); return; } if( ( ( ro = wearing_augment( ch ) ) && ( ri = wearing_bodyplate( ch ) ) && ( ru = wearing_forearm( ch ) ) && ( ry = wearing_legseg( ch ) ) && ( rt = wearing_cranial( ch ) ) && ch->pcdata->learned[gsn_mechaicer] == 0 ) ) { ch->pcdata->learned[gsn_mechaicer] = 100; unequip_char( ch, ro ); extract_obj( ro ); unequip_char( ch, ri ); extract_obj( ri ); unequip_char( ch, ru ); extract_obj( ru ); unequip_char( ch, ry ); extract_obj( ry ); unequip_char( ch, rt ); extract_obj( rt ); send_to_char( "&cMechanization Complete!&D\n\r", ch ); return; } } do_mechanize( ch, "" ); return; } OBJ_DATA *wearing_augment( CHAR_DATA * ch ) { OBJ_DATA *obj, *obj_next; for( obj = ch->first_carrying; obj != NULL; obj = obj_next ) { obj_next = obj->next_content; if( obj->wear_loc == WEAR_BODY ) { if( obj->pIndexData->vnum == 50007 ) return obj; } } return NULL; } OBJ_DATA *wearing_bodyplate( CHAR_DATA * ch ) { OBJ_DATA *obj, *obj_next; for( obj = ch->first_carrying; obj != NULL; obj = obj_next ) { obj_next = obj->next_content; if( obj->wear_loc == WEAR_BODY ) { if( obj->pIndexData->vnum == 150215 ) return obj; } } return NULL; } OBJ_DATA *wearing_forearm( CHAR_DATA * ch ) { OBJ_DATA *obj, *obj_next; for( obj = ch->first_carrying; obj != NULL; obj = obj_next ) { obj_next = obj->next_content; if( obj->wear_loc == WEAR_ARMS ) { if( obj->pIndexData->vnum == 150218 ) return obj; } } return NULL; } OBJ_DATA *wearing_legseg( CHAR_DATA * ch ) { OBJ_DATA *obj, *obj_next; for( obj = ch->first_carrying; obj != NULL; obj = obj_next ) { obj_next = obj->next_content; if( obj->wear_loc == WEAR_LEGS ) { if( obj->pIndexData->vnum == 150216 ) return obj; } } return NULL; } OBJ_DATA *wearing_cranial( CHAR_DATA * ch ) { OBJ_DATA *obj, *obj_next; for( obj = ch->first_carrying; obj != NULL; obj = obj_next ) { obj_next = obj->next_content; if( obj->wear_loc == WEAR_HEAD ) { if( obj->pIndexData->vnum == 150217 ) return obj; } } return NULL; }