mud_dist/area/
/*****************************************************************************
 * Clan routines for clan funtions.. I hope to move the ones created prior   *
 * to this file in here eventually as well.                                  *
 * -- Altrag Dalosein, Lord of the Dragons                                   *
 *****************************************************************************/
/* $Id: act_clan.c,v 1.6 2005/04/10 16:28:59 tyrion Exp $ */
#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"


/*
 * Illuminati bestow command, for deity only.
 */
void do_bestow( CHAR_DATA *ch, char *argument )
{
  char arg[MAX_INPUT_LENGTH];
  CHAR_DATA *victim;

  if ( ch->clan != -1 || ch->clev < 5 )
  {
    send_to_char(C_DEFAULT, "Huh?\n\r", ch );
    return;
  }

  argument = one_argument( argument, arg );

  if ( !( victim = get_char_room( ch, arg ) ) || IS_NPC(victim) )
  {
    send_to_char(C_DEFAULT, "They aren't here.\n\r", ch );
    return;
  }

  if ( victim->clan != ch->clan )
  {
    send_to_char(C_DEFAULT, "They aren't in your clan!\n\r", ch );
    return;
  }

  if ( !IS_SET( victim->act, PLR_CSKILL ) )
  {
    SET_BIT( victim->act, PLR_CSKILL );
    act(AT_PINK, "$N bestowed with the Transmute skill.", ch, NULL, victim,
	TO_CHAR );
    send_to_char( AT_PINK, "You have been given the Transmute skill.\n\r",
		  victim );
  }
  else
  {
    REMOVE_BIT( victim->act, PLR_CSKILL );
    act(AT_PINK, "Transmute denied from $N.", ch, NULL, victim, TO_CHAR );
    send_to_char( AT_PINK, "You have been denied the Transmute skill.\n\r",
		  victim );
  }
}


/*
 * Illuminati transmute skill, must be given to a member by the deity
 */
void do_transmute( CHAR_DATA *ch, char *argument )
{
	
	send_to_char(C_DEFAULT, "Huh?\n\r", ch );
    return;
/*
  OBJ_DATA *obj;
  int chance;

  if ( ch->clan != -1 || !IS_SET(ch->act, PLR_CSKILL)
      || IS_NPC(ch) )
  {
    send_to_char(C_DEFAULT, "Huh?\n\r", ch );
    return;
  }

  if ( !( obj = get_obj_carry( ch, argument ) ) )
  {
    send_to_char(C_DEFAULT, "You do not have that item.\n\r", ch );
    return;
  }

  if ( obj->level > 0 )
    chance = (ch->level * 75) / obj->level;
  else
    chance = 85;

  if ( number_percent( ) < chance )
  {
    obj->extra_flags |= ITEM_NO_DAMAGE;
    act(AT_PINK, "$p transmuted.", ch, obj, NULL, TO_CHAR );
    return;
  }

  act(AT_PINK, "You failed!  $p exploded in your face!", ch, obj, NULL,
      TO_CHAR);
  extract_obj(obj);
  return;
  */
}


/*
 * Vendetta Doomshield skill
 */
void do_doomshield( CHAR_DATA *ch, char *argument )
{

    send_to_char( C_DEFAULT, "Huh?\n\r", ch );
    return;

	/*
	AFFECT_DATA af;
  if ( IS_AFFECTED2( ch, AFF_DOOMSHIELD ) )
    return;

  af.type = gsn_doomshield;
  af.level = ch->level;
  af.duration = 5;
  af.location = APPLY_NONE;
  af.modifier = 0;
  af.bitvector = AFF_DOOMSHIELD;
  affect_to_char2(ch, &af);
  act( AT_PURPLE, "$n is surrounded with an Aura of Insanity!", ch, NULL,
       NULL, TO_ROOM );
  send_to_char(AT_PURPLE, "You are surrounded with the an Aura of Insanity.\n\r",
	       ch );
  return;
  */
}

void do_image( CHAR_DATA *ch, char *argument )
{
	
  send_to_char(C_DEFAULT, "Huh?\n\r", ch );
  return;

  /*
  AFFECT_DATA af;

  if ( ch->clan != -1 )
  {
    send_to_char( C_DEFAULT, "Huh?\n\r",ch);
    return;
  }
  if ( ch->ctimer || ch->combat_timer )
  {
    send_to_char(AT_BLUE, "You can't right now.\n\r",ch);
    return;
  }

  if ( IS_AFFECTED2(ch, AFF_IMAGE) )
    return;

  af.location = APPLY_NONE;
  af.modifier = number_range( 1, 5 );
  af.duration = number_fuzzy(3);
  af.bitvector = AFF_IMAGE;
  af.type = gsn_image;
  af.level = ch->level;
  ch->ctimer = af.duration + 10;
  affect_to_char2( ch, &af );
  send_to_char(AT_CYAN, "You are surrounded by images of the Talisman.\n\r",
	       ch);
  act(AT_CYAN, "$n suddenly splits into many images.",ch,NULL,NULL,TO_ROOM);
  return;
  */
}

void do_utopian_healing( CHAR_DATA *ch, char *argument )
{
    send_to_char(C_DEFAULT, "Huh?\n\r", ch );
    return;

/*
	char arg[MAX_INPUT_LENGTH];
  CHAR_DATA *victim;

  argument = one_argument( argument, arg );

  if ( !( victim = get_char_room( ch, arg ) ) || IS_NPC(victim) )
  {
    send_to_char(C_DEFAULT, "They aren't here.\n\r", ch );
    return;
  }
  if ( ch->fighting || ch->ctimer )
  {
    send_to_char(C_DEFAULT, "You failed.\n\r",ch);
    return;
  }

  if ( ch == victim )
  {
    int mana;

    // Refund mana lost by casting.  Make it seem like a new target type.
    mana = 50;
    if (( ch->class == 9 )||( ch->class == 11))
      mana /= 4;
    ch->mana += mana;
    send_to_char(AT_BLUE, "You cannot cast this spell on yourself.\n\r", ch );
    return;
  }

  if ( victim->fighting != NULL )
  {
    send_to_char(AT_WHITE, "That person is fighting, you can't do that.\n\r", ch );
    return;
  }

  if ( victim->hit >= victim->max_hit )
  {
    act(AT_BLUE, "You heal $N.", ch, NULL, victim, TO_CHAR );
    return;
  }

  ch->ctimer = 5;

  victim->hit += (victim->max_hit - victim->hit);

  act(AT_BLUE, "You use your Utopian will to heal $N.", ch, NULL, victim, TO_CHAR);
  act(AT_BLUE, "$n uses $s Utopian will to heal you.", ch, NULL, victim, TO_VICT);
  act(AT_BLUE, "$n uses $s Utopian will to heal $N.", ch, NULL, victim, TO_NOTVICT);
  return;
*/
}
/* END */

void do_clanview( CHAR_DATA *ch, char *argument )
{
    ROOM_INDEX_DATA *from_room;
    char	target_name[MAX_STRING_LENGTH];
    CHAR_DATA *victim;

    if (IS_NPC( ch ) )
	return;

    if (ch->clan < 1 )
    {
	send_to_char( C_DEFAULT, "Huh?\n\r", ch );
	return;
    }

    if ( !( victim = get_char_world( ch, argument ) ) || IS_NPC( victim ) )
    {
	send_to_char(C_DEFAULT, "No such person exists.\n\r", ch );
	return;
    }

    if (victim->clan != ch->clan)
    {
	send_to_char(AT_BLUE, "They aren't in your clan!\n\r", ch );
	return;
    }

    one_argument( argument, target_name );

    if ( IS_SET(ch->in_room->area->area_flags, AREA_PRESENT)
	&& (IS_SET( victim->in_room->area->area_flags, AREA_FUTURE )
	|| IS_SET( victim->in_room->area->area_flags, AREA_PAST ) ) )
    {
	send_to_char(AT_BLUE, "You cannot!!!!!!!!\n\r", ch );
	return;
    }

    if ( IS_SET(ch->in_room->area->area_flags, AREA_FUTURE )
	&& (IS_SET( victim->in_room->area->area_flags, AREA_PRESENT )
	|| IS_SET( victim->in_room->area->area_flags, AREA_PAST ) ) )
    {
	send_to_char(AT_BLUE, "You cannot!!!!!!!!\n\r", ch );
	return;
    }

    if ( IS_SET(ch->in_room->area->area_flags, AREA_PAST )
	&& (IS_SET( victim->in_room->area->area_flags, AREA_FUTURE )
	|| IS_SET( victim->in_room->area->area_flags, AREA_PRESENT ) ) )
    {
	send_to_char( AT_BLUE, "You cannot!!!!!!!!\n\r", ch );
	return;
    }

    from_room = ch->in_room;
    if ( ch != victim )
    {
	char_from_room( ch );
	char_to_room( ch, victim->in_room );
    }
    do_look( ch, "auto" );
    if( ch != victim )
    {
	char_from_room( ch );
	char_to_room( ch, from_room );
    }
    return;
}