URL:
<http://gna.org/patch/?4885>
Summary: Revised logic for AI improvement consideration and
improvement redundancy
Project: Freeciv
Submitted by: persia
Submitted on: Tue 01 Jul 2014 01:42:37 PM JST
Category: general
Priority: 5 - Normal
Status: Works For Me
Privacy: Public
Assigned to: persia
Originator Email:
Open/Closed: Open
Discussion Lock: Any
Planned Release: 2.6.0
_______________________________________________________
Details:
The attached patch series is my interpretation of the right solution for bug
#21992.
The first patch in the series removes the use of is_effect_prevented() from
adjust_improvement_wants_by_effects(), and replaces it with checks inside the
reqs loop for specific types of requirements and conditions (in some cases,
present==FALSE means we can't have it, in others present==TRUE means we can't
have it, and the remainder are more complex). This is not a complete list of
all possible requirements, but should cover all the cases where we know in
advance things are impossible (while letting through things that are possible,
but the AI has no idea how to accomplish: fixing this is left for future
patches).
The second patch in the series attempts to reconstruct the semantics from
is_effect_useful (removed with the patch from bug #21982) in
is_improvement_redundant(): unfortunately the appropriate logic is subtly
different from that in get_current_construction_bonus(), so is_effect_useful()
cannot be simply reinstated, to better capture the state of improvements that
are not obsolete, yet provide no effect. Note that this doesn't capture all
cases: a building may meet reqs for action enablers, extras, disasters, or
other conditions not captured here (but again, outside the direct intent of
this patch). I'm unsure whether the right solution is to list all the
potential improvement utilisation conditions in this function, or to move the
ruleset cache to requirements.c, and centrally cache all uses of
requirements.
As these collectively include the reversion of most of a recent commit
(r25032), I'd appreciate comments indicating others also like these semantics
before application.
_______________________________________________________
File Attachments:
-------------------------------------------------------
Date: Tue 01 Jul 2014 01:42:37 PM JST Name:
AI-check-missing-improvement-reqs-with-more-care.patch Size: 7kB By: persia
<http://gna.org/patch/download.php?file_id=21229>
-------------------------------------------------------
Date: Tue 01 Jul 2014 01:42:37 PM JST Name:
consider-utility-for-improvement-redundancy.patch Size: 7kB By: persia
<http://gna.org/patch/download.php?file_id=21230>
_______________________________________________________
Reply to this item at:
<http://gna.org/patch/?4885>
_______________________________________________
Message sent via/by Gna!
http://gna.org/
_______________________________________________
Freeciv-dev mailing list
[email protected]
https://mail.gna.org/listinfo/freeciv-dev