dbna/clans/
dbna/councils/
dbna/deity/
dbna/gods/
dbna/houses/
dbna/space/
#include <sys/types.h>
#include <ctype.h>
#include <math.h>
#include <stdio.h>
#include <string.h>
#include <time.h>
#include "mud.h"

extern void transStatApply args( ( CHAR_DATA * ch, int strMod, int spdMod, int intMod, int conMod ) );
extern void transStatRemove args( ( CHAR_DATA * ch ) );

void do_devil_flash( CHAR_DATA * ch, char *argument )
{
  CHAR_DATA *victim;

  if( IS_NPC( ch ) && IS_AFFECTED( ch, AFF_CHARM ) )
  {
    send_to_char( "You can't concentrate enough for that.\n\r", ch );
    return;
  }
  if( !IS_NPC( ch ) && ch->exp < skill_table[gsn_devil_flash]->skill_level[ch->class] )
  {
    send_to_char( "You better leave the martial arts to fighters.\n\r", ch );
    return;
  }

  if( ( victim = who_fighting( ch ) ) == NULL )
  {
    send_to_char( "You aren't fighting anyone.\n\r", ch );
    return;
  }

  if( !IS_NPC( ch ) && ch->mana < skill_table[gsn_devil_flash]->min_mana )
  {
    send_to_char( "You don't have enough energy.\n\r", ch );
    return;
  }
  if( ch->focus < skill_table[gsn_devil_flash]->focus )
  {
    send_to_char( "You need to focus more.\n\r", ch );
    return;
  }
  else
    ch->focus -= skill_table[gsn_devil_flash]->focus;

  WAIT_STATE( ch, skill_table[gsn_devil_flash]->beats );

  if( !is_android_h( ch ) )
    ch->mana -= skill_table[gsn_devil_flash]->min_mana;

  if( can_use_skill( ch, number_percent(  ), gsn_devil_flash ) )
  {
    act( AT_ORANGE, "You pull both arms to your sides, stretching them wide as you begin to", ch, NULL, victim, TO_CHAR );
    act( AT_ORANGE, "gather energy. An orange glow surrounds you as the energy overflows into", ch, NULL, victim, TO_CHAR );
    act( AT_ORANGE, "the outside air. As the spheres reach their peak of brightness, you slam", ch, NULL, victim, TO_CHAR );
    act( AT_ORANGE, "your wrists together, howling loudly. 'DEVIL FLASH!'  Erupts from your lips", ch, NULL, victim,
         TO_CHAR );
    act( AT_ORANGE, "as a brilliant orange beam bursts forth from your hands, surrounded by two", ch, NULL, victim,
         TO_CHAR );
    act( AT_ORANGE, "smaller yellow beams, spiraling around it. The beam collides with $N,", ch, NULL, victim, TO_CHAR );
    act( AT_ORANGE, "rending flesh like paper as it ravages their body. Suddenly, the", ch, NULL, victim, TO_CHAR );
    act( AT_ORANGE, "beam shrinks until it vanishes, leaving no trace aside from the marks", ch, NULL, victim, TO_CHAR );
    act( AT_ORANGE, "seared into $N's flesh.", ch, NULL, victim, TO_CHAR );

    act( AT_ORANGE, "$n pulls both arms to their side, stretching them wide as they begin to", ch, NULL, victim,
         TO_NOTVICT );
    act( AT_ORANGE, "gather energy. An orange glow surrounds $n as the energy overflows into", ch, NULL, victim,
         TO_NOTVICT );
    act( AT_ORANGE, "the outside air. As the spheres reach their peak of brightness, $n slams", ch, NULL, victim,
         TO_NOTVICT );
    act( AT_ORANGE, "their wrists together, howling loudly. 'DEVIL FLASH!'  Erupts from $n's lips", ch, NULL, victim,
         TO_NOTVICT );
    act( AT_ORANGE, "as a brilliant orange beam bursts forth from their hands, surrounded by two", ch, NULL, victim,
         TO_NOTVICT );
    act( AT_ORANGE, "smaller yellow beams, spiraling around it. The beam collides with $N,", ch, NULL, victim, TO_NOTVICT );
    act( AT_ORANGE, "rending flesh like paper as it ravages their body. Suddenly, the", ch, NULL, victim, TO_NOTVICT );
    act( AT_ORANGE, "beam shrinks until it vanishes, leaving no trace aside from the marks", ch, NULL, victim, TO_NOTVICT );
    act( AT_ORANGE, "seared into $N's flesh.", ch, NULL, victim, TO_NOTVICT );

    act( AT_ORANGE, "$n pulls both arms to their side, stretching them wide as they begin to", ch, NULL, victim, TO_VICT );
    act( AT_ORANGE, "gather energy. An orange glow surrounds $n as the energy overflows into", ch, NULL, victim, TO_VICT );
    act( AT_ORANGE, "the outside air. As the spheres reach their peak of brightness, $n slams", ch, NULL, victim, TO_VICT );
    act( AT_ORANGE, "their wrists together, howling loudly. 'DEVIL FLASH!'  Erupts from $n's lips", ch, NULL, victim,
         TO_VICT );
    act( AT_ORANGE, "as a brilliant orange beam bursts forth from their hands, surrounded by two", ch, NULL, victim,
         TO_VICT );
    act( AT_ORANGE, "smaller yellow beams, spiraling around it. The beam collides with you,", ch, NULL, victim, TO_VICT );
    act( AT_ORANGE, "rending flesh like paper as it ravages your body. Suddenly, the", ch, NULL, victim, TO_VICT );
    act( AT_ORANGE, "beam shrinks until it vanishes, leaving no trace aside from the marks", ch, NULL, victim, TO_VICT );
    act( AT_ORANGE, "seared into your flesh.", ch, NULL, victim, TO_VICT );

    learn_from_success( ch, gsn_devil_flash );
    global_retcode = damage( ch, victim, ( get_attmod( ch, victim ) * number_range( 20, 22 ) ), gsn_devil_flash );
  }
  else
  {
    act( AT_SKILL, "You fire your deadly beam, but you miss $N.", ch, NULL, victim, TO_CHAR );
    act( AT_SKILL, "$n fires $s deadly beam, but $e misses you.", ch, NULL, victim, TO_VICT );
    act( AT_SKILL, "$n fires $s deadly beam, but $e misses $N.", ch, NULL, victim, TO_NOTVICT );
    learn_from_failure( ch, gsn_devil_flash );
    global_retcode = damage( ch, victim, 0, gsn_devil_flash );
  }
  return;
}

/* Added for people to automaticly join clans using rpp  -Karn 06.21.06*/
void do_joinclan( CHAR_DATA * ch, char *argument )
{
    CLAN_DATA *clan;

    if( IS_NPC( ch ) )
    {
      send_to_char( "Not on NPC's.\n\r", ch );
      return;
    }

    if( !argument || argument[0] == '\0' )
    {
       send_to_char( "Syntax: joinclan <clan short>\n\r",ch );
       send_to_char( "Avalible clans can be found with the 'clans' command.\n\r",ch );
       return;
    }
    if ( ch->pcdata->clan != NULL )
    {
     send_to_char( "You are already in a clan.\n\r",ch );
     return;
    }
    if ( ch->pcdata->quest_curr < 5 )
    {
     send_to_char( "You don't have enough RPP.\n\r",ch );
     return;
    }
    clan = get_clan( argument );
    if( !clan )
    {
      send_to_char( "No such clan.\n\r", ch );
      return;
    }
    STRFREE( ch->pcdata->clan_name );
    ch->pcdata->clan_name = QUICKLINK( clan->name );
    ch->pcdata->clan = clan;
    if( ch->exp != 100 )
    ch->pcdata->quest_curr -= 5;
    ch->pcdata->clanRank = 7;
    ch->pcdata->clanZeniDonated = 0;
    ch->pcdata->clanZeniClanTax = 0;
    ch->pcdata->clanItemsDonated = 0;
   if ( !IS_IMMORTAL( ch ) )
    {
    if( ch->sex == SEX_FEMALE )
    clan->fRank7Count++;
    else
    clan->mRank7Count++;
    }
    return;
}