Surprise! We've been running on hardware provided by BuyVM for a few months and wanted to show them a little appreciation.
Running a paste site comes with unique challenges, ones that aren't always obvious and hard to control. As such, BuyVM offered us a home where we could worry less about the hosting side of things and focus on maintaining a clean and useful service! Go check them out and show them some love!
Submitted on February 5, 2017 at 11:31 AM

Section 1 (Text)

#textdomain wesnoth-tsg
[scenario]
    id=07b_Pebbles_in_the_Flood

    name= _ "Pebbles in the Flood"
    next_scenario=08b_The_Tides_of_War

    {SCENARIO_MUSIC elvish-theme.ogg}
    {EXTRA_SCENARIO_MUSIC the_king_is_dead.ogg}
    {EXTRA_SCENARIO_MUSIC nunc_dimittis.ogg}
    {EXTRA_SCENARIO_MUSIC heroes_rite.ogg}

    map_data="{campaigns/The_South_Guard/maps/07b_Pebbles_in_the_Flood.map}"

    {campaigns/The_South_Guard/utils/sg_help.cfg}

    {DEFAULT_SCHEDULE} 

    {SG_PEBBLES_IN_THE_FLOOD}
    {BIGMAP_07B}

    turns=-1
    victory_when_enemies_defeated=no
    disallow_recall=yes

    # The South Guard

    [side]
        side=1
        type=Horseman Commander
        id=Deoran
        name= _ "Deoran"
        unrenamable=yes

        team_name=South_Guard
        user_team_name=_"South Guard"
        controller=human
        {CUSTOM_SG_FLAG}

        gold=0
        {INCOME 4 2 0}

        canrecruit=yes
        recruit=Bowman, Spearman, Cavalryman, Footpad, Thug
    [/side]

    {STARTING_VILLAGES 1 15}

    # The Undead Hordes

    [side]
        side=2
        type=Ancient Lich
        id="Mal M'Brin"
        name= _ "Mal M’Brin"
        profile=portraits/mal-mbrin.png
        facing=sw

        team_name=The_Undead_Hordes
        user_team_name=_"Undead"
        controller=ai
        
        # Let’s start manageably, then increase difficulty
        {GOLD 100 150 200}
        income=0

        canrecruit=yes
        [ai]
            recruitment_pattern=scout, fighter, fighter, archer, scout, fighter, archer
            aggression=1.0
            caution=0.0
            [goal]
                [criteria]
                    id=Sir Gerrick
                [/criteria]
                value=10.0
            [/goal]
        [/ai]
        recruit=Wraith, Shadow, Skeleton, Revenant, Draug, Bone Shooter, Blood Bat, Chocobone
        {FLAG_VARIANT undead}

    [/side]
    
    # He’s supposed to be unreachable anyway
#    # Make it impossible for the player to kill him, no matter how lucky.
#    {FORCE_CHANCE_TO_HIT side=1 id="Mal M'Brin" 0 ()}
    
    # The idea: The Undead’s income increases every turn. This will make sure that at the beginning things will be manageable enough to allow surviving long enough, but will also ensure that sooner or later the player will die.
    # Also on this setting we might have some actual battle at the beginning, rather than immediate onslaught, which I think is good.
    # I hope it makes sense to play well during the “preparation time” on the first few turns. Hopefully not loosing too many units in the beginning + managing to evolve a few will be what decides whether the player manages or not to survive these two or three more turns.
    # I hope that on Hard a good player should be able to survive till the bloody turn 24, but only with a little luck.
    # The income increasement rate should be very similar no matter the difficulty level, or else Easy will allow much longer survival, which is bad. I’ll do my job if all difficulty levels allow the player to survive for about the same time, but with lesser or greater ease.
    [event]
        name=side 2 turn
        first_time_only=no
        
#ifdef EASY
            {INCREASE_INCOME 2 7}
#endif
#ifdef NORMAL
            {INCREASE_INCOME 2 8}
#endif
#ifdef HARD
            {INCREASE_INCOME 2 9}
#endif
    [/event]
            
    [side]
        side=3
        # Just for novelty; doesn’t matter anyway
        type=Death Knight
        id=Mal Tera
        name= _ "Mal Tera"

        team_name=The_Undead_Hordes
        user_team_name=_"Undead"
        controller=ai

        {GOLD 50 100 150}
        income=0

        canrecruit=yes
        [ai]
            recruitment_pattern=fighter
            aggression=0.95
        [/ai]
#ifdef EASY
        recruit=Walking Corpse
#endif
#ifdef NORMAL
        recruit=Walking Corpse, Soulless
#endif
#ifdef HARD
        recruit=Walking Corpse, Soulless, Ghoul
#endif
        {FLAG_VARIANT undead}
    [/side]
    
    # If he’s supposed to be a continued nuissance, then it’d be useful to limit the number of ghouls, or else the poison’s gonna wear the player off too soon
#ifdef HARD
    [event]
        name=side 3 turn 3
      
        [modify_side]
            side=3
            recruit=Walking Corpse, Soulless
        [/modify_side]
    [/event]
#endif  
    
    [event]
        name=side 3 turn
        first_time_only=no
        
#ifdef EASY
            {INCREASE_INCOME 3 2}
#endif
#ifdef NORMAL
            {INCREASE_INCOME 3 3}
#endif
#ifdef HARD
            {INCREASE_INCOME 3 4}
#endif
    [/event]

    #prestart
    [event]
        name=prestart

        [store_side]
            side=1
            variable=stored_side_1
        [/store_side]
        {VARIABLE pebbles_starting_gold $stored_side_1.gold}

        # Hopefully we can keep these large differences among difficulty levels: I hope they won’t allow for much longer survival (you should get overwhelmed at about the same time, when the Undeads’ income goes off-charts), but will give you a greater tolerance for mistakes
        [modify_side]
            side=1
            {GOLD 250 200 150}
        [/modify_side]

        # Sgt. Finde's Section

        {NAMED_GENERIC_UNIT 1 Sergeant 5 11 (Sgt. Finde) (_"Sgt. Finde")} {GUARDIAN}
        {NAMED_GENERIC_UNIT 1 Spearman 4 10 (Maelvas) (_"Maelvas")} {GUARDIAN}
        {NAMED_GENERIC_UNIT 1 Spearman 5 10 (Orome) (_"Orome")} {GUARDIAN}
        {NAMED_GENERIC_UNIT 1 Peasant 6 10 (Mitche) (_"Mitche")} {GUARDIAN}

        # Lt. Illan's Section

        {NAMED_GENERIC_UNIT 1 (Lieutenant) 13 12 (Lt. Illan) (_"Lt. Illan")} {GUARDIAN}
        {NAMED_GENERIC_UNIT 1 (Heavy Infantryman) 13 13 (Rheban) (_"Rheban")} {GUARDIAN}
        {NAMED_GENERIC_UNIT 1 (Horseman) 14 12 (Jul) (_"Jul")} {GUARDIAN}

        # Lt. Meris' Section

        {NAMED_GENERIC_UNIT 1 (Lieutenant) 35 11 (Lt. Meris) (_"Lt. Meris")} {GUARDIAN}
        {NAMED_GENERIC_UNIT 1 (Peasant) 34 10 (Findlas) (_"Findlas")} {GUARDIAN}
        {NAMED_GENERIC_UNIT 1 (Bowman) 33 10 (Chumet) (_"Chumet")} {GUARDIAN}
        {NAMED_GENERIC_UNIT 1 (Heavy Infantryman) 33 11 (Neras) (_"Neras")} {GUARDIAN}
        {NAMED_GENERIC_UNIT 1 (Bowman) 34 11 (Eera) (_"Eera")} {GUARDIAN}

        # Ancient Lich's Guards

        {NAMED_GENERIC_UNIT 2 Draug 26 23 () (_"Death Guard")} {GUARDIAN}
        {CAN_PASS_BARRIER 26 23}
        {NAMED_GENERIC_UNIT 2 Draug 29 22 () (_"Death Guard")} {GUARDIAN}
        {CAN_PASS_BARRIER 29 22}

        {MODIFY_UNIT x,y=24-40,5-25 facing sw}

        {CLEAR_VARIABLE stored_side_1}
    [/event]

    #start
    [event]
        name=start
        [recall]
            id=Sir Gerrick
            x,y=19,10
        [/recall]
        [recall]
            id=Urza Afalas
            x,y=18,9
        [/recall]

        [message]
            speaker=Deoran
            message= _ "We have escaped the great forest, but look! The undead are chasing us — we must not have rooted them all out of the wood."
        [/message]
        [message]
            speaker=Sir Gerrick
            message= _ "My lord, you must hasten back to Westin to prepare a defense against them. I will command the defense of the border forts."
        [/message]
        [message]
            speaker=Urza Afalas
            message= _ "I too will make my stand here — I owe you my life and must atone for my crimes. Together we will hold off the foul undead as long as we can."
        [/message]
        [message]
            speaker=Deoran
            message= _ "Minister Hylas, ride with me to Westin — you must summon the Council of Westin while I prepare the city’s defenses. We shall return as soon as we can in force and relieve you."
        [/message]
        [message]
            speaker=Sir Gerrick
            message= _ "Make no promises you know you cannot keep. Organize the defense of Westin, and if you survive, remember those who fell here."
        [/message]

        {MOVE_UNIT id=Deoran 18 5}

        [message]
            speaker=Deoran
            message= _ "Your name will be sounded in the roll of heroes, and you will be avenged. Thank you, my friend."
        [/message]

        {MOVE_UNIT id=Deoran 17 1}

        [store_unit]
            [filter]
                id=Deoran
            [/filter]

            kill=yes
            variable=stored_Deoran
        [/store_unit]

        {MODIFY_UNIT (id=Sir Gerrick) canrecruit yes}
        {MODIFY_UNIT (id=Sir Gerrick) ellipse ""}

        [message]
            speaker=Lt. Illan
            message= _ "We are yours to command, Sir Gerrick. Our men are not the great warriors that you and Deoran are, but we will hold our lines staunchly, until the bitter end."
        [/message]

        [objectives]
            side=1
            [objective]
                description= _ "Hold the line: Keep Sir Gerrick alive as long as possible"
                condition=win
            [/objective]

            note= _ "No gold carried over to the next scenario."
        [/objectives]

        [message]
            speaker=narrator
            message= _ "There is no way to win this scenario, and no way to lose. Hold off the undead hordes as long as you can. Keep Sir Gerrick alive as long as you can. Every turn that passes strengthens the defenses of Westin."
            image=wesnoth-icon.png
        [/message]
    [/event]

    # We’re devising a wholly different idea of Mal M’Brin’s gold
#    [event]
#        name=die
#        first_time_only=no
#    
#        [filter]
#            side=2
#        [/filter]
#        [gold]
#            side=2
##ifdef EASY
#            amount=50
##endif
##ifdef NORMAL
#            amount=65
##endif
##ifdef HARD
#            amount=80
##endif
#        [/gold]
#    [/event]

    # Surround the Undead castles with this magical barrier other scenarios talk so much about, but never actually show. Also (obviously) make Undead recruits able to pass this barrier, but lock the leaders.
    # This is for a few reasons:
    # • Otherwise it is possible to attempt to assasinate Mal Tera on turn 2 by luring him outta his keep with (14,12) horseman. This is too luck dependant.
    # • We want Mal Tera to present a continued nuissance, for which reason we want him to be unkillable.
    # • Since the Undead start pretty weak, it could be possible to actually charge them early-on; ofc we want to prohibit this, but in a more gracefull way than forcing a 0 chance to hit
    # About the use of the Void terrain as the barrier… Well, it simply looks nice. Plus, it’s trivial to prohibit units from passing it
    [event]
        name=side 1 turn 1 end
        
        {PLACE_BARRIER 28 24 "Mal M'Brin" recruiting 300 25 21 "border_size=1
usage=map

_f,_f,_f,_f,_f,_f,_f,_f,_f,_f
_f,_f,_f,_f,Xv,Xv,Xv,_f,_f,_f
_f,_f,Xv,Xv,_f,_f,_f,Xv,Xv,_f
_f,Xv,_f,_f,_f,_f,_f,_f,Xv,_f
_f,Xv,_f,_f,_f,_f,_f,_f,Xv,_f
_f,Xv,_f,_f,_f,_f,_f,_f,Xv,_f
_f,Xv,_f,_f,_f,_f,_f,_f,Xv,_f
"}
        
        {PLACE_BARRIER 14 24 "Mal M'Brin" recruiting 300 11 21 "border_size=1
usage=map

_f,_f,_f,_f,_f,_f,_f,_f,_f,_f
_f,_f,_f,_f,Xv,_f,_f,_f,_f,_f
_f,_f,Xv,Xv,_f,Xv,Xv,_f,_f,_f
_f,Xv,_f,_f,_f,_f,_f,Xv,Xv,_f
_f,Xv,_f,_f,_f,_f,_f,_f,Xv,_f
_f,Xv,_f,_f,_f,_f,_f,_f,Xv,_f
_f,Xv,_f,_f,_f,_f,_f,_f,Xv,_f
"}            
        [message]
            speaker=Urza Afalas
            message= _ "See? This is this magical barrier I was telling you about… No one can pass it! We cannot even reach the castles he has occupied, while he has plenty of time for preparations. We are surely doomed!"
        [/message]
        
        {MODIFY_UNIT id="Mal M'Brin" max_moves 0}
        {MODIFY_UNIT id="Mal Tera" max_moves 0}
    [/event]

    [event]
        name=last breath
        [filter]
            id=Urza Afalas
        [/filter]

        [message]
            speaker=Urza Afalas
            message= _ "Now I will never see my home again... Hold back the undead, Gerrick!"
        [/message]
    [/event]
    
    # Make undead units able to pass the barrier
    # The macro is defined in terms of the [object] tag to prevent the (at least hypothetical) gimmick that the player holds undead forces on the line of the barrier and evolves them, thus making them stuck and preventing any other undead from attacking
    [event]
        name=recruit
        first_time_only=no
        [filter]
            side=2,3
        [/filter]
        
        {CAN_PASS_BARRIER $x1 $y1}
    [/event]
                
    [event]
        name=last breath
        [filter]
            id=Sir Gerrick
        [/filter]

        [message]
            speaker=Sir Gerrick
            message= _ "I only hope we have bought Deoran enough time to secure Westin for the onslaught!"
        [/message]
        [kill]
            x,y=$x1,$y1
            animate=yes
        [/kill]
        [message]
            speaker="Mal M'Brin"
            message= _ "We will crush Westin as we have crushed you! No one shall stand between us and our home."
        [/message]

        {VARIABLE pebbles_defense_length $turn_number}

        [kill]
            side=1
            {EVERYWHERE}
            fire_event=no
            animate=no
        [/kill]

        {VARIABLE stored_Deoran.x recall}
        {VARIABLE stored_Deoran.y recall}

        [unstore_unit]
            variable=stored_Deoran
        [/unstore_unit]

        #Set the amount of gold that the player has to what it was before Pebbles.
        [modify_side]
            side=1
            gold=$pebbles_starting_gold
        [/modify_side]
        {CLEAR_VARIABLE pebbles_starting_gold}

        [endlevel]
            result=victory
            bonus=no
            {NEW_GOLD_CARRYOVER 100}
        [/endlevel]
    [/event]
[/scenario]