#textdomain wesnoth-dw

# This level is not too hard. Don't go too negative on gold, but
# recruit three or four high-level units. You need mostly leveled
# initiates for their magic ranged attacks. Keshan is a big help, and
# so is the unit with the storm trident. If you decide to go after the
# orc leader, wait until the undead are dispatched. Heal everyone,
# then assemble just to the north of his keep. Don't touch the ships
# or piers though! Wait until day time, then send in all the units
# with magical attacks. Use other units to keep the slurbows
# busy. Hopefully the leader won't kill anyone before your next
# turn. One more round of magical attacks should kill him before his
# recruits start beating you up. Killing the orc leader isn't really
# necessary, but he helps someone level up, and he has a fair bit of
# gold. The next level is much easier with lots of gold.

# A lot of the code here is to activate the orc side if the merfolk do
# anything wrong, and keep it passive until then. There is also some
# animation of the orcs coming out to tear down the keep after the
# first turn.

[scenario]
    name= _ "Tirigaz"
    map_file=Tirigaz.map

    id=05_Tirigaz
    next_scenario=06_Uncharted_Islands

    [story]
        [part]
            {DW_BIGMAP}
            story= _ "Farther up the coast was the port city of Tirigaz where Kai Laudiss had so soundly beaten the orcs. Bilheld was due west from there. The merfolk felt uneasy, so they took shelter in an abandoned orcish encampment as night fell."
        [/part]
    [/story]

    {DW_TRACK {JOURNEY_05_NEW} }

    {DEFAULT_SCHEDULE_DUSK}
    {TURNS4 19 18 17 16}
    victory_when_enemies_defeated=no

    [side]
        {SIDE_1}
        {GOLD4 150 140 130 120}
        {INCOME4 9 8 7 6}
    [/side]

    [event]
        name=prestart

        [music]
            name=northerners.ogg
        [/music]
        [music]
            name=legends_of_the_north.ogg
            append=yes
        [/music]

        # wmllint: who RECALL_LOYAL_UNITS is Teeloa, Keshan
        {RECALL_LOYAL_UNITS}

        [objectives]
            side=1
            {HOW_TO_LOSE}
            [objective]
                description= _ "Destroy all the undead"
                condition=win
            [/objective]
            [objective]
                [show_if]
                    [have_unit]
                        side=2
                        canrecruit=yes
                    [/have_unit]
                [/show_if]
                {BONUS_OBJECTIVE_CAPTION}
                description= _ "Also kill Marg-Tonz"+{EARLY_FINISH_BONUS_FOOTNOTE}+{OBJECTIVE_FOOTNOTE _"(you can destroy the undead first)"}
                condition=win
            [/objective]
            [gold_carryover]
                carryover_percentage=40
            [/gold_carryover]
        [/objectives]

        [set_variable]
            name=orcs_passive
            value=yes
        [/set_variable]

        [item]
            x=27
            y=10
            image="units/transport/transport-galleon.png~RC(magenta>orange)"
        [/item]
        [item]
            x=29
            y=9
            image="units/transport/galleon.png~RC(magenta>purple)"
        [/item]
        [item]
            x=22
            y=5
            image="units/transport/transport-galleon.png~RC(magenta>teal)"
        [/item]
    [/event]

    [side]
        side=2
        controller=ai
        user_team_name= _ "Orcs"
        team_name=neutral

        id=Marg-Tonz
        name= _ "Marg-Tonz"
        canrecruit=yes
        moves=0
        type=Orcish Sovereign
        recruit=Wolf Rider, Goblin Knight, Goblin Pillager, Orcish Archer, Orcish Crossbowman, Orcish Slurbow, Orcish Assassin, Orcish Slayer, Orcish Nightblade, Orcish Grunt, Orcish Warrior, Orcish Warlord

        [ai]
            [goal]
                name=target
                [criteria]
                    side=1
                [/criteria]
                value=1000
            [/goal]
            leader_value=1000
        [/ai]

        gold=0
        income=-10
        {FLAG_VARIANT6 ragged}
    [/side]
    {STARTING_VILLAGES 2 99}

    [side]
        side=3
        controller=ai
        no_leader=yes
        team_name=bad guys
        user_team_name= _ "Undead"
        [ai]
            aggression=0.8
            [goal]
                name=target
                [criteria]
                    side=1
                [/criteria]
                value=1000
            [/goal]
            [goal]
                name=target
                [criteria]
                    side=2
                [/criteria]
                value=1
            [/goal]
            village_value=0
            # Even though they are less attractive targets, the ghosts
            # will attack the orcs if they are in range and the merfolk
            # aren't. We will keep the ghosts from attacking the orcs
            # by telling them to avoid the hexes around the guardians.
            [avoid]
                x=14,15,16,  15,16,17,      22,23,24,    24,25,26,         29,30,31,           32,33,34,     31,32,33,        35,36,37
                y=2-3,2-4,2-3,  9-10,8-10,9-10,  2-3,2-4,2-3,  12-13,12-14,12-13,  12-13,11-13,12-13,  7-8,7-9,7-8,  10-11,9-11,10-11,  15-16,14-16,15-16
            [/avoid]
        [/ai]

        gold=0
        {FLAG_VARIANT undead}
    [/side]

    {LIMIT_CONTEMPORANEOUS_RECRUITS 2 (Orcish Warlord) 3}
    {LIMIT_CONTEMPORANEOUS_RECRUITS 2 (Orcish Slurbow) 2}

#define CITY_GUARD X Y
    [unit]
        type=Orcish Crossbowman
        generate_name=yes
        side=2
        x={X}
        y={Y}
        [modifications]
            {TRAIT_LOYAL OVERLAY=""}
            {TRAIT_FEARLESS}
        [/modifications]
        moves=0
    [/unit]
#enddef

    [event]
        name=prestart
        {CITY_GUARD 15 3}
        {CITY_GUARD 16 9}
        {CITY_GUARD 23 3}
        {CITY_GUARD 33 8}
        {CITY_GUARD 30 12}
        {CITY_GUARD 25 13}
        {CITY_GUARD 36 15}
    [/event]

#define GHOST X Y
    [unit]
        type=Ghost
        x={X}
        y={Y}
        side=3
    [/unit]
#enddef

#define WRAITH X Y
    [unit]
        type=Wraith
        x={X}
        y={Y}
        side=3
    [/unit]
#enddef

    [event]
        name=start

        [move_unit_fake]
            type=Ghost
            x=14,20
            y=20,18
        [/move_unit_fake]

        [unit]
            type=Ghost
            id=ghost scout
            x=20
            y=18
            side=3
        [/unit]

        [message]
            speaker=ghost scout
            message= _ "Found. Them."
        [/message]

        {GHOST 19 20}
        {GHOST 20 19}
        {GHOST 21 20}
        {GHOST 22 20}
        {WRAITH 19 19}
        {WRAITH 17 19}
        {WRAITH 18 19}
        {WRAITH 17 18}
        {WRAITH 20 20}

#ifdef NORMAL
        [unit]
            type=Spectre
            x=17
            y=18
            side=3
        [/unit]
        [unit]
            type=Spectre
            x=20
            y=20
            side=3
        [/unit]
#endif

#ifdef HARD
        [unit]
            type=Spectre
            x=17
            y=18
            side=3
        [/unit]
        [unit]
            type=Spectre
            x=20
            y=20
            side=3
        [/unit]
        [unit]
            type=Shadow
            x=20
            y=19
            side=3
        [/unit]
        [unit]
            type=Shadow
            x=20
            y=19
            side=3
        [/unit]
#endif

#ifdef NIGHTMARE
        [unit]
            type=Spectre
            x=17
            y=18
            side=3
        [/unit]
        [unit]
            type=Spectre
            x=20
            y=20
            side=3
        [/unit]
        [unit]
            type=Shadow
            x=20
            y=19
            side=3
        [/unit]
        [unit]
            type=Shadow
            x=20
            y=19
            side=3
        [/unit]
        [unit]
            type=Nightgaunt
            x=20
            y=19
            side=3
        [/unit]
        [unit]
            type=Nightgaunt
            x=20
            y=19
            side=3
        [/unit]
#endif

        # Count the undead because it's more robust than hardcoding
        # their number.
        [store_unit]
            [filter]
                side=3
            [/filter]
            variable=undead
        [/store_unit]
        [foreach]
            array=undead
            [do]
                [set_variable]
                    name=number_of_undead
                    add=1
                [/set_variable]
            [/do]
        [/foreach]
        [clear_variable]
            name=undead
        [/clear_variable]

        [message]
            speaker=Kai Krellis
            message= _ "I feared this might happen. We tarried too long fighting the saurians, and the undead have caught up with us. The spirits may have trapped us here for the night, but in the morning we will..."
        [/message]

        [message]
            speaker=Marg-Tonz
            message= _ "What’s going on? What are you fish-men doing here? Are we constantly to be pestered by you creatures?"
        [/message]

        [message]
            speaker=Cylanna
            message= _ "He’s one to complain about <i>that</i>..."
        [/message]

        [message]
            speaker=Kai Krellis
            message= _ "We were just passing through."
        [/message]

        [message]
            speaker=Marg-Tonz
            message= _ "Well, finish passing."
        [/message]

        [message]
            speaker=Kai Krellis
            message= _ "Actually, we have some ghosts after us now, and we would like to shelter here for a while."
        [/message]

        [message]
            speaker=Marg-Tonz
            message= _ "Forget about it! We don’t want no trouble, but get off our land! Ghosts who don’t like fish are your problem."
        [/message]

        [message]
            speaker=Kai Krellis
            message= _ "If you give us a few hours to regroup and prepare our soldiers, we will go without causing you trouble."
        [/message]

        [message]
            speaker=Marg-Tonz
            message= _ "You have one hour. After that, we are tearing down that old encampment. You stay in the water if you know what’s good for you. If you set foot...or whatever...on land again, we’ll cut your throats. And stay off our piers. And don’t touch the ships neither!"
        [/message]

        [message]
            speaker=Cylanna
            message= _ "I wonder how he gets customers with manners like that."
        [/message]

        [message]
            speaker=Kai Krellis
            message= _ "One hour will work for us. It will not take all of us to defeat the undead. " + {WHISPER _"We can decide what to do about the orc after that."}
        [/message]

        [message]
            speaker=narrator
            message= _ "You will only be able to use your keep for one turn."
            image=wesnoth-icon.png
        [/message]
    [/event]

#define WAKE_ORCS
    # This variable removes their movement points every turn when it's yes:
    [set_variable]
        name=orcs_passive
        value=no
    [/set_variable]

    [gold]
        side=2
#ifdef EASY
        amount=200
#endif
#ifdef NORMAL
        amount=250
#endif
#ifdef HARD
        amount=300
#endif
#ifdef NIGHTMARE
        amount=350
#endif
    [/gold]

    [modify_side]
        side=2
        income=0
    [/modify_side]
#enddef

    [event]
        name=turn 2

        # If, at the end of turn 2, (actually, beginning of turn 3)
        # the merfolk are still ashore, the orcs attack. The event
        # doesn't need to check for the turn being 3, because that's
        # the only way the merfolk could be ashore with the orcs still
        # passive.
        [event]
            name=side turn
            first_time_only=no

            [if]
                [and]
                    [variable]
                        name=side_number
                        equals=2
                    [/variable]
                    [variable]
                        name=orcs_passive
                        equals=yes
                    [/variable]
                    [have_unit]
                        side=1
                        [not]
                            [filter_location]
                                terrain=Ww, Wo, Wwf
                            [/filter_location]
                        [/not]
                    [/have_unit]
                [/and]
                [then]
                    [message]
                        speaker=Marg-Tonz
                        message= _ "You’re still squatting on our land! I warned you."
                    [/message]
                    {WAKE_ORCS}
                [/then]
            [/if]
        [/event]
    [/event]

    # After turn 3, if the merfolk touch land, the orcs attack.
    [event]
        name=turn 3

        [event]
            name=moveto
            first_time_only=yes

            [filter]
                side=1
                [not]
                    [filter_location]
                        terrain=Ww, Wo, Wwf
                    [/filter_location]
                [/not]
            [/filter]

            [if]
                [variable]
                    name=orcs_passive
                    equals=yes
                [/variable]

                [then]
                    [message]
                        speaker=Marg-Tonz
                        message= _ "I told you to stay off our land! Now you’re in for it."
                    [/message]
                    {WAKE_ORCS}
                [/then]

                [else]
                    [allow_undo]
                    [/allow_undo]
                [/else]
            [/if]
        [/event]
    [/event]

    # If a merman lands on a ship, the orcs attack.
    [event]
        name=moveto
        first_time_only=yes

        [filter]
            side=1
            #ship locations
            x=27, 29, 22
            y=10, 9, 5
        [/filter]

        [if]
            [variable]
                name=orcs_passive
                equals=yes
            [/variable]

            [then]
                [message]
                    speaker=Marg-Tonz
                    message= _ "I told you not to bother the ships! Now you’re in for it."
                [/message]
                {WAKE_ORCS}
            [/then]

            [else]
                [allow_undo]
                [/allow_undo]
            [/else]
        [/if]
    [/event]

    # If a merfolk attacks an orc, the orcs can attack back:
    [event]
        name=attack_end
        first_time_only=yes

        [filter]
            side=1
        [/filter]
        [filter_second]
            side=2
        [/filter_second]

        [if]
            [variable]
                name=orcs_passive
                equals=yes
            [/variable]

            [then]
                [message]
                    speaker=Marg-Tonz
                    message= _ "You crazy fish men are attacking us? After we tried to be nice? That’s it. We’re going to end you once and for all."
                [/message]
                {WAKE_ORCS}
            [/then]

            [else]
                [allow_undo]
                [/allow_undo]
            [/else]
        [/if]
    [/event]

    # Remove the orcs movement points each turn if the merfolk have
    # stayed in the water.
    [event]
        name=turn refresh
        first_time_only=no

        [if]
            [variable]
                name=orcs_passive
                equals=yes
            [/variable]

            [then]
                [modify_unit]
                    [filter]
                        side=2
                    [/filter]
                    moves=0
                [/modify_unit]
            [/then]
        [/if]
    [/event]

    # When a ghost is killed, check to see if it was the last one. If
    # it was, and the orc is gone, the player wins. Otherwise, he gets
    # the option to kill the orc.
    [event]
        name=die
        first_time_only=no

        [filter]
            side=3
        [/filter]

        [set_variable]
            name=number_of_undead
            sub=1
        [/set_variable]

        [if]
            [variable]
                name=number_of_undead
                equals=0
            [/variable]

            [then]
                [if]
                    [not]
                        [have_unit]
                            id=Marg-Tonz
                        [/have_unit]
                    [/not]

                    [then]
                        [message]
                            speaker=Kai Krellis
                            message= _ "Now maybe we can head west undisturbed."
                        [/message]
                        [endlevel]
                            result=victory
                            {NEW_GOLD_CARRYOVER 40}
                        [/endlevel]
                    [/then]

                    [else]
                        [message]
                            speaker=Kai Krellis
                            message= _ "We have destroyed the undead."
                            [option]
                                label= _ "Now maybe we can head west undisturbed."
                                [command]
                                    [endlevel]
                                        result=victory
                                        bonus=no
                                    [/endlevel]
                                [/command]
                            [/option]
                            [option]
                                label= _ "This orc leader has not learned that threatening merfolk is a bad idea. We shall defeat him before we go."
                            [/option]
                        [/message]
                    [/else]
                [/if]
            [/then]
        [/if]
    [/event]

    # If the ghost are gone, then killing Marg-Tonz ends the level. If
    # they are not, it doesn't.
    [event]
        name=die

        [filter]
            id=Marg-Tonz
        [/filter]
        [if]
            [have_unit]
                x,y=$x2,$y2
                side=1
            [/have_unit]

            [then]
                # The chest looks better when it's offset 10px to the north
                [item]
                    x,y=$x1,$y1
                    image=misc/blank-hex.png~BLIT(items/chest-open.png~CROP(0,10,72,62),0,0)
                [/item]

                [if]
                    [have_unit]
                        x,y=$x2,$y2
                        race=bats
                    [/have_unit]

                    [then]
                        [message]
                            speaker=second_unit
                            message= _ "Neep, neep!"
                        [/message]

                        [message]
                            speaker=Kai Krellis
                            message= _ "It seems that orc was rich! He has a chest here with over 100 pieces of gold!"
                        [/message]
                    [/then]
                    [else]
                        [message]
                            speaker=second_unit
                            message= _ "It seems that orc was rich! He has a chest here with over 100 pieces of gold!"
                        [/message]
                    [/else]
                [/if]
            [/then]
            [else]
                [message]
                    speaker=Kai Krellis
                    message= _ "Now we must defeat the undead."
                [/message]
            [/else]
        [/if]
        [sound]
            name=gold.ogg
        [/sound]
        [gold]
            side=1
            amount=106
        [/gold]

        [if]
            [variable]
                name=number_of_undead
                equals=0
            [/variable]

            [then]
                [endlevel]
                    result=victory
                    {NEW_GOLD_CARRYOVER 40}
                [/endlevel]
            [/then]

            [else]
                [show_objectives]
                [/show_objectives]
            [/else]
        [/if]
    [/event]

    [event]
        name=last breath
        [filter]
            id=Marg-Tonz
        [/filter]

        [message]
            speaker=Marg-Tonz
            # po: orc's boss' last breath, deliberately gendered instead of changing to "merfolk"
            message= _ "I hate mermen!"
        [/message]
    [/event]

    # In the next event, orcs come out of a village and stand next to
    # the keep. The keep disappears one hex at a time, and the orcs go
    # back to the village.
#define REMOVE_KEEP X Y
    [delay]
        time=200
    [/delay]
    [terrain]
        terrain=Re
        x={X}
        y={Y}
    [/terrain]
    [redraw]
    [/redraw]
#enddef

    [event]
        name=turn 2
        [move_unit_fake]
            type=Orcish Grunt
            side=2
            x=36,35,34,34,34
            y=13,18,18,19,20
        [/move_unit_fake]
        [unit]
            type=Orcish Grunt
            x=34
            y=20
            side=2
        [/unit]

        [move_unit_fake]
            type=Orcish Grunt
            side=2
            x=36,37
            y=13,18
        [/move_unit_fake]
        [unit]
            type=Orcish Grunt
            x=37
            y=18
            side=2
        [/unit]

        [move_unit_fake]
            type=Orcish Grunt
            side=2
            x=36,35
            y=13,18
        [/move_unit_fake]
        [unit]
            type=Orcish Grunt
            x=35
            y=18
            side=2
        [/unit]

        {REMOVE_KEEP 36 20}
        {REMOVE_KEEP 35 20}
        {REMOVE_KEEP 35 19}
        {REMOVE_KEEP 36 18}
        {REMOVE_KEEP 36 19}
        {REMOVE_KEEP 37 19}
        {REMOVE_KEEP 37 20}

        # In the following kill events, we need to be careful with
        # which unit we’re killing, because Kai Krellis could be
        # standing where the grunt was supposed to. In that case, the
        # grunt will be misplaced by a hex.
        [kill]
            type=Orcish Grunt
            [filter_location]
                x=34
                y=20
                radius=1
            [/filter_location]
            animate=no
            fire_event=no
        [/kill]
        [move_unit_fake]
            type=Orcish Grunt
            side=2
            x=34,34,34,35,36
            y=20,19,18,18,13
        [/move_unit_fake]

        [kill]
            type=Orcish Grunt
            [filter_location]
                x=35
                y=18
                radius=1
            [/filter_location]
            animate=no
            fire_event=no
        [/kill]
        [move_unit_fake]
            type=Orcish Grunt
            side=2
            x=35,36
            y=18,13
        [/move_unit_fake]

        [kill]
            type=Orcish Grunt
            [filter_location]
                x=37
                y=18
                radius=1
            [/filter_location]
            animate=no
            fire_event=no
        [/kill]
        [move_unit_fake]
            type=Orcish Grunt
            side=2
            x=37,36
            y=18,13
        [/move_unit_fake]
    [/event]

#undef REMOVE_KEEP
#undef CITY_GUARD
#undef GHOST
#undef WRAITH
#undef WAKE_ORCS
    {HERO_DEATHS}
[/scenario]
