From c98a1268f77b444ac2b62e2546f05f0e9785e492 Mon Sep 17 00:00:00 2001 From: idcarlos Date: Tue, 11 Apr 2006 10:04:25 +0000 Subject: [PATCH] Fixed bug with peak_region --- src/youth_academy.c | 60 ++++++++++++++++++++++++--------------------- 1 file changed, 32 insertions(+), 28 deletions(-) diff --git a/src/youth_academy.c b/src/youth_academy.c index 12ffd55a..f1c27ff6 100644 --- a/src/youth_academy.c +++ b/src/youth_academy.c @@ -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.")); } }