Feature #1084 ยป 0074-AI-Reduce-want-of-settlers-if-Found-City-action-is-n.patch
| ai/default/daidomestic.c | ||
|---|---|---|
|
}
|
||
|
}
|
||
|
if (adv->max_num_cities <= city_list_size(pplayer->cities)) {
|
||
|
if (adv->max_num_cities <= city_list_size(pplayer->cities)
|
||
|
|| !player_can_do_action_result(pplayer, ACTRES_FOUND_CITY)) {
|
||
|
founder_want /= 100;
|
||
|
}
|
||
| common/player.c | ||
|---|---|---|
|
fc_assert(plrstate_type_is_valid(state));
|
||
|
return FALSE;
|
||
|
}
|
||
|
/*******************************************************************//**
|
||
|
Can player do some action for the result?
|
||
|
@param pplayer Player to do the action
|
||
|
@param result Action result to look for
|
||
|
@return Whether player can do some action for the result
|
||
|
***********************************************************************/
|
||
|
bool player_can_do_action_result(struct player *pplayer,
|
||
|
enum action_result result)
|
||
|
{
|
||
|
action_by_result_iterate(paction, result) {
|
||
|
action_enabler_list_iterate(action_enablers_for_action(action_id(paction)),
|
||
|
penabler) {
|
||
|
struct universal u[2] = {
|
||
|
{.kind = VUT_GOVERNMENT, .value = {.govern = (pplayer->government)}},
|
||
|
{.kind = VUT_MINCITIES, .value = {.min_cities = (city_list_size(pplayer->cities))}},
|
||
|
};
|
||
|
if (!universals_mean_unfulfilled(&(penabler->actor_reqs), u, 2)) {
|
||
|
return TRUE;
|
||
|
}
|
||
|
} action_enabler_list_iterate_end;
|
||
|
} action_by_result_iterate_end;
|
||
|
return FALSE;
|
||
|
}
|
||
| common/player.h | ||
|---|---|---|
|
int player_multiplier_target_value(const struct player *pplayer,
|
||
|
const struct multiplier *pmul);
|
||
|
/* iterate over all player slots */
|
||
|
bool player_can_do_action_result(struct player *pplayer,
|
||
|
enum action_result result);
|
||
|
/* Iterate over all player slots */
|
||
|
#define player_slots_iterate(_pslot) \
|
||
|
if (player_slots_initialised()) { \
|
||
|
struct player_slot *_pslot = player_slot_first(); \
|
||