Fixed bug with peak_region

This commit is contained in:
idcarlos 2006-04-11 10:04:25 +00:00
parent bbbffa5ebe
commit c98a1268f7
1 changed files with 32 additions and 28 deletions

View File

@ -42,14 +42,14 @@ youth_academy_new(User *user)
const_int("int_youth_academy_youths_upper"));
user->youth_academy.tm = user->tm;
user->youth_academy.coach =
user->youth_academy.coach =
user->youth_academy.av_coach = QUALITY_AVERAGE;
user->youth_academy.pos_pref = PLAYER_POS_ANY;
user->youth_academy.percentage =
user->youth_academy.av_percentage =
user->youth_academy.percentage =
user->youth_academy.av_percentage =
const_int("int_youth_academy_default_percentage");
user->youth_academy.counter_youth =
user->youth_academy.counter_youth =
math_rnd(const_float("float_youth_academy_youth_counter_lower"),
const_float("float_youth_academy_youth_counter_upper"));
@ -67,8 +67,8 @@ youth_academy_new(User *user)
void
youth_academy_add_new_player(YouthAcademy *youth_academy)
{
gint i;
gfloat pos_probs[4] =
gint i;
gfloat pos_probs[4] =
{const_float("float_youth_academy_pos_goalie"),
const_float("float_youth_academy_pos_defender"),
const_float("float_youth_academy_pos_midfielder"),
@ -104,33 +104,33 @@ youth_academy_add_new_player(YouthAcademy *youth_academy)
const_float("float_youth_academy_age_upper"));
new.peak_age =
math_rnd(const_float("float_player_peak_age_lower") +
(new.pos == PLAYER_POS_GOALIE) *
(new.pos == PLAYER_POS_GOALIE) *
const_float("float_player_peak_age_goalie_addition"),
const_float("float_player_peak_age_upper") +
(new.pos == PLAYER_POS_GOALIE) *
(new.pos == PLAYER_POS_GOALIE) *
const_float("float_player_peak_age_goalie_addition"));
/* Argument for the talent factor function, depending on average coach and
percentage values (weighted). */
percentage_coach_talent_factor = (4 - youth_academy->av_coach) *
(gfloat)const_int("int_youth_academy_max_percentage") *
const_float("float_youth_academy_coach_weight") * 0.25 +
percentage_coach_talent_factor = (4 - youth_academy->av_coach) *
(gfloat)const_int("int_youth_academy_max_percentage") *
const_float("float_youth_academy_coach_weight") * 0.25 +
youth_academy->av_percentage;
/* Applying the talent factor funtion leading to a factor between
float_youth_academy_talent_factor_lower and _upper */
percentage_coach_talent_factor =
percentage_coach_talent_factor =
((const_float("float_youth_academy_talent_factor_upper") -
const_float("float_youth_academy_talent_factor_lower")) /
((gfloat)const_int("int_youth_academy_max_percentage") *
((gfloat)const_int("int_youth_academy_max_percentage") *
(1 + const_float("float_youth_academy_coach_weight")))) *
percentage_coach_talent_factor +
percentage_coach_talent_factor +
const_float("float_youth_academy_talent_factor_lower");
new.talent = math_gauss_dist(
percentage_coach_talent_factor * av_talent *
percentage_coach_talent_factor * av_talent *
(1 - const_float("float_youth_academy_talent_variance")),
percentage_coach_talent_factor * av_talent *
percentage_coach_talent_factor * av_talent *
(1 + const_float("float_youth_academy_talent_variance")));
new.talent = CLAMP(new.talent, 0, const_float("float_player_max_skill"));
@ -159,7 +159,11 @@ youth_academy_add_new_player(YouthAcademy *youth_academy)
new.streak = PLAYER_STREAK_NONE;
new.streak_count = new.streak_prob = 0;
new.peak_region =
math_gauss_dist(const_float("float_player_peak_region_lower"),
const_float("float_player_peak_region_upper"));//2;
g_array_append_val(youth_academy->players, new);
}
@ -180,13 +184,13 @@ youth_academy_update_weekly(void)
for(j=ya->players->len - 1;j>=0;j--)
{
player_update_weekly(&g_array_index(ya->players, Player, j));
if(g_array_index(ya->players, Player, i).fitness < 0.9)
player_update_fitness(&g_array_index(ya->players, Player, j));
else
{
g_array_index(ya->players, Player, j).fitness += math_rnd(-0.05, 0.05);
g_array_index(ya->players, Player, j).fitness =
g_array_index(ya->players, Player, j).fitness =
MIN(g_array_index(ya->players, Player, j).fitness, 1);
}
@ -194,11 +198,11 @@ youth_academy_update_weekly(void)
const_float("float_player_age_lower") &&
g_array_index(ya->players, Player, j).age + 0.08 <=
const_float("float_player_age_lower"))
user_event_add(&usr(i), EVENT_TYPE_WARNING, -1, -1, NULL,
user_event_add(&usr(i), EVENT_TYPE_WARNING, -1, -1, NULL,
_("Youth %s will be too old for the youth academy soon. Move him to your team or kick him out of the academy. Otherwise he'll probably look for another team to play in."), g_array_index(ya->players, Player, j).name);
else if(g_array_index(ya->players, Player, j).age > const_float("float_player_age_lower"))
{
user_event_add(&usr(i), EVENT_TYPE_WARNING, -1, -1, NULL,
user_event_add(&usr(i), EVENT_TYPE_WARNING, -1, -1, NULL,
_("Youth %s thought he's old enough for a real contract and left your youth academy."),
g_array_index(ya->players, Player, j).name);
free_player(&g_array_index(ya->players, Player, j));
@ -206,19 +210,19 @@ youth_academy_update_weekly(void)
}
}
ya->av_coach =
(ya->av_coach * const_float("float_youth_academy_average_weight") +
(gfloat)ya->coach) /
ya->av_coach =
(ya->av_coach * const_float("float_youth_academy_average_weight") +
(gfloat)ya->coach) /
(const_float("float_youth_academy_average_weight") + 1);
ya->av_percentage =
ya->av_percentage =
(ya->av_percentage * const_float("float_youth_academy_average_weight") +
(gfloat)ya->percentage) /
(const_float("float_youth_academy_average_weight") + 1);
if(ya->percentage > 0)
{
ya->counter_youth -=
ya->counter_youth -=
((1 / (gfloat)const_int("int_youth_academy_max_percentage")) *
ya->av_percentage + const_float("float_youth_academy_counter_decrease_min"));
@ -229,11 +233,11 @@ youth_academy_update_weekly(void)
if(ya->players->len < const_int("int_youth_academy_max_youths"))
{
youth_academy_add_new_player(ya);
user_event_add(&usr(i), EVENT_TYPE_WARNING, -1, -1, NULL,
user_event_add(&usr(i), EVENT_TYPE_WARNING, -1, -1, NULL,
_("A new youth registered at your youth academy."));
}
else
user_event_add(&usr(i), EVENT_TYPE_WARNING, -1, -1, NULL,
user_event_add(&usr(i), EVENT_TYPE_WARNING, -1, -1, NULL,
_("A new youth wanted to registered at your youth academy but there was no room for him."));
}
}