Yet more fixes to recruitment-pattern bugs,
...and a warning about the limitations of the wmllint test.
This commit is contained in:
parent
902ae3179f
commit
1c34d84292
10 changed files with 29 additions and 14 deletions
|
@ -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
|
||||
|
|
|
@ -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]
|
||||
|
|
|
@ -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]
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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}
|
||||
|
|
|
@ -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]
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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]
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue