cotn/notes/
cotn/src/
/***************************************************************************
 *  Original Diku Mud copyright (C) 1990, 1991 by Sebastian Hammer,        *
 *  Michael Seifert, Hans Henrik St{rfeldt, Tom Madsen, and Katja Nyboe.   *
 *                                                                         *
 *  Merc Diku Mud improvments copyright (C) 1992, 1993 by Michael          *
 *  Chastain, Michael Quan, and Mitchell Tse.                              *
 *                                                                         *
 *  In order to use any part of this Merc Diku Mud, you must comply with   *
 *  both the original Diku license in 'license.doc' as well the Merc       *
 *  license in 'license.txt'.  In particular, you may not remove either of *
 *  these copyright notices.                                               *
 *                                                                         *
 *  Much time and thought has gone into this software and you are          *
 *  benefitting.  We hope that you share your changes too.  What goes      *
 *  around, comes around.                                                  *
 ***************************************************************************/

/*********************************************
 * Elemental, another class by Xrakisis       *
 *********************************************/

#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"


     void do_elemshift (CHAR_DATA *ch, char *argument)
	{
  	char arg[MAX_INPUT_LENGTH];
  	char buf[MAX_STRING_LENGTH];
  	one_argument( argument, arg);

  	if (IS_NPC(ch)) return;
  	if (!IS_CLASS(ch, CLASS_ELEMENTAL))
    	{
        send_to_char("Elemental Only?\n\r",ch);
        return;
    	}
  	if (ch->pcdata->powers[ELEMENTAL_FIRE] < 5 )
  	{
    	send_to_char("#7You need level #R5 #7in each element to use #RElemshift#7!#n\n\r",ch);
    	return;
  	}
  	if (ch->pcdata->powers[ELEMENTAL_AIR] < 5 )
  	{
    	send_to_char("#7You need level #R5 #7in each element to use #RElemshift#7!#n\n\r",ch);
    	return;
  	}
  	if (ch->pcdata->powers[ELEMENTAL_WATER] < 5 )
  	{
    	send_to_char("#7You need level #R5 #7in each element to use #RElemshift#7!#n\n\r",ch);
    	return;
  	}
  	if (ch->pcdata->powers[ELEMENTAL_EARTH] < 5 )
  	{
    	send_to_char("#7You need level #R5 #7in each element to use #RElemshift#7!#n\n\r",ch);
    	return;
  	}
  	if (arg[0] == '\0')
  	{
    	send_to_char("#7Which #RElemental #7form? #7[#RFire#7-#CAir#7-#LWater#7-#oEarth#7-#YMortal#7]#n\n\r", ch);
    	return;
  	}
  	if (!str_cmp(arg,"fire"))
  	{
    	if (IS_SET(ch->affected_by, AFF_POLYMORPH))
    	{
      	send_to_char("#7You're already in a #RELEMENTAL #7form#7!#n\n\r",ch);
      	return;
    	}
    	if (ch->mana < 10000)
  	{
    	send_to_char("#7You don't have enough #Rmana#7.#n\n\r",ch);
    	return;
  	}
    	act( "You become ingulfed in #RF#Yl#Ra#Ym#Re#Ys#n.", ch, NULL, NULL, TO_CHAR);
    	act( "$n's Becomes a #7Human #YT#Ro#Yr#Rc#Yh#n.", ch, NULL, NULL, TO_ROOM );
    	ch->pcdata->powers[ELEM_FORMS]=FIRE_FORM;
    	SET_BIT(ch->affected_by, AFF_POLYMORPH);
    	ch->hitroll += 400;
    	ch->damroll += 400;
    	ch->armor   -= 200;
    	ch->mana    -= 10000;
    	sprintf(buf, "%s The #RF#Yi#Rr#Ye#n Elemental", ch->name);
    	free_string(ch->morph);
    	ch->morph = str_dup(buf);
    	return;
  	}
  	else if (!str_cmp(arg,"water"))
  	{
    	if (IS_SET(ch->affected_by, AFF_POLYMORPH))
    	{
      	send_to_char("#7You're already in a #RELEMENTAL #7form#7!#n\n\r",ch);
      	return;
    	}
    	if (ch->mana < 1000)
  	{
    	send_to_char("#7You don't have enough #Rmana#7.#n\n\r",ch);
    	return;
  	}
    	act( "Your skin is covered with #7Ice #lCrystals#n.", ch, NULL, NULL, TO_CHAR);
    	act( "$n's skin becomes covered with #7Ice #lcrystals#n.", ch, NULL, NULL, TO_ROOM );
    	ch->pcdata->powers[ELEM_FORMS]=WATER_FORM;
    	SET_BIT(ch->affected_by, AFF_POLYMORPH);
    	ch->hitroll += 300;
    	ch->damroll += 300;
    	ch->mana    -= 10000;
    	sprintf(buf, "%s The #lWater#n Elemental", ch->name);
    	free_string(ch->morph);
    	ch->morph = str_dup(buf);
    	return;
  	}
  	else if (!str_cmp(arg,"air"))
  	{
    	if (IS_SET(ch->affected_by, AFF_POLYMORPH))
    	{
      	send_to_char("#7You're already in a #RELEMENTAL #7form#7!#n\n\r",ch);
      	return;
    	}
    	if (ch->mana < 10000)
  	{
    	send_to_char("#7You don't have enough #Rmana#7.#n\n\r",ch);
    	return;
  	}
    	act( "You becomes a thin #LM#7i#Ls#7t#n.", ch, NULL, NULL, TO_CHAR);
    	act( "$n's Becomes a thin #LM#7i#Ls#7t#n.", ch, NULL, NULL, TO_ROOM );
    	ch->pcdata->powers[ELEM_FORMS]=AIR_FORM;
    	SET_BIT(ch->affected_by, AFF_POLYMORPH);
    	ch->hitroll += 200;
    	ch->damroll += 200;
    	ch->armor   -= 200;
    	ch->mana    -= 10000;
    	sprintf(buf, "%s The #7Air#n Elemental", ch->name);
    	free_string(ch->morph);
    	ch->morph = str_dup(buf);
    	return;
  	}
  	else if (!str_cmp(arg,"earth"))
  	{
    	if (IS_SET(ch->affected_by, AFF_POLYMORPH))
    	{
      	send_to_char("#7You're already in a #RELEMENTAL #7form#7!#n\n\r",ch);
      	return;
    	}
    	if (ch->mana < 10000)
  	{
    	send_to_char("#7You don't have enough #Rmana#7.#n\n\r",ch);
    	return;
  	}
    	act( "Your Skin turns to Hard #GE#garth#n.", ch, NULL, NULL, TO_CHAR);
    	act( "$n's skin turns to Hard #GE#garth#n.", ch, NULL, NULL, TO_ROOM );
    	ch->pcdata->powers[ELEM_FORMS]=EARTH_FORM;
    	SET_BIT(ch->affected_by, AFF_POLYMORPH);
    	ch->hitroll += 500;
   	ch->damroll += 500;
    	ch->armor   -= 500;
    	ch->mana    -= 10000;
    	sprintf(buf, "%s The #GE#garth#n Elemental", ch->name);
    	free_string(ch->morph);
    	ch->morph = str_dup(buf);
    	return;
  	}
  	else if (!str_cmp(arg,"mortal"))
  	{
    	if (!IS_SET(ch->affected_by, AFF_POLYMORPH))
    	{
      	send_to_char("#7Your already in #RMortal #7form.#n\n\r",ch);
      	return;
   	}
    	if (IS_SET(ch->pcdata->powers[ELEM_FORMS], FIRE_FORM))
    	{
      	ch->hitroll -= 400;
      	ch->damroll -= 400;
      	ch->armor   += 200;
    	}
    	else if (IS_SET(ch->pcdata->powers[ELEM_FORMS], AIR_FORM))
    	{
      	ch->hitroll -= 200;
      	ch->damroll -= 200;
      	ch->armor   += 200;
    	}
    	else if (IS_SET(ch->pcdata->powers[ELEM_FORMS], WATER_FORM))
    	{
      	ch->hitroll -= 300;
      	ch->damroll -= 300;
  	}
    	else if (IS_SET(ch->pcdata->powers[ELEM_FORMS], EARTH_FORM))
    	{
      	ch->hitroll -= 500;
      	ch->damroll -= 500;
      	ch->armor   += 500;
  	}
        ch->pcdata->powers[ELEM_FORMS]=0;
     	REMOVE_BIT(ch->affected_by, AFF_POLYMORPH);
        send_to_char("#7You return to your #RMortal #7form.#n\n\r",ch);
        act("#7$n returns to $s #RMortal #7form.#n\n\r",ch,NULL,NULL,TO_ROOM);
        free_string(ch->morph);
        ch->morph=str_dup("");
        return;
  	}
  	else
  	{
    	send_to_char("#7That is not a valid form.#n\n\r",ch);
    	return;
  	}
	}


void do_solidify(CHAR_DATA *ch,char *argument)
{
  if (IS_NPC(ch)) return;
    if (!IS_CLASS(ch,CLASS_ELEMENTAL))
  {
  send_to_char("Huh?\n\r",ch);
  return;
  }
  if (!IS_SET(ch->newbits, NEW_SKIN))
  {
  send_to_char("Your Earthen Skin Hardens.\n\r",ch);
  ch->armor -= 100 ;
  SET_BIT(ch->newbits, NEW_SKIN);
  return;
  }
  else if (IS_SET(ch->newbits, NEW_SKIN))
  { 
  send_to_char("Your Earthen Skin Softens.\n\r",ch);
  ch->armor += 100;
  REMOVE_BIT(ch->newbits,NEW_SKIN);
  return;
  }
return;
}



void do_enflame( CHAR_DATA *ch, char *argument )
{
  if (IS_NPC(ch)) return;
  if (!IS_CLASS(ch, CLASS_ELEMENTAL))
  {
    send_to_char("Huh?\n\r",ch);
    return;
  }
  if (ch->pcdata->powers[ELEMENTAL_FIRE] < 5)
  {
    send_to_char("You Need 5 in fire to use enflame.\n\r",ch);
    return;
  }   
  if (IS_SET(ch->pcdata->powers[ELEMENTAL_POWERS], ELEMENTAL_ENFLAME))
  {
    REMOVE_BIT(ch->pcdata->powers[ELEMENTAL_POWERS], ELEMENTAL_ENFLAME);
    act("You Will No Longer Enflame.", ch, NULL, NULL, TO_CHAR);
    act("$n's Will No Longer Enflame.", ch, NULL, NULL, TO_ROOM);
    return;
  }
  SET_BIT(ch->pcdata->powers[ELEMENTAL_POWERS], ELEMENTAL_ENFLAME);
  act("#CYou Will Now Use Your FIRE to Seek Retribution.#n", ch, NULL, NULL, TO_CHAR);
  act("$n Will now use $s Fire to seek RETRIBUTION.", ch, NULL, NULL, TO_ROOM);
  return;
}

void do_magma( CHAR_DATA *ch, char *argument )
{
  char arg[MAX_INPUT_LENGTH];
  CHAR_DATA *victim;
  char buf[MAX_STRING_LENGTH];
  int dam;


  if (IS_NPC(ch)) return;
 
  if (!IS_CLASS(ch, CLASS_ELEMENTAL))
  {
    send_to_char("Huh?\n\r",ch);
    return;
  }
  if (ch->pcdata->powers[ELEMENTAL_FIRE] < 3 )
  {
    send_to_char("You need level 3 in Fire to use MAGMA.\n\r",ch);
    return;
  }
  if ( ( victim = get_char_room( ch, NULL,  arg ) ) == NULL )
  {
    if (ch->fighting == NULL) 
    {
      send_to_char( "They aren't here.\n\r", ch );
      return;
    }
    else victim = ch->fighting;
     
  }

  WAIT_STATE( ch, 12 );

  if (!IS_NPC(victim)) dam = number_range(4000,8000);
  else dam = number_range(15000,25000);

  sprintf(buf,"Your Magma strikes $N with DEVESTATING FORCE! [%d]\n\r",dam);
  act(buf,ch,NULL,victim,TO_CHAR);
  sprintf(buf,"$n's Magma strikes you with DEVESTATING FORCE! [%d]\n\r",dam);
  act(buf,ch,NULL,victim,TO_VICT);
  sprintf(buf,"$n's Magma strikes $N with DEVESTATING FORCE! [%d]\n\r",dam);
  act(buf,ch,NULL,victim,TO_NOTVICT); 
  hurt_person(ch,victim, dam);
  return;
}
 
void do_naturesfury (CHAR_DATA *ch, char *argument)
{
//  char arg1[MAX_STRING_LENGTH];
//  char arg2[MAX_STRING_LENGTH];
  char arg[MAX_INPUT_LENGTH];
  char buf1[MAX_STRING_LENGTH];
  char buf2[MAX_STRING_LENGTH];
  char buf3[MAX_STRING_LENGTH];
  CHAR_DATA *victim;
//  AFFECT_DATA af;
//  int i, dam, count, sn;
  int dam;
  int red_magic = ch->spl[RED_MAGIC];
  int blue_magic = ch->spl[BLUE_MAGIC];
  int green_magic = ch->spl[GREEN_MAGIC];
  int purple_magic = ch->spl[PURPLE_MAGIC];
  int yellow_magic = ch->spl[YELLOW_MAGIC];
//  int fire = ch->pcdata->powers[ELEMENTAL_FIRE];
//  int water = ch->pcdata->powers[ELEMENTAL_WATER];
//  int air = ch->pcdata->powers[ELEMENTAL_AIR];
//  int earth = ch->pcdata->powers[ELEMENTAL_EARTH];

  int magic_power = ch->spl[RED_MAGIC] + ch->spl[BLUE_MAGIC] + ch->spl[GREEN_MAGIC] + ch->spl[PURPLE_MAGIC] + ch->spl[YELLOW_MAGIC];
//    int elem_power = ch->pcdata->powers[ELEMENTAL_EARTH] + ch->pcdata->powers[ELEMENTAL_FIRRE]
///  argument=one_argument(argument,arg1);
//  strcpy(arg2,argument);

  one_argument( argument, arg );
  if (IS_NPC(ch)) return;
  if (!IS_CLASS(ch, CLASS_ELEMENTAL))
  {
    send_to_char("Huh?\n\r",ch);
    return;
  }
//  if (arg1[0] == '\0')
//  {  
//    send_to_char("Syntax : chant <bless/curse/damage/heal> <target>.\n\r", ch);
//    return;
//  }  
  if (IS_ITEMAFF(ch, ITEMA_AFFENTROPY)) 
  {
    magic_power +=100;
    red_magic +=20;
    yellow_magic +=20;
    purple_magic +=20;
    green_magic +=20;
    blue_magic +=20;
  }
/*      if (ch->pcdata->powers[POWER_TICK] > 0)
      {
        send_to_char("You cannot use Naturefury yet..\n\r",ch);
        return;
      }
*/
//  if (!str_cmp(arg1, "damage"))
//  {
//    if (arg2[0] == '\0' && ch->fighting != NULL) victim = ch->fighting;
    
  if (ch->pcdata->powers[ELEMENTAL_FIRE] < 3)
  {
    send_to_char("You need to get Fire up to 3 to use this.\n\r",ch);
    return;
  }
  if (ch->pcdata->powers[ELEMENTAL_EARTH] < 3)
  {
    send_to_char("You need to get Earth up to 3 to use this.\n\r",ch);
    return;
  }
  if (ch->pcdata->powers[ELEMENTAL_AIR] < 3)
  {
    send_to_char("You need to get Air up to 3 to use this.\n\r",ch);
    return;
  }
  if (ch->pcdata->powers[ELEMENTAL_WATER] < 3)
  {
    send_to_char("You need to get Water up to 3 to use this.\n\r",ch);
    return;
  }

  if ((victim = get_char_room(ch, NULL, arg)) == NULL)
  {
    send_to_char("They are not here.\n\r", ch);
    return;
  }
    if (victim == ch)
    {
      send_to_char("You really don't want to hurt yourself.\n\r", ch );
      return;
    }
    if (is_safe(ch, victim)) return;
    if (victim->position == POS_DEAD || ch->in_room != victim->in_room)
      return;
    if (IS_AFFECTED(ch, AFF_PEACE)) REMOVE_BIT(ch->affected_by, AFF_PEACE);
    if (victim->position > POS_STUNNED)
    {
      if (victim->fighting == NULL) set_fighting(victim, ch, TRUE);
      if (ch->fighting == NULL) set_fighting(ch, victim, TRUE);
    }
    WAIT_STATE(ch,8);
    dam = number_range(red_magic*10, red_magic*15); // was 10 and 15
    dam += char_damroll(ch);
    dam = cap_dam(ch,victim,dam);
    dam = dam * 8;

    if (!IS_NPC(victim))
    {
      if (IS_CLASS(ch, CLASS_ELEMENTAL) && dam > 10) dam = number_range(2000,4500);
      if (dam > 1000) dam = number_range(4500,6500); // 45 and 65
//      ch->pcdata->powers[POWER_TICK] = 2; 
    }
    sprintf(buf1,"$n calls upon the forces of Nature to use #rFIRE#n to destroy $N [#C%d#n]" , dam);
    sprintf(buf2,"You call for the forces of Nature to use #rFIRE#n to destroy $N [#C%d#n]" , dam);
    sprintf(buf3,"$n calls for the forces of Nature to use#rFIRE#n to destroy you [#C%d#n]" , dam);
    act(buf1,ch,NULL,victim, TO_NOTVICT);
    act(buf2,ch,NULL,victim, TO_CHAR);
    act(buf3,ch,NULL,victim, TO_VICT);
    hurt_person(ch, victim, dam);
    if (victim->position == POS_DEAD || ch->in_room != victim->in_room) return;
    dam = number_range(blue_magic*4, blue_magic*5); // 4 and 5
    dam += char_damroll(ch);
    dam = cap_dam(ch,victim,dam);
    if (!IS_NPC(victim))
    {
      if (IS_CLASS(ch, CLASS_ELEMENTAL) && dam > 600) dam = number_range(2000,4500);
      if (dam > 1000) dam = number_range(3500,5500);
    }
    sprintf(buf1,"$n calls up the power of #GEARTH#n to attack $N with boulders [#C%d#n]" , dam);
    sprintf(buf2,"You call upon the power of #GEARTH to attack $N with boulders [#C%d#n]" , dam);
    sprintf(buf3,"$n calls upon the power of #GEARTH to attack you with boulders [#C%d#n]" , dam);
    act(buf1,ch,NULL,victim, TO_NOTVICT);
    act(buf2,ch,NULL,victim, TO_CHAR);
    act(buf3,ch,NULL,victim, TO_VICT);
    hurt_person(ch, victim, dam);
    if (victim->position == POS_DEAD || ch->in_room != victim->in_room) return;
    dam = number_range(green_magic*10, green_magic*15);
    dam += char_damroll(ch);
    dam = cap_dam(ch,victim,dam);
    dam = dam * 8;
    if (!IS_NPC(victim))
    {
      if (IS_CLASS(ch, CLASS_ELEMENTAL) && dam > 600) dam = number_range(2000,5500);
      if (dam > 1000) dam = number_range(2500,4500);
    }
    sprintf(buf1,"$n calls for forth the power of #7AIR#n to strike $N [#C%d#n]" , dam);
    sprintf(buf2,"You call forth the power of #7AIR#n to strike $N [#C%d#n]" , dam);
    sprintf(buf3,"$n calls forth the power of #7AIR#n to strike You with DEVESTATING FORCE! [#C%d#n]" , dam);
    act(buf1,ch,NULL,victim, TO_NOTVICT);
    act(buf2,ch,NULL,victim, TO_CHAR);
    act(buf3,ch,NULL,victim, TO_VICT);
    hurt_person(ch, victim, dam);
    if (victim->position == POS_DEAD || ch->in_room != victim->in_room) return;
    dam = number_range(purple_magic*10, purple_magic*15);
    dam += char_damroll(ch);
    dam = cap_dam(ch,victim,dam);
    dam = dam * 8;
    if (!IS_NPC(victim))
    {
      if (IS_CLASS(ch, CLASS_ELEMENTAL) && dam > 600) dam = number_range(2000,4500);
      if (dam > 1000) dam = number_range(4500,6500);
    }
    sprintf(buf1,"$n calls for forth the power of #lWATER#n to strike $N [#C%d#n]" , dam);
    sprintf(buf2,"You call forth the power of #lWATER#n to strike $N [#C%d#n]" , dam);
    sprintf(buf3,"$n calls forth the power of #lWATER#n ATONOMIZING You! [#C%d#n]" , dam);
    act(buf1,ch,NULL,victim, TO_NOTVICT);
    act(buf2,ch,NULL,victim, TO_CHAR);
    act(buf3,ch,NULL,victim, TO_VICT);
    hurt_person(ch, victim, dam);
    if (victim->position == POS_DEAD || ch->in_room != victim->in_room) return;
    dam = number_range(yellow_magic*10, yellow_magic*15);
    dam += char_damroll(ch);
    dam = cap_dam(ch,victim,dam);
    dam = dam * 8;
//    ch->pcdata->powers[POWER_TICK] = 2; 
   return;
  }

void do_disperce ( 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_CLASS(ch, CLASS_ELEMENTAL))
  {
    send_to_char("Only Elementals May Disperce.\n\r",ch);
    return;
  }
  if (ch->move < 600)
  {
    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);
  do_look(ch, "auto");
  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);
  ch->move -= 600;
  return;
}

void do_enfold( CHAR_DATA *ch, char *argument )
  {
  if (IS_NPC(ch)) return;
  if (!IS_CLASS(ch, CLASS_ELEMENTAL))
  {
    send_to_char("Only Elementals may use ENFOLD.\n\r",ch);
    return;
  }  
    if (ch->pcdata->powers[ELEMENTAL_AIR] < 3)
    {
      send_to_char("You Need At Least 3 In Air to do this.\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_hydro(CHAR_DATA *ch, char *argument)
{
    CHAR_DATA *victim;

  if (!IS_CLASS(ch, CLASS_ELEMENTAL))
    {
      send_to_char("Huh.\n\r",ch);
      return;
    }
/*
  if(is_safe(ch,victim) == TRUE)
  {
  stc("#0Not in a safe room dumbass#R.#n\n\r",ch);
  return;
  }
*/  
  if (ch->pcdata->powers[ELEMENTAL_WATER] < 3 )
  {
    send_to_char("You need level 3 in WATER to use Hydro.\n\r",ch);
    return;
  }
    if (argument[0] == '\0')
    {
	stc("Who do you wish to unstance?\n\r", ch);
	return;
    }

    if ( ( victim = get_char_room(ch, NULL, argument) ) == NULL)
    {
	stc("They aren't here.\n\r", ch);
	return;
    }

    WAIT_STATE(ch, 12);
  if ( number_range(1,3) <= 2 )
{
    WAIT_STATE(ch, 4);
    do_say(ch,"#rEat Shit and Die!#n");
    do_stance(victim, "");
    set_fighting(ch, victim, TRUE);

}
}


void do_evaporate( CHAR_DATA *ch, char *argument )
{
    if (IS_NPC(ch)) return;
	
	if (!IS_CLASS(ch, CLASS_ELEMENTAL) )
	{
		send_to_char("Huh?\n\r", ch);
		return;
	}
	
	if (ch->pcdata->powers[ELEMENTAL_WATER] < 5) 
	{
	  send_to_char("You need level 5 in water to evaporate.\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[ELEM_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;
}