eotc-rot/data/helps/
#if defined(macintosh)
#include <types.h>
#else
#include <sys/types.h>
#endif
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include "merc.h"
#include "dragon.h"



void do_fly( CHAR_DATA *ch, char *argument )
{
	char arg[MAX_INPUT_LENGTH];
      CHAR_DATA *victim;
//      CHAR_DATA *mount;

	one_argument( argument, arg );

	if ( arg[0] == '\0' )
	 {
	  send_to_char( "Fly to whom?\n\r", ch );
	  return;
	 }

	if ( ch->position == POS_FIGHTING )
	 {
	  send_to_char( "No way! You are fighting.\n\r", ch );
	  return;
	 }

	if ( ( victim = get_char_world( ch, arg ) ) == NULL )
	 {
	  send_to_char( "Nobody by that name.\n\r", ch );
 	  return;
	 }

	if( victim == ch )
	 {
	  stc( "Not to yourself.\n\r",ch);
	  return;
	 }

	act( "You disappear up into the sky.", ch, NULL, NULL, TO_CHAR );
	act( "$n disappears up into the sky.", ch, NULL, NULL, TO_ROOM );
	char_from_room( ch );
	char_to_room( ch, get_room_index(victim->in_room->vnum) );
	act( "You swoop down and land infront of $N", ch, NULL, victim, TO_CHAR );
	act( "$n swoop down and land infront of $N.", ch, NULL, victim, TO_ROOM );
	do_look( ch, "auto" );
	WAIT_STATE(ch,4);
	return;
}


void do_drackform( CHAR_DATA *ch, char *argument)
{
	 char buf [MAX_STRING_LENGTH];
//	 char buf2 [MAX_STRING_LENGTH];
	 char AGE_STRING [MAX_STRING_LENGTH];

	 if (IS_NPC(ch)) return;
	 if (ch->race < 30 || ch->race > 39)
	 {
		send_to_char( "You must be a dragon?\n\r",ch);
		return;
	 }
	 if (IS_POLYAFF(ch, POLY_DRAGON))
	 {
		  REMOVE_BIT(ch->polyaff, POLY_DRAGON);
		  REMOVE_BIT(ch->affected_by, AFF_POLYMORPH);
		  act( "You transform into human form.", ch, NULL, NULL, TO_CHAR );
		  act( "$n's shrinks back into human form.", ch, NULL, NULL, TO_ROOM );
                  ch->pcdata->powers[10] = ch->pcdata->powers[DRAGON_COLOR];
		  ch->damroll -= 1000;
		  ch->hitroll -= 1000;
		  ch->armor[0] += 400;
                  ch->armor[2] += 400;
                  ch->armor[3] += 400;
                  ch->armor[1] += 400;
                  free_string( ch->morph );
		  ch->morph = str_dup( "" );
		  return;
	 }
              if (ch->pcdata->powers[dragonage] <= 1  ) sprintf(AGE_STRING,"Hatchling");
         else if (ch->pcdata->powers[dragonage] == 2  ) sprintf(AGE_STRING,"Very Young");
         else if (ch->pcdata->powers[dragonage] == 3  ) sprintf(AGE_STRING,"Young");
         else if (ch->pcdata->powers[dragonage] == 4  ) sprintf(AGE_STRING,"Juvenile");
         else if (ch->pcdata->powers[dragonage] == 5  ) sprintf(AGE_STRING,"Young Adult");
         else if (ch->pcdata->powers[dragonage] == 6  ) sprintf(AGE_STRING,"Adult");
         else if (ch->pcdata->powers[dragonage] == 7  ) sprintf(AGE_STRING,"Mature Adult");
         else if (ch->pcdata->powers[dragonage] == 8  ) sprintf(AGE_STRING,"Old");
         else if (ch->pcdata->powers[dragonage] == 9  ) sprintf(AGE_STRING,"Very Old");
         else if (ch->pcdata->powers[dragonage] == 10 ) sprintf(AGE_STRING,"Elder");
         else if (ch->pcdata->powers[dragonage] == 11 ) sprintf(AGE_STRING,"Venerable");
         else if (ch->pcdata->powers[dragonage] == 12 ) sprintf(AGE_STRING,"Ancient");
         else if (ch->pcdata->powers[dragonage] == 13 ) sprintf(AGE_STRING,"Immortal");
         else return;


               if (ch->race == 30)
		{
			sprintf(buf, "%s the %s Black Dragon", ch->name,AGE_STRING);
			free_string( ch->morph );
			ch->morph = str_dup( buf );
		}
		if (ch->race == 31)
		{
			sprintf(buf, "%s the %s Blue Dragon", ch->name,AGE_STRING);
			free_string( ch->morph );
			ch->morph = str_dup( buf );
		}
                if (ch->race == 32)
		{
			sprintf(buf, "%s the %s Green Dragon", ch->name,AGE_STRING);
			free_string( ch->morph );
			ch->morph = str_dup( buf );
		}
                if (ch->race == 33)
		{
			sprintf(buf, "%s the %s Red Dragon", ch->name,AGE_STRING);
			free_string( ch->morph );
			ch->morph = str_dup( buf );
		}
                if (ch->race == 34)
		{		
			sprintf(buf, "%s the %s White Dragon", ch->name,AGE_STRING);
			free_string( ch->morph );
			ch->morph = str_dup( buf );
		}
                if (ch->race == 35)
                {
			sprintf(buf, "%s the %s Brass Dragon", ch->name,AGE_STRING);
			free_string( ch->morph );
			ch->morph = str_dup( buf );
                }
                if (ch->race == 36)
                {
			sprintf(buf, "%s the %s Gold Dragon", ch->name,AGE_STRING);
			free_string( ch->morph );
			ch->morph = str_dup( buf );
                }
                if (ch->race == 37)
                {
			sprintf(buf, "%s the %s Silver Dragon", ch->name,AGE_STRING);
			free_string( ch->morph );
			ch->morph = str_dup( buf );
                }
                if (ch->race == 38)
                {
			sprintf(buf, "%s the %s Bronze Dragon", ch->name,AGE_STRING);
			free_string( ch->morph );
			ch->morph = str_dup( buf );
                }
                if (ch->race == 39)
                {
			sprintf(buf, "%s the %s Copper Dragon", ch->name,AGE_STRING);
			free_string( ch->morph );
			ch->morph = str_dup( buf );
		}
	 act( "You transform into a huge dragon.", ch, NULL, NULL, TO_CHAR );
	 act( "$n's body grows and distorts into a huge dragon.", ch, NULL, NULL, TO_ROOM );
	 SET_BIT(ch->polyaff, POLY_DRAGON);
	 SET_BIT(ch->affected_by, AFF_POLYMORPH);

	 ch->damroll += 1000;
	 ch->hitroll += 1000;
         ch->armor[1] -= 400;
         ch->armor[2] -= 400;
         ch->armor[3] -= 400;
         ch->armor[0] -= 400;
	 return;
}