fallen/
fallen/new_stuff/
fallen/player/
fallen/player/backup/
fallen/player/store/
#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"
#include "player.h"

void do_dances(CHAR_DATA *ch, char *argument ) {

    char arg [MAX_INPUT_LENGTH];
    char buf [MAX_STRING_LENGTH];
    int clancount = 0;
    int clanmax = 8;
    int cost = 0;
    argument = one_argument( argument, arg );

    if (IS_NPC(ch)) return;

    if (!IS_CLASS(ch, CLASS_MOOGLE)) {
		send_to_char("Huh?\n\r", ch );
		return;}

	if (CAN_DANCE(ch, DANCE_SONG)) clancount += 1;
	if (CAN_DANCE(ch, DANCE_SUITE)) clancount += 1;
	if (CAN_DANCE(ch, DANCE_ARIA)) clancount += 1;
	if (CAN_DANCE(ch, DANCE_SONATA)) clancount += 1;
	if (CAN_DANCE(ch, DANCE_BLUES)) clancount += 1;
	if (CAN_DANCE(ch, DANCE_RONDO)) clancount += 1;
	if (CAN_DANCE(ch, DANCE_REQUIEM)) clancount += 1;
	if (CAN_DANCE(ch, DANCE_JAZZ)) clancount += 1;

	cost = clancount * 10;

	if (arg[0] == '\0') {
	send_to_char("Dances:\n\r", ch );
	send_to_char("  Wind SONG:  ", ch );
	if (CAN_DANCE(ch, DANCE_SONG))
		send_to_char("Learned\n\r", ch );
	else
		send_to_char("Unknown\n\r", ch );
	send_to_char("Forest SUITE:  ", ch );
	if (CAN_DANCE(ch, DANCE_SUITE))
		send_to_char("Learned\n\r", ch );
	else
		send_to_char("Unknown\n\r", ch);
	send_to_char(" Desert ARIA:  ", ch );
	if (CAN_DANCE(ch, DANCE_ARIA))
		send_to_char("Learned\n\r", ch );
	else
		send_to_char("Unknown\n\r", ch );
	send_to_char(" Love SONATA:  ", ch );
	if (CAN_DANCE(ch, DANCE_SONATA))
		send_to_char("Learned\n\r", ch );
	else
		send_to_char("Unknown\n\r", ch );
	send_to_char(" Earth BLUES:  ", ch );
	if (CAN_DANCE(ch, DANCE_BLUES))
		send_to_char("Learned\n\r", ch );
	else
		send_to_char("Unknown\n\r", ch );
	send_to_char(" Water RONDO:  ", ch );
	if (CAN_DANCE(ch, DANCE_RONDO))
		send_to_char("Learned\n\r", ch );
	else
		send_to_char("Unknown\n\r", ch);
	send_to_char("Dusk REQUIEM:  ", ch );
	if (CAN_DANCE(ch, DANCE_REQUIEM))
		send_to_char("Learned\n\r", ch );
	else
		send_to_char("Unknown\n\r", ch );
	send_to_char("Snowman JAZZ:  ", ch );
	if (CAN_DANCE(ch, DANCE_JAZZ))
		send_to_char("Learned\n\r", ch );
	else
		send_to_char("Unknown\n\r", ch );
	if (clancount < clanmax) {
		sprintf(buf, "It will cost %d primal to learn another dance.\n\r", cost);
		send_to_char(buf, ch);}
		send_to_char("\n\r", ch );
		return;
	}
	if (!str_cmp(arg, "song")) {

	if (CAN_DANCE(ch, DANCE_SONG)) {
	send_to_char("You already know that dance.\n\r", ch );
	return;}

	if (cost > ch->practice) {
	send_to_char("You don't have enough primal.\n\r", ch );
	return;}

	send_to_char("You learn the Wind Song.\n\r", ch );
	SET_BIT(ch->pcdata->powers[1], DANCE_SONG);
	ch->practice -= cost;
	return;
	}

	else if (!str_cmp(arg, "suite")) {
	
	if (CAN_DANCE(ch, DANCE_SUITE)) {
	send_to_char("You already know that dance.\n\r", ch );
	return;}

	if (cost > ch->practice) {
	send_to_char("You don't have enough primal.\n\r", ch );
	return;}

	send_to_char("You learn the Forest Suite.\n\r", ch );
	SET_BIT(ch->pcdata->powers[1], DANCE_SUITE);
	ch->practice -= cost;
	return;
	}

	else if (!str_cmp(arg, "aria")) {

	if (CAN_DANCE(ch, DANCE_ARIA)) {
	send_to_char("You already know that dance.\n\r", ch );
	return;}

	if ( cost > ch->practice ) {
	send_to_char("You don't have enough primal.\n\r", ch );
	return;}

	send_to_char("You learn the Desert Aria.\n\r", ch );
	SET_BIT(ch->pcdata->powers[1], DANCE_ARIA);
	ch->practice -= cost;
	return;
	}

	else if (!str_cmp(arg, "sonata")) {

	if (CAN_DANCE(ch, DANCE_SONATA)) {
	send_to_char("You already know that dance.\n\r", ch );
	return;}

	if (cost > ch->practice) {
	send_to_char("You don't have enough primal.\n\r", ch );
	return;}

	send_to_char("You learn the Lova Sonata.\n\r", ch );
	SET_BIT(ch->pcdata->powers[1], DANCE_SONATA);
	ch->practice -= cost;
	return;
	}

	else if (!str_cmp(arg, "blues")) {

	if (CAN_DANCE(ch, DANCE_BLUES)) {
	send_to_char("You already know that dance.\n\r", ch );
	return;}

	if ( cost > ch->practice ) {
	send_to_char("You don't have enough primal.\n\r", ch );
	return;}

	send_to_char("You learn the Earth Blues.\n\r", ch );
	SET_BIT(ch->pcdata->powers[1], DANCE_BLUES);
	ch->practice -= cost;
	return;
	}

	else if (!str_cmp(arg, "rondo")) {

	if (CAN_DANCE(ch, DANCE_RONDO)) {
	send_to_char("You already know that dance.\n\r", ch );
	return;}

	if ( cost > ch->practice ) {
	send_to_char("You don't have enough primal.\n\r", ch );
	return;}

	send_to_char("You learn the Water Rondo.\n\r", ch );
	SET_BIT(ch->pcdata->powers[1], DANCE_RONDO);
	ch->practice -= cost;
	return;
	}

	else if (!str_cmp(arg, "requiem")) {

	if (CAN_DANCE(ch, DANCE_REQUIEM)) {
	send_to_char("You already know that dance.\n\r", ch );
	return;}

	if (cost > ch->practice ) {
	send_to_char("You don't have enough primal.\n\r", ch );
	return;}

	send_to_char("You learn the Dusk Requiem.\n\r", ch );
	SET_BIT(ch->pcdata->powers[1], DANCE_REQUIEM);
	ch->practice -= cost;
	return;
	}

	else if (!str_cmp(arg, "jazz")) {

	if (CAN_DANCE(ch, DANCE_JAZZ)) {
	send_to_char("You already know that dance.\n\r", ch );
	return;}

	if (cost > ch->practice) {
	send_to_char("You don't have enough primal.\n\r", ch );
	return;}

	send_to_char("You learn the Snowman Jazz.\n\r", ch);
	SET_BIT(ch->pcdata->powers[1], DANCE_JAZZ);
	ch->practice -= cost;
	return;
	}
	else 
	send_to_char("There is no such dance.\n\r", ch );

}


void do_wind_slash( CHAR_DATA *ch ) {

CHAR_DATA *vch;
CHAR_DATA *vch_next;
int dam;

dam = ch->spl[PURPLE_MAGIC];

for (vch = char_list; vch != NULL; vch = vch_next) {
	vch_next = vch->next;
	if (vch->in_room == NULL ) continue;
	if (!IS_NPC(vch) && vch->pcdata->chobj != NULL ) continue;
	if (ch == vch) continue;
	if (is_safe(ch, vch)) return;
	if (vch->in_room == ch->in_room && can_see(ch, vch)) {

	if (vch->position > POS_STUNNED) {
	if (vch->fighting == NULL ) 
	vch->position = POS_FIGHTING;
	if (ch->fighting == NULL)
        set_fighting(vch,ch);
	}
	
	act("You invoke the power of Wind Slash on $N.",ch,NULL,vch,TO_CHAR);
	act("$n invokes the power of Wind Slash on you.",ch,NULL,vch,TO_VICT);
	if (!IS_NPC(vch) && IS_IMMUNE(vch, IMM_COLD)) return;
	hurt_person(ch, vch, dam);
}
}
}

void do_sun_bath(CHAR_DATA *ch) {

int dam;

dam = ch->spl[BLUE_MAGIC]/2;
ch->hit += dam;
if (ch->hit > ch->max_hit) ch->hit = ch->max_hit;
send_to_char("You invoke the power of Sun Bath.\n\r", ch );
act("$n invokes the power of Sun Bath.",ch,NULL,NULL,TO_ROOM);
}

void do_plasma(CHAR_DATA *ch) {
int dam;
CHAR_DATA *victim;

if ((victim = ch->fighting) == NULL) {
send_to_char("You try to invoke the power of Plasma, but fail.\n\r", ch );
return;}

dam = ch->spl[RED_MAGIC]*2;
act("You invoke the power of Plasma on $N.",ch,NULL,victim,TO_CHAR);
act("$n invokes the power of Plasma on you.",ch,NULL,victim,TO_VICT);
hurt_person(ch,victim,dam);
}

void do_cockatrice(CHAR_DATA *ch) {
CHAR_DATA *victim;
int sn;
int levl;

if ((victim = ch->fighting) == NULL ) {
send_to_char("You try to invoke the power of Cockatrice, but fail.\n\r",ch );
return;}
act("You invoke the power of Cockatrice on $N.",ch,NULL,victim,TO_CHAR);
act("$N invokes the power of Cockatrice on you.",ch,NULL,victim,TO_VICT);
levl = ch->spl[RED_MAGIC]/3;
if ((sn = skill_lookup ("faerie fire")) < 0) return;
(*skill_table[sn].spell_fun) (sn, levl, ch, victim);
}
/* The Beginnings of a new dance, the mogri.  --Eterared */
/*void do_mogri(CHAR_DATA *ch) {
CHAR_DATA *victim;*/

void do_raged( CHAR_DATA *ch) {
CHAR_DATA *vch;
CHAR_DATA *vch_next;
int dam;

dam = ch->spl[PURPLE_MAGIC];

for (vch = char_list; vch != NULL; vch = vch_next) {
	vch_next = vch->next;
	if (vch->in_room == NULL ) continue;
	if (!IS_NPC(vch) && vch->pcdata->chobj != NULL) continue;
	if (vch == ch) continue;
	if (is_safe(ch, vch)) return;
	if (vch->in_room == ch->in_room && can_see(ch, vch)) {
	if (vch->position > POS_STUNNED) {
	if (vch->fighting  == NULL)
	set_fighting(vch,ch);
	vch->position = POS_FIGHTING;
	if (ch->fighting == NULL)
	set_fighting(ch,vch);
	}

	act("You invoke the power of Rage on $N.",ch,NULL,vch,TO_CHAR);
	act("$n invokes the power of Rage on you.",ch,NULL,vch,TO_VICT);
	hurt_person(ch,vch,dam);
}
}
}

void do_wild_bear(CHAR_DATA *ch) {
int sn;
int levl;

send_to_char("You invoke the power of Wild Bear.\n\r", ch );
levl = ch->spl[RED_MAGIC]/2;
if ((sn = skill_lookup ("dispel magic")) < 0) return;
(*skill_table[sn].spell_fun) (sn, levl, ch, ch);
}

void do_elf_fire( CHAR_DATA *ch) {
CHAR_DATA *victim;
int dam;

if ((victim = ch->fighting) == NULL) {
send_to_char("You try to invoke the power of Elf Fire, but fail.\n\r", ch);
return;}

dam = ch->spl[RED_MAGIC]*2;
act("You invoke the power of Elf Fire on $N.",ch,NULL,victim,TO_CHAR);
act("$n invokes the power of Elf Fire on you.",ch,NULL,victim,TO_VICT);
if (!IS_NPC(ch) && IS_IMMUNE(ch, IMM_HEAT)) return;
hurt_person(ch,victim,dam);
}

void do_wombat( CHAR_DATA *ch) {
CHAR_DATA *victim;
int sn;
int levl;

if ((victim = ch->fighting) == NULL) {
send_to_char("You try to invoke the power of Wombat, but fail.\n\r", ch );
return;}

act("You invoke the power of Wombat on $N.",ch,NULL,victim,TO_CHAR);
act("$n invokes the power of Wombat on you.",ch,NULL,victim,TO_VICT);
levl = ch->spl[RED_MAGIC]/3;
if ((sn = skill_lookup("faerie fire")) < 0) return;
(*skill_table[sn].spell_fun) (sn, levl, ch, victim);
}

void do_sand_storm( CHAR_DATA *ch) {
CHAR_DATA *vch;
CHAR_DATA *vch_next;


	send_to_char("You invoke the power of Sand Storm.\n\r", ch );
	act("$n invokes the power of Sand Storm.",ch,NULL,NULL,TO_ROOM);

for (vch = char_list; vch != NULL; vch = vch_next) {
	vch_next = vch->next;
	if (vch->in_room == NULL ) continue;
	if (!IS_NPC(vch) && vch->pcdata->chobj != NULL) continue;
	if (ch == vch) continue;
	if (is_safe(ch, vch)) return;
	if (vch->in_room == ch->in_room && can_see(ch, vch)) 
	do_flee(vch, "");
}

}
	
void do_antlion(CHAR_DATA *ch) {
CHAR_DATA *victim;
int dam;

if ((victim = ch->fighting) == NULL) {
send_to_char("You try to invoke the power of Antlion, but fail.\n\r", ch);
return;}

dam = ch->spl[RED_MAGIC]*2;
act("You invoke the power of Antlion on $n.",ch,NULL,victim,TO_CHAR);
act("$n invokes the power of Antlion on you.",ch,NULL,victim,TO_VICT);
if (!IS_NPC(ch) && IS_IMMUNE(ch, IMM_COLD)) return;
hurt_person(ch,victim,dam);
}

void do_kitty(CHAR_DATA *ch) {
CHAR_DATA *victim;

if ((victim = ch->fighting) == NULL) {
send_to_char("You try to invoke the power of Kitty, but fail.\n\r", ch );
return;}

act("You invoke the power of Kitty on $n.",ch,NULL,victim,TO_CHAR);
act("$n invokes the power of Kitty on you.",ch,NULL,victim,TO_VICT);
multi_hit(ch,victim,TYPE_HIT);

}

void do_snare(CHAR_DATA *ch) {
CHAR_DATA *victim;
int dam;

if ((victim = ch->fighting) == NULL || !IS_NPC(victim) || (victim->hit >=
(ch->hit/2))) {
send_to_char("You try to invoke the power of Snare, but fail.\n\r", ch );
return;}

act("You invoke the power of Snare on $N.",ch,NULL,victim,TO_CHAR);
act("$n invokes the power of Snare on you.",ch,NULL,victim,TO_VICT);

dam = victim->hit + 10;
hurt_person(ch, victim,dam);
}

void do_specter(CHAR_DATA *ch) {
CHAR_DATA *victim;

if ((victim = ch->fighting) == NULL) {
send_to_char("You try to invoke the power of Specter, but fail.\n\r", ch);
return;}

act("You invoke the power of Specter on $N.",ch,NULL,victim,TO_CHAR);
act("$n invokes the power of Specter on you.",ch,NULL,victim,TO_VICT);
do_berserk(victim,"");

}

void do_tapir(CHAR_DATA *ch) {
int sn;
int levl;
send_to_char("You invoke the power of Tapir.\n\r",  ch);
levl = ch->spl[RED_MAGIC]/2;
if ((sn = skill_lookup("dispel magic")) < 0 ) return;
(*skill_table[sn].spell_fun) (sn,levl,ch, ch );
}

void do_land_slide(CHAR_DATA *ch) {
CHAR_DATA *vch;
CHAR_DATA *vch_next;
int dam;
dam = ch->spl[PURPLE_MAGIC];
for (vch = char_list; vch != NULL; vch = vch_next) {
vch_next = vch->next;
	if (vch->in_room == NULL ) continue;
if (!IS_NPC(vch) && vch->pcdata->chobj != NULL) continue;
if (vch == ch) continue;
if (is_safe(ch,vch)) return;
if (vch->in_room == ch->in_room && can_see(ch,vch)) {
if (vch->position > POS_STUNNED) {
if (vch->fighting == NULL ) 
set_fighting(vch,ch);
vch->position  = POS_FIGHTING;
if (ch->fighting == NULL ) 
set_fighting(ch,vch);
}
act("You invoke the power of Land Slide on $N.",ch,NULL,vch,TO_CHAR);
act("$n invokes the power of Land Slide on you.",ch,NULL,vch,TO_VICT);
hurt_person(ch,vch,dam);
}
}
}

void do_sonic_boom(CHAR_DATA *ch) {
CHAR_DATA *victim;
int dam;

if ((victim = ch->fighting) == NULL) {
send_to_char("You try to invoke the power of Sonic Boom, but fail.\n\r",ch );
return;}

dam = ch->spl[RED_MAGIC]*2;
act("You invoke the power of Sonic Boom on $N.",ch,NULL,victim,TO_CHAR);
act("$n invokes the power of Sonic Boom on you.",ch,NULL,victim,TO_VICT);
if (!IS_NPC(ch) && IS_IMMUNE(ch, IMM_LIGHTNING)) return;
hurt_person(ch,victim,dam);
}

void do_whump(CHAR_DATA *ch) {
CHAR_DATA *victim;
int dam;

if ((victim = ch->fighting) == NULL) {
send_to_char("You try to invoke the power of Whump, but fail.\n\r", ch );
return;}

dam = ch->spl[RED_MAGIC]*2;
act("You invoke the power of Whump on $N.",ch,NULL,victim,TO_CHAR);
act("$n invokes the power of Whump on you.",ch,NULL,victim,TO_VICT);
hurt_person(ch,victim,dam);
}

void do_el_nino(CHAR_DATA *ch) {
CHAR_DATA *vch;
CHAR_DATA *vch_next;
int dam;
dam = ch->spl[PURPLE_MAGIC];

for (vch = char_list; vch != NULL; vch = vch_next) {
vch_next = vch->next;
if (vch->in_room == NULL ) continue;
if (!IS_NPC(vch) && vch->pcdata->chobj != NULL) continue;
if (ch == vch) continue;
if (is_safe(ch, vch)) return;
if (vch->in_room == ch->in_room && can_see(ch, vch)) { 
if (vch->position > POS_STUNNED) {
if (vch->fighting == NULL) 
set_fighting(vch, ch);
vch->position = POS_FIGHTING;
if (ch->fighting ==  NULL )
set_fighting(ch,vch);
}

act("You invoke the power of El Nino on $N.",ch,NULL,vch,TO_CHAR);
act("$n invokes the power of El Nino on you.",ch,NULL,vch,TO_VICT);
if (!IS_NPC(ch) && IS_IMMUNE(ch, IMM_COLD))  return;
hurt_person(ch, vch, dam);
}
}
}

void do_cave_in(CHAR_DATA *ch) {
CHAR_DATA *vch;
CHAR_DATA *vch_next;
int dam;
dam = ch->spl[PURPLE_MAGIC];
for (vch = char_list; vch != NULL; vch = vch_next ) {
vch_next = vch->next;
if (!IS_NPC(vch) && vch->pcdata->chobj != NULL) continue;
if (vch->in_room == NULL) continue;
if (vch == ch) continue;
if (is_safe(ch, vch)) return;
if (vch->in_room == ch->in_room && can_see(ch,vch)) {
if (vch->position > POS_STUNNED) {
if (vch->fighting == NULL )
set_fighting(vch,ch);
vch->position = POS_FIGHTING;
if (ch->fighting == NULL)
set_fighting(ch,vch);
}
act("You invoke the power of Cave In on $N.",ch,NULL,vch,TO_CHAR);
act("$n invokes the power of Cave In on you.",ch,NULL,vch,TO_VICT);
hurt_person(ch,vch,dam);
}
}
}

void do_pois_frog(CHAR_DATA *ch) {
CHAR_DATA *victim;
int sn;
int levl;

if ((victim = ch->fighting) == NULL) {
send_to_char("You try to invoke the power of Pois. Frog, but fail.\n\r",ch );
return;}

act("You invoke the power of Pois. Frog on $N.",ch,NULL,victim,TO_CHAR);
act("$n invokes the power of Pois. Frog on you.",ch,NULL,victim,TO_VICT);
levl = ch->spl[RED_MAGIC]/2;
if ((sn = skill_lookup( "poison")) < 0) return;
(*skill_table[sn].spell_fun) (sn, levl, ch, victim);
}

void do_snowball(CHAR_DATA *ch) {
CHAR_DATA *victim;
int dam;

if ((victim = ch->fighting) == NULL || !IS_NPC(victim) || victim->hit >=
ch->hit) {
send_to_char("You try to invoke the power of Snowball, but fail.\n\r",ch);
return;}

act("You invoke the power of Snowball on $N.",ch,NULL,victim,TO_CHAR);
act("$n invokes the power of Snowball on you.",ch,NULL,victim,TO_VICT);

dam = (victim->hit/2) - 1;
hurt_person(ch, victim,dam);
}

void do_surge(CHAR_DATA *ch) {
CHAR_DATA *vch;
CHAR_DATA *vch_next;
int dam;

dam = ch->spl[PURPLE_MAGIC];

for (vch = char_list; vch != NULL; vch = vch_next) {
vch_next = vch->next;
if (vch->in_room == NULL) continue;
if (!IS_NPC(ch) && ch->pcdata->chobj != NULL ) continue;
if (vch == ch) continue;
if (is_safe(ch, vch)) return;
if (vch->in_room == ch->in_room && can_see(ch, vch)) {
if (vch->position > POS_STUNNED) {
if (vch->fighting == NULL) 
set_fighting(vch, ch);
vch->position = POS_FIGHTING;
if (ch->fighting == NULL) 
set_fighting(ch,vch);
}
act("You invoke the power of Surge on $N.",ch,NULL,vch,TO_CHAR);
act("$n invokes the power of Surge on you.",ch,NULL,vch,TO_VICT);
if (!IS_NPC(ch) && IS_IMMUNE(ch, IMM_COLD)) return;
hurt_person(ch,vch,dam);
}
}
}

void do_ice_rabbit(CHAR_DATA *ch) {

int dam;

dam = ch->spl[BLUE_MAGIC]*3/5;
ch->hit += dam;
if (ch->hit > ch->max_hit) ch->hit = ch->max_hit;
send_to_char("You invoke the power of Ice Rabbit.\n\r", ch );
act("$n invokes the power of Ice Rabbit.",ch,NULL,NULL,TO_ROOM);
}


void do_wind_song( CHAR_DATA *ch) {


if (IS_NPC(ch)) return;

if (!IS_CLASS(ch, CLASS_MOOGLE) || !CAN_DANCE(ch, DANCE_SONG)) {
	send_to_char("Huh?\n\r", ch );
	return;}

if (ch->move < 100) {
	send_to_char("You are too tired to dance.\n\r", ch );
	return;}

ch->move -= 100;
send_to_char("You dance the Wind Song.\n\r", ch );
switch (number_range(1,4)) {
	default:
	case 1:
	do_wind_slash(ch);
	break;
	case 2:
	do_sun_bath(ch);
	break;
	case 3:
	do_plasma(ch);
	break;
	case 4:
	do_cockatrice(ch);
	break;
}
	WAIT_STATE(ch, 10);
}

void do_forest_suite(CHAR_DATA *ch) {

if (IS_NPC(ch)) return;

if (!IS_CLASS(ch, CLASS_MOOGLE) || !CAN_DANCE(ch, DANCE_SUITE)) {
send_to_char("Huh.\n\r", ch );
	return;}

if (ch->move < 100) {
	send_to_char("You are too tired to dance.\n\r", ch );
	return;}

ch->move -= 100;
send_to_char("You dance the Forest Suite.\n\r", ch );
switch (number_range(1,4)) {
	default:
	break;
	case 1:
	do_raged(ch);
	break;
	case 2:
	do_wild_bear(ch);
	break;
	case 3:
	do_elf_fire(ch);
	break;
	case 4:
	do_wombat(ch);
	break;
}
	WAIT_STATE(ch, 10);
}

void do_desert_aria(CHAR_DATA *ch) {
if (IS_NPC(ch)) return;
if (!IS_CLASS(ch, CLASS_MOOGLE) || !CAN_DANCE(ch, DANCE_ARIA)) {
send_to_char("Huh?\n\r", ch );
return;}

if (ch->move < 100) {
	send_to_char("You are too tired to dance.\n\r", ch );
	return;}

ch->move -= 100;
send_to_char("You dance the Desert Aria.\n\r", ch );
switch (number_range(1,4)) {
	default:
	case 1:
	do_sand_storm(ch);
	break;
	case 2:
	do_wind_slash(ch);
	break;
	case 3:
	do_antlion(ch);
	break;
	case 4:
	do_kitty(ch);
	break;
}
	WAIT_STATE(ch, 10);
}


void do_love_sonata(CHAR_DATA *ch) {
if (IS_NPC(ch)) return;
if (!IS_CLASS(ch, CLASS_MOOGLE) || !CAN_DANCE(ch, DANCE_SONATA)) {
send_to_char("Huh?\n\r", ch );
return;}

if (ch->move < 100 ) {
	send_to_char("You are too tired to dance.\n\r", ch );
	return;}

ch->move -= 100;
send_to_char("You dance the Love Sonata.\n\r", ch );
switch (number_range(1,4)) {
	default:
	case 1:
	do_elf_fire(ch);
	break;
	case 2:
	do_snare(ch);
	break;
	case 3:
	do_specter(ch);
	break;
	case 4:
	do_tapir(ch);
	break;
}
	WAIT_STATE(ch, 10);
}

void do_earth_blues( CHAR_DATA *ch) {
if (IS_NPC(ch)) return;
if (!IS_CLASS(ch, CLASS_MOOGLE) || !CAN_DANCE(ch, DANCE_BLUES)) {
send_to_char("Huh?\n\r", ch );
return;}

if (ch->move < 100 ) {
send_to_char("You are too tired to dance.\n\r", ch );
return;}

ch->move -= 100;
send_to_char("You dance the Earth Blues.\n\r", ch );
switch (number_range(1,4)) {
	default:
	case 1:
	do_land_slide(ch);
	break;
	case 2:
	do_sun_bath(ch);
	break;
	case 3:
	do_sonic_boom(ch);
	break;
	case 4:
	do_whump(ch);
	break;
}
	WAIT_STATE(ch, 10);
}

void do_water_rondo( CHAR_DATA *ch) {
if (IS_NPC(ch)) return;
if (!IS_CLASS(ch, CLASS_MOOGLE) || !CAN_DANCE(ch, DANCE_RONDO)) {
send_to_char("Huh?\n\r", ch );
return;}

if (ch->move < 100) {
send_to_char("You are too tired to dance.\n\r", ch );
return;}

ch->move -= 100;
send_to_char("You dance the Water Rondo.\n\r", ch );
switch (number_range(1,4)) {
	default:
	case 1:
	do_el_nino(ch);
	break;
	case 2:
	do_specter(ch);
	break;
	case 3:
	do_plasma(ch);
	break;
	case 4:
	do_wild_bear(ch);
	break;
}
	WAIT_STATE(ch, 10);
}

void do_dusk_requiem( CHAR_DATA *ch) {
if (IS_NPC(ch)) return;
if (!IS_CLASS(ch, CLASS_MOOGLE) || !CAN_DANCE(ch, DANCE_REQUIEM)) {
send_to_char("Huh?\n\r", ch );
return;}

if (ch->move < 100) {
send_to_char("You are too tired to dance.\n\r", ch );
return;}

ch->move -= 100;
send_to_char("You dance the Dusk Requiem.\n\r", ch );
switch (number_range(1,4)) {
	default:
	case 1:
	do_cave_in(ch);
	break;
	case 2:
	do_elf_fire(ch);
	break;
	case 3:
	do_snare(ch);
	break;
	case 4:
	do_pois_frog(ch);
	break;
}
	WAIT_STATE(ch, 10);
}

void do_snowman_jazz(CHAR_DATA *ch) {
if (IS_NPC(ch)) return;
if (!IS_CLASS(ch, CLASS_MOOGLE) || !CAN_DANCE(ch, DANCE_JAZZ)) {
send_to_char("Huh?\n\r", ch );
return;}

if (ch->move < 100 ) {
send_to_char("You are too tired to dance.\n\r", ch );
return;}

ch->move -= 100;
send_to_char("You dance the Snowman Jazz.\n\r", ch );
switch(number_range(1,4)) {
	default:
	case 1:
	do_snowball(ch);
	break;
	case 2:
	do_snare(ch);
	break;
	case 3:
	do_surge(ch);
	break;
	case 4:
	do_ice_rabbit(ch);
	break;
}
	WAIT_STATE(ch, 10);
}