
#include <stdlib.h>
#include <time.h>

unsigned short GetDamage(unsigned short level, unsigned short exp_value, unsigned short attack, unsigned short a_attack, unsigned short e_defence, unsigned short e_d_masic)
{
	unsigned short damage_val;
	damage_val = (double)(attack * a_attack) / e_defence + (double)exp_value / (e_defence * e_d_masic) + rand() % (level + 1);

	return damage_val;
}

unsigned short GetExp(unsigned short level, unsigned short e_HP, unsigned short e_attack, unsigned short e_defence, unsigned short e_a_masic, unsigned short e_d_masic, unsigned short e_speed)
{
	unsigned short get_exp;
	get_exp = e_HP + e_attack + e_defence + e_a_masic + e_d_masic + e_speed + (e_HP + e_attack + e_defence + e_a_masic + e_d_masic + e_speed) / 6 + rand() % (level + 1);
	get_exp *= 2;

	return get_exp;
}

unsigned short GetLvUpExp(unsigned short level, unsigned short HP, unsigned short attack, unsigned short defence, unsigned short a_masic, unsigned short d_masic, unsigned short speed)
{
	unsigned short lvup_exp;
	lvup_exp = (HP + attack + defence + a_masic + d_masic + speed) * level;

	return lvup_exp;
}

unsigned short GetHpStatusUpValue(unsigned short level, unsigned short exp_value)
{
	int rand_val;
	unsigned short lvexp;
	unsigned short Hsuv;

	lvexp = exp_value / level;
	rand_val = rand() % 5;
	rand_val = rand_val - 2;

	Hsuv = (lvexp * 5) / 100 + rand_val;

	return Hsuv;
}

unsigned short GetBasicStatusUpValue(unsigned short level, unsigned short exp_value)
{
	int rand_val;
	unsigned short lvexp;
	unsigned short Bsuv;

	lvexp = exp_value / level;
	rand_val = rand() % 5;
	rand_val = rand_val - 2;

	Bsuv = (lvexp * 2) / 100 + rand_val;
	if(Bsuv < 0 || Bsuv > 6)
		Bsuv = 0;

	return Bsuv;
}