Yet more fixes to recruitment-pattern bugs,

...and a warning about the limitations of the wmllint test.
This commit is contained in:
Eric S. Raymond 2008-01-31 05:47:44 +00:00
parent 902ae3179f
commit 1c34d84292
10 changed files with 29 additions and 14 deletions

View file

@ -131,10 +131,10 @@
{ATTACK_DEPTH 4 5 6}
passive_leader=yes
simple_targetting=yes
#ifdef HARD
recruitment_pattern=scout,fighter,fighter,mixed fighter,healer
#else
#ifndef HARD
recruitment_pattern=scout,fighter,fighter,mixed fighter
#else
recruitment_pattern=scout,fighter,fighter,mixed fighter,healer
#endif
villages_per_scout=0
village_value=0

View file

@ -73,7 +73,11 @@
[ai]
{NO_SCOUTS}
recruitment_ignore_bad_movement=yes
#ifdef EASY
recruitment_pattern=scout,fighter,fighter,archer,fighter
#else
recruitment_pattern=scout,fighter,fighter,archer,fighter,mixed fighter
#endif
aggression=0.75
{ATTACK_DEPTH 4 5 5}
[/ai]

View file

@ -90,7 +90,7 @@
recruitment_pattern=fighter,fighter,archer
#endif
#ifdef HARD
recruitment_pattern=fighter,archer,archer
recruitment_pattern=scout,fighter,archer,archer
#endif
[/ai]
[/side]

View file

@ -69,7 +69,7 @@
canrecruit=1
[ai]
recruitment_pattern=fighter,mixed fighter
recruitment_pattern=fighter,mixed fighter,scout,archer
recruitment_ignore_bad_movement=yes
aggression=0.8
village_value=0.1

View file

@ -104,7 +104,7 @@
#endif
#ifdef HARD
recruitment_pattern=fighter,mixed fighter,archer,fighter
recruitment_pattern=fighter,mixed fighter,archer,scout,fighter
#endif
{ATTACK_DEPTH 3 4 5}

View file

@ -134,7 +134,7 @@
#endif
#ifdef HARD
recruitment_pattern=scout,scout,fighter,fighterarcher,fighter
recruitment_pattern=scout,scout,fighter,fighter,archer,fighter
#endif
[/ai]
[/side]

View file

@ -140,15 +140,15 @@
[ai]
#ifdef EASY
recruitment_pattern=scout,fighter,archer,fighter
recruitment_pattern=scout,fighter,mixed fighter,archer,fighter
#endif
#ifdef NORMAL
recruitment_pattern=scout,fighter,archer,fighter
recruitment_pattern=scout,fighter,mixed fighter,archer,fighter
#endif
#ifdef HARD
recruitment_pattern=scout,fighter,archer,fighter
recruitment_pattern=scout,fighter,mixed fighter,archer,fighter
#endif
# AI will attack a weak unit with a max of 3,4,5 units

View file

@ -142,7 +142,7 @@
# depending on the difficulty (default=5)
{ATTACK_DEPTH 3 4 5}
recruitment_pattern=fighter,archer,fighter,mixed fighter
recruitment_pattern=fighter,archer,fighter,mixed fighter,scout
aggression=0.75
caution=0.25

View file

@ -87,11 +87,11 @@
#endif
#ifdef HARD
recruit=Saurian Skirmisher, Saurian Augur, Saurian Ambusher, Saurian Shoothsayer, Saurian Oracle
recruit=Saurian Skirmisher, Saurian Augur, Saurian Ambusher, Saurian Soothsayer, Saurian Oracle
#endif
[ai]
recruitment_pattern=scout, archer, scout, archer
recruitment_pattern=scout, healer, archer, scout, archer
aggression=0.75
caution=0.1
@ -231,7 +231,7 @@
#endif
#ifdef HARD
recruit=Naga Fighter, Naga Warrior, Naga Guardian Naga Hunter, Naga Warden, Naga Myrmidon
recruit=Naga Fighter, Naga Warrior, Naga Guardian, Naga Hunter, Naga Warden, Naga Myrmidon
#endif
[ai]

View file

@ -558,6 +558,9 @@ def parse_attribute(str):
# value, trailing whitespace and comment.
return (key, leader, value, comment)
# This needs to match the list of usagge types in ai_python.cpp
usage_types = ("scout", "fighter", "mixed fighter", "archer", "healer")
# These are accumulated by sanity_check() and examined by sanity_postcheck()
usage = {}
sides = []
@ -632,6 +635,10 @@ def sanity_check(filename, lines):
if q in lines[i]:
notes.append(q)
# Sanity-check recruit and recruitment_pattern.
# This code has a limitation; if there arre multiple instances of
# recruit and recruitment_pattern (as can happen if these lists
# vary by EASY/NORMAL/HARD level) this code will only compare the
# last of each.
in_side = False
recruit = []
recruitment_pattern = []
@ -653,6 +660,10 @@ def sanity_check(filename, lines):
recruit = (i+1, map(lambda x: x.strip(), value.split(",")))
elif key == "recruitment_pattern" and value:
recruitment_pattern = (i+1, map(lambda x: x.strip(), value.split(",")))
for utype in recruitment_pattern[1]:
if not utype in usage_types:
print '"%s", line %d: unknown usage class %s' \
% (filename, i+1, utype)
except TypeError:
pass