#include <sys/types.h>
#include <stdio.h>
#include <string.h>
#include <time.h>
#include "merc.h"
void do_evaporate( CHAR_DATA *ch, char *argument )
{
if (IS_NPC(ch)) return;
if (!IS_SPHERE(ch, SPHERE_AEROMANCER) )
{
send_to_char("This is an Aeromancer ability.\n\r", ch);
return;
}
if (ch->move < 1000)
{
send_to_char("You don't have 1000 move to activate your power.\n\r", ch);
return;
}
if (ch->fight_timer >0)
{
send_to_char("Not until your fight timer expires.\n\r", ch );
return;
}
if (!IS_SET(ch->pcdata->powers[ELEMENTAL_FORMS], WATER_FORM))
{
stc("You can only evaporate in Water Form!!\n\r", ch );
return;
}
if ( IS_SET(ch->act, AFF_HIDE) )
{
REMOVE_BIT(ch->act, AFF_HIDE);
act( "$n reforms from a cloud of mist.", ch, NULL, NULL, TO_ROOM );
send_to_char( "You reform from a cloud of mist.\n\r", ch );
}
else
{
act( "$n evaporates into mist.", ch, NULL, NULL, TO_ROOM );
send_to_char( "You evaporate into mist.\n\r", ch );
ch->move -= 1000;
SET_BIT(ch->act, AFF_HIDE);
}
return;
}
void do_enfold( CHAR_DATA *ch, char *argument )
{
if (IS_NPC(ch)) return;
if (!IS_SPHERE(ch, SPHERE_AEROMANCER))
{
send_to_char("Only Aeromancers have the enfold ability.\n\r",ch);
return;
}
if (IS_SET(ch->pcdata->powers[ELEMENTAL_POWERS], ELEMENTAL_ENFOLD))
{
REMOVE_BIT(ch->pcdata->powers[ELEMENTAL_POWERS], ELEMENTAL_ENFOLD);
send_to_char("Your Air Particles return to your body allowing people to escape.\n\r",ch);
return;
}
else
{
send_to_char("You release air particles to keep your enemys from fleeing.\n\r",ch);
SET_BIT(ch->pcdata->powers[ELEMENTAL_POWERS], ELEMENTAL_ENFOLD);
return;
}
}
void do_disperse ( CHAR_DATA *ch, char *argument )
{
CHAR_DATA *victim;
char buf[MAX_STRING_LENGTH];
char arg[MAX_INPUT_LENGTH];
argument = one_argument(argument, arg);
if (!IS_SPHERE(ch, SPHERE_AEROMANCER))
{
send_to_char("Only Aeromancers may disperce.\n\r",ch);
return;
}
if (ch->move < 250)
{
stc("You do not have enough vitality to do that!\n\r",ch);
return;
}
if (arg[0] == '\0')
{
send_to_char( "Travel to Who?\n\r", ch );
return;
}
if ( ( victim = get_char_world( ch, arg ) ) == NULL )
{
send_to_char( "They aren't here.\n\r", ch );
return;
}
if( victim == ch )
{
stc ( "Not to yourself.\n\r",ch);
return;
}
if( IS_SET(victim->in_room->room_flags, ROOM_ASTRAL))
{
stc( "You can't find it's room.\n\r",ch);
return;
}
if( IS_SET(ch->in_room->room_flags, ROOM_ASTRAL))
{
stc( "Your room is not connected to the astral plane.\n\r",ch);
return;
}
if (!IS_NPC(victim) && !IS_IMMUNE(victim,IMM_SUMMON) )
{
send_to_char("They don't want you near them!\n\r",ch);
return;
}
if ( room_is_private(victim->in_room ) )
{
send_to_char( "That room is private right now.\n\r", ch );
return;
}
if (victim->in_room->vnum == ch->in_room->vnum)
{
send_to_char("But you're already there!\n\r",ch);
return;
}
char_from_room(ch);
char_to_room(ch,victim->in_room);
if (IS_NPC(victim))
{
sprintf(buf,"You Disperce into particles to travel to %s!\n\r",victim->short_descr);
send_to_char(buf, ch);
}
if (!IS_NPC(victim))
{
sprintf(buf,"Disperces into particles to travel to %s!\n\r",victim->name);
send_to_char(buf, ch);
}
act("You see $n slowly solidify infront of you.\n\r",ch,NULL,NULL,TO_ROOM);
do_look(ch, "auto");
ch->move -= 250;
return;
}