#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;
}