#textdomain wesnoth-httt
[scenario]
    id=17_Scepter_of_Fire
    name= _ "The Sceptre of Fire"
    next_scenario=18_A_Choice_Must_Be_Made
    scenario_generation=cave

    #
    # If you think this is laying it on a bit thick, I'm open to
    # suggestions for better wording or something less
    # melodramatic.
    #
    [story]
        [part]
            story= _ "Across the chasm, the air almost crackled with magical energy. It also became steadily warmer. The floor was smooth and glassy in places, and a faint glow provided a small reprieve from the thick blackness. Volcanic fumes drifted up from cracks in the floor."
            #background="maps/wesnoth-httt.jpg"
            show_title=no
        [/part]
        [part]
            story= _ "Distant rumbles and earthquakes made it difficult to keep steady footing. The very earth had come alive, heaving, struggling to be relieved of its centuries-old burden..."
            #background="maps/wesnoth-httt.jpg"
            show_title=no
        [/part]
    [/story]
    {BIGMAP_SCEPTRE_OF_FIRE}

    #
    # Map generator code
    #

    [generator]
        [settings]
            name= _ "The Sceptre of Fire"
            {SCENARIO_MUSIC "the_deep_path.ogg"}
            {EXTRA_SCENARIO_MUSIC "knalgan_theme.ogg"}
            {EXTRA_SCENARIO_MUSIC "heroes_rite.ogg"}
            {TURNS 50 45 35}
            victory_when_enemies_defeated=no
            next_scenario=18_A_Choice_Must_Be_Made

            #
            # This is a custom schedule that gives everything a slight
            # reddish hue and gently pulsates. -30, -40, -40 are default
            # values that look good
            #
            {UNDERGROUND_VOLCANO -27 -37 -37}
            {UNDERGROUND_VOLCANO -28 -38 -38}
            {UNDERGROUND_VOLCANO -32 -42 -42}
            {UNDERGROUND_VOLCANO -36 -46 -46}
            {UNDERGROUND_VOLCANO -37 -47 -47}
            {UNDERGROUND_VOLCANO -36 -46 -46}
            {UNDERGROUND_VOLCANO -32 -42 -42}
            {UNDERGROUND_VOLCANO -28 -38 -38}

            # wmllint: recognize Konrad

            [event]
                name=prestart
                [objectives]
                    side=1
                    [objective]
                        description= _ "Capture the Sceptre of Fire with Konrad or Li’sar"
                        condition=win
                    [/objective]
                    [objective]
                        description= _ "Death of Konrad"
                        condition=lose
                    [/objective]
                    [objective]
                        description= _ "Death of Delfador"
                        condition=lose
                    [/objective]
                    [objective]
                        description= _ "Death of Li’sar"
                        condition=lose
                    [/objective]
                    [objective]
                        description= _ "Death of Kalenz"
                        condition=lose
                    [/objective]

                    {TURNS_RUN_OUT}

                    [gold_carryover]
                        bonus=yes
                        carryover_percentage=40
                    [/gold_carryover]
                [/objectives]

                {SOF_TERRAIN_MASK}
                #
                # Except on hard, you only have to face 3 enemies
                # instead of 4. This part randomly kills one of the
                # 4 leaders.
                #
#ifdef HARD
#else
                {VARIABLE_OP side_kill rand "4..7"}
                {ERASE_CASTLE $side_kill Uu}
                [kill]
                    side=$side_kill
                [/kill]
#endif
                {VARIABLE_OP side_kill rand "2..3"}
                {ERASE_CASTLE $side_kill Uu}
                [kill]
                    side=$side_kill
                [/kill]
                {CLEAR_VARIABLE side_kill}

                # just making sure that the starting castle is big enough that
                # no recalled units can end up inside walls
                [store_locations]
                    [and]
                        [filter]
                            id=Konrad
                        [/filter]

                        radius=1
                    [/and]

                    [not]
                        terrain=C*,K*
                    [/not]

                    variable=adjacent_to_starting_loc
                [/store_locations]

                {FOREACH adjacent_to_starting_loc i}
                    [terrain]
                        x,y=$adjacent_to_starting_loc[$i].x,$adjacent_to_starting_loc[$i].y
                        terrain=Cud
                    [/terrain]
                {NEXT i}

                {CLEAR_VARIABLE adjacent_to_starting_loc}
            [/event]

            [event]
                name=start
                #
                # Initialize the lava growing effect
                #
                {NEXT_LAVA}
            [/event]

            [event]
                name=start
                [recall]
                    id=Delfador
                [/recall]
                [recall]
                    id=Kalenz
                [/recall]
                [recall]
                    id="Li'sar"
                [/recall]
                [message]
                    speaker=Konrad
                    message= _ "The Sceptre must be getting close now! Where shall we go?"
                [/message]
                [message]
                    speaker=Kalenz
                    message= _ "We cannot explore this much area by ourselves, especially if we are beset by the denizens of these caves. We must ask our dwarven allies to help search the caves with us."
                [/message]
                [message]
                    speaker=Delfador
                    message= _ "Yes, I feel it is near here! We must search for it carefully."
                [/message]
                {QUAKE "rumble.ogg"}
                {QUAKE "rumble.ogg"}
                [message]
                    speaker="Li'sar"
                    message= _ "An earthquake! We’ll be trapped!"
                [/message]
                [message]
                    speaker=Kalenz
                    message= _ "No, not an earthquake, Princess. I feel it too. Something is... aware... of us."
                [/message]
                [message]
                    speaker="Li'sar"
                    message= _ "Aware? Who? Delfador, what does he mean?"
                [/message]
                [message]
                    speaker=Delfador
                    message= _ "The Sceptre... the earth... the molten lava... the fire... the air around us... everything. It calls out to the heir — I can barely hold it back in my mind. It was forged here, not far north of where we now stand. The sheer power of it!"
                [/message]
                {QUAKE "rumble.ogg"}
                [message]
                    speaker=Konrad
                    message= _ "Where? Where is it?"
                [/message]
                [message]
                    speaker=Delfador
                    message= _ "North. More than that, I cannot tell."
                [/message]
                [message]
                    speaker="Li'sar"
                    message= _ "Konrad, as promised, here is my purse, full of gold."
                [/message]
                [sound]
                    name=gold.ogg
                [/sound]
                [message]
                    speaker=narrator
                    image="wesnoth-icon.png"
                    message= _ "You receive 300 pieces of gold!"
                [/message]
                [gold]
                    side=1
                    amount=300
                [/gold]
                [store_locations]
                    terrain=Xu,Qxu,Ql
                    [and]
                        x=$scepter_x
                        y=$scepter_y
                        radius=3
                    [/and]
                    [or]
                        x=$scepter_x
                        y=$scepter_y
                        radius=1
                    [/or]
                    variable=scepter_vicinity
                [/store_locations]
                {FOREACH scepter_vicinity i}
                    [terrain]
                        x=$scepter_vicinity[$i].x
                        y=$scepter_vicinity[$i].y
                        terrain=Uu
                    [/terrain]
                {NEXT i}
                [terrain]
                    x=$scepter_x
                    y=$scepter_y
                    terrain=Uu^Ii
                [/terrain]

                #
                # Future capability, once I figure out how to access
                # the scepter's random location and if this still
                # sounds like a good idea.
                #
                #           [message]
                #           id=Delfador
                #           message= _ "I think... I think if I were to concentrate a bit I could tell you where it is."
                #           [/message]
                #           [message]
                #           speaker=narrator
                #           image="wesnoth-icon.png"
                #           message= _ "If Delfador rests, he can concentrate on the location of the Sceptre of Fire."
                #           [/message]
            [/event]

            #
            # Some volcanic ambiance
            #
            [event]
                name=moveto
                first_time_only=no
                [allow_undo]
                [/allow_undo]
                [filter]
                    side=1,4,5
                [/filter]
                {VARIABLE_OP rumble_test rand "1..35"}
                [if]
                    [variable]
                        name=rumble_test
                        numerical_equals=1
                    [/variable]
                    [then]
                        {QUAKE "rumble.ogg"}
                        {VARIABLE_OP lava_count add 1}
                        {EXPAND_LAVA}

                        # Reset the counter if it gets too large (it slows things down)
                        [if]
                            [variable]
                                name=lava_count
                                numerical_equals=3
                            [/variable]
                            [then]
                                {NEXT_LAVA}
                            [/then]
                        [/if]
                    [/then]
                [/if]
                {CLEAR_VARIABLE rumble_test}
            [/event]

            {campaigns/Heir_To_The_Throne/utils/deaths.cfg}
        [/settings]

        map_width=50
        map_height=70
        flipx_chance=50
        village_density=20

        #
        # The chamber with the player. Somewhere in the far south
        #
        [chamber]
            id=player
            x=15-35
            y=68
            size=8
            jagged=50
            [items]
                [side]
                    type=Commander
                    id=Konrad
                    name= _ "Konrad"
                    unrenamable=yes
                    profile=portraits/konrad.png
                    side=1
                    canrecruit=yes
                    team_name=elves
                    user_team_name=_"Rebels"
                    controller=human
                    shroud=yes
                    gold=200
                    {FLAG_VARIANT long}
                [/side]
            [/items]
        [/chamber]

        #
        # The antechambers
        #
        [chamber]
            id=antechamber_1
            x=10-25
            y=50-60
            size=7
            jagged=5
            {PASSAGE_NORMAL player 2 10 10}
            [items]
                [side]
                    type=Goblin Rouser
                    side=2
                    canrecruit=yes
                    controller=ai
                    recruit=Goblin Spearman
                    team_name=orcs
                    user_team_name=_"Orcs"
                    gold=70
                    [ai]
                        aggression=1.0
                        village_value=0.0
                        leader_value=50.0
                        villages_per_scout=0.0
                    [/ai]
                [/side]
            [/items]
        [/chamber]
        [chamber]
            id=antechamber_2
            x=25-40
            y=50-60
            size=7
            jagged=2
            {PASSAGE_NORMAL player 2 3 1}
            {PASSAGE_CHANCE 40 antechamber_1 1 9 9}
            [items]
                [side]
                    type=Goblin Rouser
                    side=3
                    canrecruit=yes
                    controller=ai
                    recruit=Goblin Spearman
                    team_name=orcs
                    user_team_name=_"Orcs"
                    gold=70
                    [ai]
                        aggression=1.0
                        village_value=0.0
                        leader_value=50.0
                        villages_per_scout=0.0
                    [/ai]
                    {FLAG_VARIANT ragged}
                [/side]
            [/items]
        [/chamber]

        #
        # The central volcano
        #
        [chamber]
            id=center
            x=25-26
            y=35-36
            size=2
            jagged=1
            {PASSAGE_NORMAL antechamber_1 1 20 3}
            {PASSAGE_NORMAL antechamber_2 1 20 3}
        [/chamber]

        #
        # The 5 minichambers encircling the central volcano and a 6th chamber
        # to serve as the exit
        #
        [chamber]
            id=mini_1
            x=10-16
            y=36-40
            size=5
            jagged=2
            {PASSAGE_NORMAL center 1 5 2}
            {PASSAGE_NORMAL antechamber_1 2 5 2}
        [/chamber]
        [chamber]
            id=mini_2
            x=8-20
            y=17-26
            size=5
            jagged=3
            {PASSAGE_NORMAL center 1 5 2}
            {PASSAGE_NORMAL mini_1 1 5 2}
        [/chamber]
        [chamber]
            id=mini_3
            x=6-44
            y=14-30
            size=3
            jagged=4
            {PASSAGE_NORMAL center 1 5 2}
            {PASSAGE_NORMAL mini_2 2 5 2}
            [items]
                #
                # These macros handle the placement and attainment of the scepter,
                # including ending the level in victory.
                # I moved them to the utils file to make the chamber WML more readable
                #
                # The scepter will always be in mini chamber 3, but the location of this
                # particular chamber is highly variable
                #
                {PLACE_SCEPTRE}
                {KONRAD_GETS_SCEPTRE}
                {LISAR_GETS_SCEPTRE}
            [/items]
        [/chamber]
        [chamber]
            id=mini_4
            x=30-42
            y=17-26
            size=5
            jagged=5
            {PASSAGE_NORMAL center 1 5 2}
            {PASSAGE_NORMAL mini_3 2 5 2}
        [/chamber]
        [chamber]
            id=mini_5
            x=34-40
            y=36-40
            size=5
            jagged=5
            {PASSAGE_NORMAL mini_4 2 5 2}
            {PASSAGE_NORMAL center 1 5 2}
            {PASSAGE_NORMAL antechamber_2 2 5 2}
        [/chamber]
        [chamber]
            id=exit
            x=25
            y=1
            size=2
            jagged=1
            {PASSAGE_NORMAL mini_2 1 5 2}
            {PASSAGE_NORMAL mini_3 1 5 2}
            {PASSAGE_NORMAL mini_4 1 5 2}
        [/chamber]

        #
        # There are 4 chambers for enemies randomly scattered on the map
        #
        [chamber]
            id=enemy_1
            x=6-15
            y=45-55
            size=5
            jagged=3
            {PASSAGE_NORMAL mini_1 2 5 2}
            {PASSAGE_CHANCE 60 mini_2 1 5 2}
            {PASSAGE_CHANCE 40 antechamber_2 1 5 2}
            [items]
                [side]
                    type=Orcish Warlord
                    side=4
                    canrecruit=yes
                    controller=ai
                    [ai]
                        leader_value=10
                        {ATTACK_DEPTH 5 5 6}
                    [/ai]
                    recruit=Wolf Rider,Orcish Grunt,Orcish Archer
                    team_name=orcs
                    user_team_name=_"Orcs"

                    {GOLD 30 40 50}
                    {INCOME 2 4 6}
                    {FLAG_VARIANT ragged}
                [/side]
            [/items]
        [/chamber]
        [chamber]
            id=enemy_2
            x=6-15
            y=1-35
            size=5
            jagged=3
            {PASSAGE_NORMAL mini_2 2 5 2}
            {PASSAGE_NORMAL enemy_1 2 5 5}
            {PASSAGE_CHANCE 60 mini_1 1 5 2}
            {PASSAGE_CHANCE 40 mini_3 1 5 2}
            [items]
                [side]
                    type=Troll Warrior
                    side=5
                    canrecruit=yes
                    controller=ai
                    [ai]
                        {ATTACK_DEPTH 5 5 6}
                        leader_value=10
                        recruitment_pattern=fighter
                    [/ai]
#ifdef EASY
                    recruit=Troll Whelp,Ogre
#else
                    recruit=Troll Whelp,Troll,Troll Warrior,Ogre
#endif
                    team_name=orcs
                    user_team_name=_"Orcs"
                    {GOLD 30 40 50}
                    {INCOME 2 4 6}
                [/side]
            [/items]
        [/chamber]
        [chamber]
            id=enemy_3
            x=35-45
            y=1-35
            size=5
            jagged=3
            {PASSAGE_NORMAL mini_4 2 5 2}
            {PASSAGE_CHANCE 60 mini_5 1 5 2}
            {PASSAGE_CHANCE 40 mini_3 1 5 2}
            [items]
                [side]
                    type=Orcish Warlord
                    side=6
                    canrecruit=yes
                    controller=ai
                    [ai]
                        {ATTACK_DEPTH 5 5 6}
                        leader_value=10
                        recruitment_pattern=fighter,fighter,scout
                    [/ai]
#ifdef EASY
                    recruit=Ogre,Goblin Knight,Wolf Rider,Troll Whelp
#else
                    recruit=Troll,Ogre,Goblin Knight,Wolf Rider,Troll Whelp,Saurian Skirmisher
#endif
                    team_name=orcs
                    user_team_name=_"Orcs"

                    {GOLD 10 20 30}
                    {INCOME 2 4 6}
                [/side]
            [/items]
        [/chamber]
        [chamber]
            id=enemy_4
            x=35-45
            y=45-55
            size=5
            jagged=3
            {PASSAGE_NORMAL mini_5 2 5 2}
            {PASSAGE_NORMAL enemy_3 2 5 5}
            {PASSAGE_CHANCE 60 mini_4 1 5 2}
            {PASSAGE_CHANCE 40 antechamber_2 1 5 2}
            [items]
                [side]
                    type=Orcish Warlord
                    side=7
                    canrecruit=yes
                    controller=ai
                    [ai]
                        {ATTACK_DEPTH 5 5 6}
                        leader_value=10
                        recruitment_pattern=fighter,fighter,scout
                    [/ai]
#ifdef EASY
                    recruit=Wolf Rider,Goblin Impaler
#else
                    recruit=Goblin Knight,Wolf Rider,Goblin Spearman,Goblin Impaler,Saurian Skirmisher
#endif
                    team_name=orcs
                    user_team_name=_"Orcs"
                    {GOLD 20 30 40}
                    {INCOME 2 4 6}
                    {FLAG_VARIANT ragged}
                [/side]
            [/items]
        [/chamber]
    [/generator]
[/scenario]
