#textdomain wesnoth-test

[test]
    name=_"Test scenario"
    map_data="
Hh          , Hh          , Gg          , Wwf         , Wwf         , Gs^Fp       , Mm          , Hh          , Gg          , Gs^Fp       , Gg          , Hh          , Gg          , Mm          , Hh          , Mm          , Wwf         , Wwf         , Hh          , Gs^Fp       , Hh          , Mm          , Mm
Hh          , Hh          , Gg^Ve       , Wwf         , Wwf         , Gs^Fp       , Mm          , Hh          , Gg          , Gs^Fp       , Gg          , Hh          , Gg          , Mm          , Hh          , Mm          , Wwf         , Wwf         , Hh          , Gs^Fp       , Hh          , Mm          , Mm
Wwf         , Wwf         , Wwf         , Wwf         , Gg          , Wwf         , Wwf         , Hh          , Gg          , Gg          , Wwf         , Ch          , Wwf         , Gs^Fp       , Wwf         , Wwf         , Re          , Re          , Hh          , Mm          , Wwf         , Mm          , Mm
Mm          , Mm          , Wwf         , Gs^Fp       , Gg^Vh       , Wwf         , Gg          , Gg          , Wwf         , Wwf         , Wwf         , 1 Kh        , Ch          , Wwf         , Re          , Re          , Rd          , Rd          , Wwf         , Wwf         , Gs^Fp       , Wwf         , Wwf
Wwf         , Wwf         , Mm          , Wwf         , Gs^Fp       , Wwf         , Wwf         , Wwf         , Gg^Vh       , Gg          , Wwf         , Ch          , Wwf         , Ch          , Rd          , Rd          , Wwf         , Wwf         , Gg^Vh       , Gs^Fp       , Re^Gvs      , Hh          , Hh
Hh          , Hh          , Wwf         , Gs^Fp       , Wwf         , Wwf         , Gg          , Gg          , Gg          , Gg          , Wwf         , Ch          , Gg          , Wwf         , Wwf         , Wwf         , Mm          , Gs^Fp       , Re          , Re^Gvs      , Gg^Wm       , Re^Gvs      , Re^Gvs
Wwf         , Wwf         , Mm          , Wwf         , Hh          , Gs^Fp       , Rd          , Rd          , Gg          , Gg          , Wwf         , Wwf         , Gs^Fp       , Gg          , Hh          , Gg          , Re          , Re          , Rd          , Rd          , Gg          , Hh          , Hh
Hh          , Hh          , Gs^Fp       , Gg          , Gg          , Rd          , Gg          , Gg          , Wwf         , Wwf         , Gs^Fp       , Wwf         , Gs^Fp       , Mm          , Re          , Re          , Rd          , Rd          , Gg          , Gg^Efm      , Mm          , Gs^Fp       , Gs^Fp
Gs^Fp       , Gs^Fp       , Gg          , Gg          , Wwf         , Gg          , Wwf         , Wwf         , Mm          , Hh          , Wwf         , Wwf         , Re          , Re          , Rd          , Rd          , Rd          , Gg          , Gs^Fp       , Gs^Fp       , Gs^Fp       , Hh          , Hh
Hh          , Hh          , Wwf         , Wwf         , Hh          , Wwf         , Gg          , Gg          , Gg          , Gg          , Wwf         , Re          , Re          , Rd          , Gg          , Gg          , Gg          , Gg^Vh       , Hh          , Gg          , Wwf         , Gg^Efm      , Gg^Efm
Wwf         , Wwf         , Hh          , Gg^Efm      , Gs^Fp       , Hh^Vhh      , Gg          , Gg          , Gg          , Ss^Vhs      , Hh          , Ww          , Gs^Fp       , Gg          , Gs^Fp       , Hh          , Wwf         , Wwf         , Wwf         , Wwf         , Gg          , Wwf         , Wwf
Hh          , Hh          , Gg          , Gg          , Re          , Gg          , Re          , Re          , Gg          , Ss          , Gs^Fp       , Ww          , Hh          , Mm          , Ww          , Wwf         , Gg          , Gg          , Ds          , Gg          , Gg          , Gs^Fp       , Gs^Fp
Gs^Fp       , Gs^Fp       , Gg          , Rd          , Rd          , Re          , Rd          , Re          , Hh          , Mm          , Wwf         , Ww          , Ww          , Ww          , Gg          , Gg          , Hh          , Gs^Fp       , Rd          , Rd          , Hh          , Gg          , Gg
Rd          , Rd          , Gs^Fp       , Hh          , Rd          , Rd          , Gs^Fp       , Re          , Gg          , Gg          , Wwf         , Gg          , Wwf         , Gg          , Gg          , Re          , Gs^Fp       , Hh          , Rd          , Mm          , Gs^Fp       , Rd          , Rd
Rd          , Rd          , Hh          , Mm          , Rd          , Hh          , Hh          , Re          , Gg          , Gg          , Ww          , Gg          , Wwf         , Gg          , Hh          , Re          , Rd          , Rd          , Rd          , Hh          , Gg          , Rd          , Rd
Gg          , Gg          , Gg          , Rd          , Ds          , Gs^Fp       , Gg          , Gg          , Ww          , Ww          , Hh          , Ww          , Gs^Fp       , Mm          , Gg          , Re          , Re          , Re          , Re          , Rd          , Gg          , Gs^Fp       , Gs^Fp
Gs^Fp       , Gs^Fp       , Gg          , Gg          , Wwf         , Gg          , Wwf         , Wwf         , Gs^Fp       , Mm          , Gs^Fp       , Ww          , Hh          , Ss          , Gg          , Re          , Gg          , Gg          , Gs^Fp       , Gg          , Hh          , Hh          , Hh
Wwf         , Wwf         , Wwf         , Wwf         , Hh          , Wwf         , Gg          , Hh          , Gg          , Gg          , Re          , Ww          , Wwf         , Ss^Vhs      , Gg          , Gg          , Gg          , Hh^Vhh      , Hh          , Gg^Efm      , Wwf         , Wwf         , Wwf
Gg^Efm      , Gg^Efm      , Gs^Fp       , Gg          , Gs^Fp       , Gg^Vh       , Rd          , Gg          , Rd          , Rd          , Re          , Re          , Wwf         , Gg          , Mm          , Gg          , Wwf         , Wwf         , Wwf         , Wwf         , Gg          , Mm          , Mm
Hh          , Hh          , Mm          , Gs^Fp       , Gg          , Gg          , Rd          , Rd          , Re          , Re          , Gs^Fp       , Wwf         , Gs^Fp       , Hh          , Wwf         , Wwf         , Gg          , Gg          , Gg          , Gg          , Gs^Fp       , Gs^Fp       , Gs^Fp
Gs^Fp       , Gs^Fp       , Gg          , Gg^Efm      , Rd          , Rd          , Re          , Re          , Hh          , Mm          , Gg          , Wwf         , Wwf         , Wwf         , Gg          , Gg          , Rd          , Rd          , Hh          , Gg          , Mm          , Hh          , Hh
Hh          , Hh          , Gg^Wm       , Rd          , Re          , Re          , Mm          , Gg          , Wwf         , Wwf         , Wwf         , Ch          , Gg          , Gg          , Gg          , Rd          , Gg          , Gs^Fp       , Wwf         , Wwf         , Wwf         , Wwf         , Wwf
Re^Gvs      , Re^Gvs      , Re^Gvs      , Re^Gvs      , Gg^Vh       , Gs^Fp       , Wwf         , Wwf         , Rd          , Ch          , Ch          , Ch          , Gg          , Gg          , Gg^Vh       , Gg          , Wwf         , Wwf         , Gs^Fp       , Gs^Fp       , Gg^Ve       , Gg          , Gg
Hh          , Hh          , Gs^Fp       , Gs^Fp       , Wwf         , Wwf         , Rd          , Rd          , Re          , Re          , Wwf         , 2 Kh        , Wwf         , Gg          , Wwf         , Wwf         , Gg          , Wwf         , Wwf         , Wwf         , Wwf         , Gs^Fp       , Gs^Fp
Gs^Fp       , Gs^Fp       , Wwf         , Wwf         , Mm          , Rd          , Gs^Fp       , Hh          , Wwf         , Wwf         , Gg          , Ch          , Gg          , Wwf         , Hh          , Gg          , Wwf         , Wwf         , Gg^Vh       , Gg          , Wwf         , Mm          , Mm
Gs^Fp       , Gs^Fp       , Wwf         , Wwf         , Mm          , Rd          , Gs^Fp       , Wwf         , Wwf         , Gg          , Gg          , Gg          , Gg          , Gg          , Hh          , Gg          , Wwf         , Wwf         , Gg          , Gg          , Wwf         , Mm          , Mm
"

    turns=90
    id=unit_actions

    {DEFAULT_SCHEDULE}

    [label]
        x,y=16,5
        text=_"Patrol waypoint 1"
    [/label]

    [label]
        x,y=16,15
        text=_"Patrol waypoint 2"
    [/label]

    [label]
        x,y=3,14
        text=_"Priorities test"
    [/label]

    [label]
        x,y=2,12
        text=_"first"
    [/label]

    [label]
        x,y=3,11
        text=_"second"
    [/label]

    [label]
        x,y=3,13
        text=_"third"
    [/label]

    [label]
        x,y=8,5
        text=_"Location guarded (range = 3)"
    [/label]

    [side]
        type=Dwarvish Steelclad
        id=side_1_leader
        side=1
        canrecruit=yes
        recruit=Dwarvish Guardsman,Dwarvish Fighter,Dwarvish Thunderer,Thief,Poacher,Footpad
        gold=200
        controller=human
        suppress_end_turn_confirmation=yes
        [unit]
            x,y=10,8
            type="Elvish Archer"
            hitpoints=1
            generate_name=yes
        [/unit]

        [unit]
            x,y=3,12
            type="Elvish Fighter"
            random_traits=no
            generate_name=yes
            [modifications]
                [trait]
                    id=move
                    [effect]
                        apply_to=movement
                        set=0
                    [/effect]
                [/trait]
                [trait]
                    id=hp
                    [effect]
                        apply_to=hitpoints
                        increase_total=120
                    [/effect]
                [/trait]
            [/modifications]
        [/unit]
        [village]
            x,y=2,1
        [/village]
        [village]
            x,y=4,3
        [/village]
        [village]
            x,y=8,4
        [/village]
        [village]
            x,y=18,4
        [/village]
    [/side]

    [side]
        #controller=human
        suppress_end_turn_confirmation=yes
        name=_"AI"
        type=Dark Sorcerer
        side=2
        canrecruit=yes
        recruit=Skeleton,Skeleton Archer,Walking Corpse,Ghost,Vampire Bat,Dark Adept,Ghoul
        gold=200
        shroud=yes

        [unit]
            x,y=8,5
            type="Orcish Archer"
            generate_name=yes
            [ai]
                [micro_ai]
                    ai_type=stationed_guardian
                    station_x,station_y=8,5
                    distance=3
                [/micro_ai]
            [/ai]
        [/unit]
        [unit]
            x,y=3,8
            type="Walking Corpse"
            generate_name=yes
            [ai]
                [micro_ai]
                    ai_type=goto
                    [filter_location]
                        formula=castle
                    [/filter_location]
                    release_unit_at_goal=yes
                [/micro_ai]
            [/ai]
        [/unit]

        [unit]
            x,y=16,5
            type="Wolf Rider"
            generate_name=yes
            [ai]
                [micro_ai]
                    ai_type=patrol
                    waypoint_x=16,16
                    waypoint_y=5,15
                    attack_range=3
                [/micro_ai]
            [/ai]
        [/unit]

        [unit]
            x,y=3,11
            type="Goblin Spearman"
            generate_name=yes
            [ai]
                [candidate_action]
                    engine=lua
                    max_score=10000010
                    evaluation=<<
                        local u = wesnoth.units.find(select(4, ...))[1]
                        if not u then return 0 end
                        return ai.check_attack(u,3,12).ok and 10000010 or 0
                    >>
                    execution=<<
                        local u = wesnoth.units.find(select(4, ...))[1]
                        ai.attack(u,3,12)
                    >>
                [/candidate_action]
            [/ai]
        [/unit]

        [unit]
            x,y=3,13
            type="Goblin Spearman"
            generate_name=yes
            [ai]
                [candidate_action]
                    engine=lua
                    max_score=10000009
                    evaluation=<<
                        local u = wesnoth.units.find(select(4, ...))[1]
                        if not u then return 0 end
                        return ai.check_attack(u,3,12).ok and 10000009 or 0
                    >>
                    execution=<<
                        local u = wesnoth.units.find(select(4, ...))[1]
                        ai.attack(u,3,12)
                    >>
                [/candidate_action]
            [/ai]
        [/unit]

        [unit]
            x,y=2,12
            type="Goblin Spearman"
            generate_name=yes
            [ai]
                [candidate_action]
                    engine=lua
                    max_score=10000011
                    evaluation=<<
                        local u = wesnoth.units.find(select(4, ...))[1]
                        if not u then return 0 end
                        return ai.check_attack(u,3,12).ok and 10000011 or 0
                    >>
                    execution=<<
                        local u = wesnoth.units.find(select(4, ...))[1]
                        ai.attack(u,3,12)
                    >>
                [/candidate_action]
            [/ai]
        [/unit]

        [unit]
            x,y=7,20
            type="Silver Mage"
            generate_name=yes
        [/unit]

        [unit]
            x,y=6,20
            type="Ghost"
            generate_name=yes
        [/unit]
        [unit]
            x,y=15,22
            type="Ghost"
            generate_name=yes
        [/unit]
        [unit]
            x,y=12,19
            type="Ghost"
            generate_name=yes
        [/unit]
        [unit]
            x,y=10,6
            type="Lich"
            experience=149
            generate_name=yes
        [/unit]

        [ai]
            [stage]
                engine=lua
                code="wesnoth.dofile 'ai/lua/opening.lua'"
            [/stage]

            [stage]
                id=main_loop
                name=ai_default_rca::candidate_action_evaluation_loop
                [candidate_action]
                    engine=cpp
                    name=ai_default_rca::move_leader_to_keep_phase
                    max_score = 60000
                    score = 60000
                [/candidate_action]
                [candidate_action]
                    engine=cpp
                    name=ai_default_rca::move_to_targets_phase
                    max_score = 20000
                    score = 20000
                [/candidate_action]
                [candidate_action]
                    engine=cpp
                    name=ai_default_rca::combat_phase
                    max_score = 20000
                    score = 20000
                [/candidate_action]
                [candidate_action]
                    engine=lua
                    name=scouting
                    location="ai/lua/ca_simple_scouting.lua"
                    max_score = 30000
                [/candidate_action]
                [candidate_action]
                    engine=lua
                    name=level_up_attack
                    location = "ai/lua/ca_level_up_attack.lua"
                    max_score = 100000
                [/candidate_action]
            [/stage]

            [stage]
                # This exists so you can see the AI's shroud.
                engine=lua
                name=fallback
                code="ai.fallback_human()"
            [/stage]
        [/ai]
    [/side]
[/test]
