Пример #1
0
 def run (self, submap, x, y, dir, name):
     p = adonthell.gamedata_get_character (name)
     free = adonthell.gamedata_get_quest ("demo").get_val("silverhair_free")
     
     # -- Jelom not convinced of Silverhair's innocence
     if p.get_val ("came_from_barn") == 1 and not free:
         p.stand ()
         p.go_south ()
         p.speak (_("I better leave the way I came."))
     else:
         events.switch_submap (p, self.smdest, self.xdest, self.ydest, self.destdir)
         adonthell.audio_fade_out_background (500)
Пример #2
0
    def run (self, submap, x, y, dir, name):
        # -- just arrived -> do nothing
        if dir == adonthell.STAND_WEST: return
        
        p = adonthell.gamedata_get_character (name)

        if p.get_val ("came_from_barn") == 1:
            p.set_val ("came_from_barn", 0)
            p.set_val ("on_veranda", 1)
            
            events.switch_submap (p, self.smdest, self.xdest, self.ydest, self.destdir)
            adonthell.audio_fade_out_background (500)
Пример #3
0
    def cleanup(self):
        adonthell.win_manager_get_active().remove(self.window)

        self.window.remove(self.bag_o)
        self.window.remove(self.bag_c)
        self.window.remove(self.bag_t)

        del self.bag_o
        del self.bag_c
        del self.bag_t

        adonthell.audio_fade_out_background(500)
        adonthell.audio_unload_background(0)
Пример #4
0
    def run(self, submap, x, y, dir, name):
        # -- just arrived -> do nothing
        if dir == adonthell.STAND_WEST: return

        p = adonthell.gamedata_get_character(name)

        if p.get_val("came_from_barn") == 1:
            p.set_val("came_from_barn", 0)
            p.set_val("on_veranda", 1)

            events.switch_submap(p, self.smdest, self.xdest, self.ydest,
                                 self.destdir)
            adonthell.audio_fade_out_background(500)
Пример #5
0
    def run(self, submap, x, y, dir, name):
        p = adonthell.gamedata_get_character(name)
        free = adonthell.gamedata_get_quest("demo").get_val("silverhair_free")

        # -- Jelom not convinced of Silverhair's innocence
        if p.get_val("came_from_barn") == 1 and not free:
            p.stand()
            p.go_south()
            p.speak(_("I better leave the way I came."))
        else:
            events.switch_submap(p, self.smdest, self.xdest, self.ydest,
                                 self.destdir)
            adonthell.audio_fade_out_background(500)
Пример #6
0
    def cleanup (self):
        adonthell.win_manager_get_active ().remove (self.window)

        self.window.remove (self.bag_o)
        self.window.remove (self.bag_c)
        self.window.remove (self.bag_t)

        del self.bag_o
        del self.bag_c
        del self.bag_t

        adonthell.audio_fade_out_background (500)
        adonthell.audio_unload_background (0)
Пример #7
0
    def on_update(self):
        if self.draw_func != None:
            # -- Skip intro sequence
            if adonthell.input_has_been_pushed(adonthell.SDLK_ESCAPE):
                adonthell.audio_fade_out_background(500)
                self.bag_t.set_visible(0)
                self.bag_c.set_visible(0)
                self.bag_o.set_visible(1)
                self.bag_o.set_alpha(255)
                self.draw_func = None
                self.show_menu(1, 0)

        # return self.retval
        return 1
Пример #8
0
    def on_update (self):
        if self.draw_func != None:
            # -- Skip intro sequence
            if adonthell.input_has_been_pushed (adonthell.SDLK_ESCAPE):
                adonthell.audio_fade_out_background (500)
                self.bag_t.set_visible (0)
                self.bag_c.set_visible (0)
                self.bag_o.set_visible (1)
                self.bag_o.set_alpha (255)
                self.draw_func = None
                self.show_menu (1, 0)

        # return self.retval
        return 1
Пример #9
0
    def run (self, submap, x, y, dir, name):
        p = adonthell.gamedata_get_character (name)
        p.set_val ("came_from_barn", 1)
        p.set_val ("on_veranda", 0)
         
        events.switch_submap (p, self.smdest, self.xdest, self.ydest, self.destdir)
        adonthell.audio_fade_out_background (500)

        p.stand ()
        p.go_west ()
        
        silverhair = adonthell.gamedata_get_character ("Imoen Silverhair")
        
        # -- only initiate dialogue the first time the player enters
        if silverhair.get_val ("talked_to") == 0:
            silverhair.launch_action (p)
Пример #10
0
    def run(self, submap, x, y, dir, name):
        p = adonthell.gamedata_get_character(name)
        p.set_val("came_from_barn", 1)
        p.set_val("on_veranda", 0)

        events.switch_submap(p, self.smdest, self.xdest, self.ydest,
                             self.destdir)
        adonthell.audio_fade_out_background(500)

        p.stand()
        p.go_west()

        silverhair = adonthell.gamedata_get_character("Imoen Silverhair")

        # -- only initiate dialogue the first time the player enters
        if silverhair.get_val("talked_to") == 0:
            silverhair.launch_action(p)
Пример #11
0
    def run (self, submap, x, y, dir, name):
        p = adonthell.gamedata_get_character (name)

        free = adonthell.gamedata_get_quest ("demo").get_val("silverhair_free")

        # -- Jelom not convinced of Silverhair's innocence
        if not free and p.get_name () == adonthell.gamedata_player ().get_name ():
            # -- we only need that for the dialogue, ...
            p.set_val ("at_silverhairs_door", 1)
            p.stand ()
            p.go_north ()
            adonthell.gamedata_get_character ("Jelom Rasgar").launch_action (p)
            # -- ... so remove it again afterwards
            p.set_val ("at_silverhairs_door", 0)
        else:
            events.switch_submap (p, self.smdest, self.xdest, self.ydest, self.destdir)
            adonthell.audio_fade_out_background (500)
Пример #12
0
    def fade_to_forest(self):

        # -- drawing area
        self.da = adonthell.drawing_area()
        self.da.resize(adonthell.screen_length(), adonthell.screen_height())
        self.da.move(0, 0)

        # -- load images
        self.wood1 = adonthell.image()
        self.wood1.load_raw("gfx/cutscene/forest3.img")

        self.wood2 = adonthell.image()
        self.wood2.load_raw("gfx/cutscene/forest2.img")
        self.wood2.set_mask(1)

        self.wood3 = adonthell.image()
        self.wood3.load_raw("gfx/cutscene/forest1.img")
        self.wood3.set_mask(1)

        self.alek_run = adonthell.animation()
        self.alek_run.load("gfx/cutscene/running_alek.anim")
        self.alek_run.play()

        self.black = adonthell.win_image()
        self.black.resize(320, 240)
        self.black.fillrect(0, 0, 320, 240, 0)
        self.black.thisown = 0
        self.black.pack()

        # -- label
        self.label = adonthell.win_label()
        self.label.set_font(adonthell.win_manager_get_font("white"))
        self.label.resize(240, 90)
        self.label.move(40, 30)
        self.label.thisown = 0
        self.label.pack()

        # -- window
        self.window = adonthell.win_container()
        self.window.move(0, 0)
        self.window.resize(320, 240)
        self.window.set_visible_border(0)
        self.window.set_trans_background(1)

        self.window.add(self.black)
        self.window.add(self.label)

        self.window.set_activate(1)
        self.window.set_visible_all(1)

        # -- audio
        adonthell.audio_fade_out_background(500)

        # -- misc stuff
        self.step = 0  # -- for the extro control
        self.a1 = 0
        self.a2 = 0
        self.a3 = 0  # -- for the forest animation control
        self.index = 0  # -- index in the typeover array
        self.delay = 0  # -- delay before adding new text
        self.cursor = 0  # -- cursor in the typeover text
        self.x = [0, 0, 0]  # -- offsets of the 3 forest pics and Alek

        adonthell.gamedata_engine().set_update_map(0)
        self.letsexit = 0

        adonthell.gametime_update()
        while self.letsexit != 1:
            for i in range(0, adonthell.gametime_frames_to_skip()):
                self.forest_animation()
                self.alek_run.update()
                self.window.update()
                adonthell.gametime_update()

            if self.letsexit != 1:
                self.window.draw()
                adonthell.screen_show()

        adonthell.gamedata_engine().main(self.window, 'fmv')

        # -- quit!
        adonthell.audio_fade_out_background(500)
        adonthell.gamedata_engine().main_quit()
Пример #13
0
    def __init__(self, mapchar):
        # -- audio
        adonthell.audio_set_schedule_active (0)
        adonthell.audio_fade_out_background (1000)
        
        # -- grab the character's we need
        bjarn = adonthell.gamedata_get_character ("Bjarn Fingolson")
        erek = adonthell.gamedata_get_character ("Erek Stonebreaker")
        jelom = adonthell.gamedata_get_character ("Jelom Rasgar")
        talan = adonthell.gamedata_get_character ("Talan Wendth")
        silverhair = adonthell.gamedata_get_character ("Imoen Silverhair")
        player = adonthell.gamedata_player ()

        talan.pause ()

        # -- init the bubble texts
        #    (character, text)
        self.text = [(bjarn, N_("There is no denying it. Yes, I feigned the theft. ")), \
            (erek, N_("But Master? How could you do such an infamous deed? ")), \
            (jelom, N_("That I would know as well! And where are the gems then? ")), \
            (bjarn, N_("What? Haven't I made myself clear already? ")), \
            (bjarn, N_("I despise those Elves and their uncanny ways. ")), \
            (bjarn, N_("Their ... meddling with reality contradicts all principles I learnt to hold true.     ")), \
            (bjarn, N_("And yet, I had to provide them with the reagents they need to perform their dark art.     ")), \
            (bjarn, N_("I felt so ... ashamed! ")), \
            (player, N_("And you believe this justifies the discomfort you caused my mistress? ")), \
            (bjarn, N_("You cannot think further than your mistress, can you? ")), \
            (bjarn, N_("Theft by a high born like Lady Silverhair would have been considered a grave insult by the clan elders.     ")), \
            (bjarn, N_("Had she been convicted, they might have chosen to cease trading with her likes. ")), \
            (bjarn, N_("It might have been years before any Elf got his filthy hands on our beloved gems again! ")), \
            (silverhair, N_("I feared as much and I       feared the consequences.")), \
            (silverhair, N_("Without the arcane arts my kind would soon succumb to the human tides. ")), \
            (silverhair, N_("But without gems and ores purchased from the small folk we cannot create magic. ")), \
            (jelom, N_("Who would have thought that? ")), \
            (jelom, _("Seems you owe %s here a big favour, if I may say so, Lady. ") % player.get_name()), \
            (silverhair, _("Rest assured that %s's deeds will not be forgotten, good man. ") %  player.get_name()), \
            (jelom, N_("Well, this is settled then. What remains now are the whereabouts of the gems. ")), \
            (jelom, N_("Master Fingolson! ")), \
            (None, N_("They were here all the time, safe from thieving hands, ...")), \
            (None, N_("... well hidden in a niche I carved during my previous visits.")), \
            (None, N_("Right here.")), \
            (None, N_("But ...")), \
            (None, N_("... they are gone!")), \
            (talan, N_("Sir, sir! To the gate! Quick! The thief is loose!")), \
            (bjarn, N_("My jewels, oh my jewels!")), \
            (player, N_("By Andomiel's Tree! What happened to you, Talan?!")), \
            (talan, N_("It was the mercenary, sir! He sneaked upon me and hit me over the head.")), \
            (silverhair, N_("O sweet irony.")), \
            (jelom, N_("Then the gems have been stolen after all?!")), \
            (jelom, N_("By that scum, Alek!? Now that's funny.")), \
            (bjarn, N_("How can you say that? And why are you still here?")), \
            (bjarn, N_("Will nobody go after my gems!?")), \
            (jelom, N_("What for?")), \
            (jelom, N_("Where you are going you won't need them any more. Besides, Alek is probably long gone by now ..."))]

        # -- the typeover text
        self.typeover = [N_("And so Alek Endhelm escaped into the\nNorth, where he spent his newly gained\nwealth for Ale and other pleasures."), \
            N_("Bjarn Fingolson however, bereft of all\nhonour, was taken to Uzdun'kal and\nsentenced to the lowest labour.\nNowadays his fate serves as an example\nand a warning to generations of young Dwarves."), \
            N_("Lady Imoen Silverhair received the finest\nChrysoberyl Catseyes as a token of\nregret, and the magic rings and amulets\nshe crafted were of wondrous might and\nbeauty, desired and admired throughout\nthe realm."), \
            N_("Soon after his return, young Erek\naccomplished the Rite of Passage and\njoined adult society. To his surprise, he\nwas sent to the Elvish Council at the\nHigh City of Elgilad, as an ambassador\nfor his people.")]

        # -- the credits
        #    (text, delay)
        self.credits = [("Adonthell", 1), \
            ("- Waste's Edge -", 3), \
            (_("directed by:"), 1), \
            ("Alexandre Courbot", 1), \
            ("Kai Sterker", 3), \
            (_("written by:"), 1), \
            ("Kai Sterker", 1), \
            ("Mike Nieforth", 1), \
            ("Josh Glover", 3), \
            (_("based on an original idea by:"), 1), \
            ("Kai Sterker", 3), \
            (_("produced by:"), 1), \
            (_("the Adonthell team"), 3), \
            (_("executive producers:"), 1), \
            ("Sourceforge.net", 1), \
            ("GNU Savannah", 1), \
            ("Linuxgames.com", 5), \
            (_("cast:"), 1), \
            (adonthell.gamedata_player ().get_name () + _(" - you"), 1), \
            (_("Imoen Silverhair - herself"), 1), \
            (_("Bjarn Fingolson - himself"), 1), \
            (_("Erek Stonebreaker - himself"), 1), \
            (_("Orloth Redwyne - himself"), 1), \
            (_("Alek Endhelm - himself"), 1), \
            (_("Oliver Redwyne - himself"), 1), \
            (_("Talan Wendth - himself"), 1), \
            (_("Jelom Rasgar - himself"), 1), \
            (_("Tristan Illig - himself"), 1), \
            (_("Fellnir Kezular - himself"), 1), \
            (_("Lucia Redwyne - herself"), 1), \
            (_("Rhayne Frostbloom - herself"), 1), \
            (_("Sarin Trailfollower - himself"), 1), \
            (_("Janesta Skywind - herself"), 2), \
            (_("Mrs. Frostbloom's assistant:"), 1), \
            ("Yeti", 2), \
            (_("casting:"), 1), \
            ("Benjamin Walther-Franks", 5), \
            (_("director of photography:"), 1), \
            ("Alexandre Courbot", 2), \
            (_("art director:"), 1), \
            ("James Nash", 2), \
            (_("assistant art director:"), 1), \
            ("Benjamin Walther-Franks", 2), \
            (_("wardrobe:"), 1), \
            ("Benjamin Walther-Franks", 2), \
            (_("props masters:"), 1), \
            ("James Nash", 1), \
            ("Kai Sterker", 2), \
            (_("location managers:"), 1), \
            ("Alexandre Courbot", 1), \
            ("James Nash", 2), \
            (_("grip:"), 1), \
            ("Alexandre Courbot", 5), \
            (_("\"Window\" unit:"), 2), \
            (_("director:"), 1), \
            ("Joel Vennin", 2), \
            (_("assistant director:"), 1), \
            ("Joel Vennin", 2), \
            (_("best boy:"), 1), \
            ("Yeti", 2), \
            (_("runner:"), 1), \
            ("Joel Vennin", 5), \
            (_("music by:"), 1), \
            ("Joseph Toscano", 2), \
            (_("foley artist:"), 1), \
            ("Joseph Toscano", 2), \
            (_("title design:"), 1), \
            ("John Havard", 1), \
            ("James Nash", 2), \
            (_("soundtrack available on:"), 1), \
            ("http://zhaymusic.com/wastesedge/", 5), \
            (_("the Adonthell team wishes to thank:"), 2), \
            ("Al Koskelin", 1), \
            ("Andrew Henderson", 1), \
            ("Chris Harris", 1), \
            ("Mark Howson", 1), \
            ("Dave Peticolas", 1), \
            ("Ryan O'Neil", 1), \
            ("Meandus", 1), \
            ("Deniz Oezsen", 2), \
            (_("The people behind SDL, Ogg Vorbis,"), 1), \
            (_("Python, SWIG and all the other Free"), 1), \
            (_("Software developers whose work"), 1), \
            (_("made Adonthell possible"), 3), \
            (_("career portal:"), 1), \
            ("http://adonthell.linuxgames.com/development/", 5), \
            (_("No Yetis were harmed during\n the production of this game"), 5), \
            (_("presented in"), 2), \
            (_("Ogg Vorbis Stereo"), 1), \
            (_("(where available)"), 14), \
            (_("The END"), 6), \
            (_("Joel, you are fired! ;)"), -1)]

            
        # -- text colors
        self.colors = ["white", "yellow", "red", "violet", "blue", "green"]
         
        # -- misc stuff
        self.index = 0
        self.bubble = self.make_bubble ()
        self.done = 0
        
        # -- the images
        self.wall = adonthell.win_image ()
        self.wall.load_raw ('gfx/cutscene/extro_wall.img')
        self.wall.pack ()
        self.wall.thisown = 0
        
        self.chest = adonthell.win_image ()
        self.chest.load_raw ('gfx/cutscene/extro_chest.img')
        self.chest.set_mask (1)
        self.chest.move (75, 0)
        self.chest.pack ()
        self.chest.thisown = 0
        
        self.o_bag = adonthell.win_image ()
        self.o_bag.load_raw ('gfx/cutscene/extro_open_bag.img')
        self.o_bag.pack ()
        self.o_bag.thisown = 0
        
        self.c_bag = adonthell.win_image ()
        self.c_bag.load_raw ('gfx/cutscene/extro_closed_bag.img')
        self.c_bag.pack ()
        self.c_bag.thisown = 0
        
        self.bjarn = adonthell.win_image ()
        self.bjarn.load_raw ('gfx/cutscene/extro_bjarn.img')
        self.bjarn.pack ()
        self.bjarn.thisown = 0

        # -- set new audio schedule and play extro music
        adonthell.audio_load_background (0, "audio/at-demo-9.ogg")
        adonthell.audio_play_background (0)
Пример #14
0
    def fade_to_forest (self):
    
        # -- drawing area
        self.da = adonthell.drawing_area ()
        self.da.resize (adonthell.screen_length (), adonthell.screen_height ())
        self.da.move (0, 0)

        # -- load images  
        self.wood1 = adonthell.image ()
        self.wood1.load_raw ("gfx/cutscene/forest3.img")
        
        self.wood2 = adonthell.image ()
        self.wood2.load_raw ("gfx/cutscene/forest2.img")
        self.wood2.set_mask (1)
        
        self.wood3 = adonthell.image ()
        self.wood3.load_raw ("gfx/cutscene/forest1.img")
        self.wood3.set_mask (1)

        self.alek_run = adonthell.animation ()
        self.alek_run.load ("gfx/cutscene/running_alek.anim")
        self.alek_run.play ()

        self.black = adonthell.win_image ()
        self.black.resize (320, 240)
        self.black.fillrect (0, 0, 320, 240, 0)
        self.black.thisown = 0
        self.black.pack ()
        
        # -- label
        self.label = adonthell.win_label ()
        self.label.set_font (adonthell.win_manager_get_font ("white"))
        self.label.resize (240, 90)
        self.label.move (40, 30)
        self.label.thisown = 0
        self.label.pack ()
        
        # -- window
        self.window = adonthell.win_container ()
        self.window.move (0, 0)
        self.window.resize (320, 240)
        self.window.set_visible_border (0)
        self.window.set_trans_background (1)
        
        self.window.add (self.black)
        self.window.add (self.label)
        
        self.window.set_activate (1)
        self.window.set_visible_all (1)
        
        # -- audio
        adonthell.audio_fade_out_background (500)
        
        # -- misc stuff
        self.step = 0       # -- for the extro control
        self.a1 = 0
        self.a2 = 0
        self.a3 = 0         # -- for the forest animation control
        self.index = 0      # -- index in the typeover array
        self.delay = 0      # -- delay before adding new text
        self.cursor = 0     # -- cursor in the typeover text
        self.x = [0, 0, 0]  # -- offsets of the 3 forest pics and Alek

        adonthell.gamedata_engine ().set_update_map (0)
        self.letsexit = 0
        
        adonthell.gametime_update ()
        while self.letsexit != 1:
            for i in range (0, adonthell.gametime_frames_to_skip ()):
                 self.forest_animation ()
                 self.alek_run.update ()
                 self.window.update ()
                 adonthell.gametime_update ()
            
            if self.letsexit != 1: 
                self.window.draw ()
                adonthell.screen_show ()
        
        adonthell.gamedata_engine ().main (self.window, 'fmv')
        
        # -- quit!
        adonthell.audio_fade_out_background (500)
        adonthell.gamedata_engine ().main_quit ()
Пример #15
0
    def forest_animation (self):
        # -- animate
        if self.a1 >= 4:
            self.x[0] = self.update_wood (self.wood1, self.x[0])
            self.a1 = 0
        else: self.a1 = self.a1 + 1

        # Magic number
        if self.a2 >= 2:
            self.x[1] = self.update_wood (self.wood2, self.x[1])
            self.a2 = 0
        else: self.a2 = self.a2 + 1

        # Magic number
        if self.a3 >= 1:
            self.x[2] = self.update_wood (self.wood3, self.x[2])
            self.a3 = 0
        else: self.a3 = self.a3 + 1
 
        # -- draw
        self.draw_wood (self.wood1, self.x[0])
        self.draw_wood (self.wood2, self.x[1])
        self.alek_run.draw (110, 120, self.da)
        self.draw_wood (self.wood3, self.x[2])
        
        # -- fade in
        if self.step == 0:
            alpha = self.black.alpha () - 2
            if alpha >= 0:
                self.black.set_alpha (alpha)
                return
            else:
                adonthell.audio_load_background (2, "audio/at-demo-2.ogg")
                adonthell.audio_play_background (2)

                self.window.remove (self.black)
                self.step = 1
        
        # Alek running ...
        elif self.step == 1:
            if self.index < len (self.typeover):
                if self.cursor < len (self.typeover[self.index]):
                    self.delay = self.delay + 2.8
                    
                    if self.delay >= 6:
                        if self.cursor == 0: self.label.set_text ("")
                        txt = self.typeover[self.index][self.cursor]
                        self.label.add_text (txt)
                        self.cursor = self.cursor + 1
                        
                        # -- little pause at the end of a sentence
                        if txt == '.': self.delay = -50
                        else: self.delay = 0
                else:
                    self.index = self.index + 1
                    self.cursor = 0
                    self.delay = -200
            else:
                self.delay = 0
                self.step = 2
                
        # -- wait some more
        elif self.step == 2:
            self.delay = self.delay + 3
            if self.delay >= 300:
                  # -- audio
                  adonthell.audio_fade_out_background (2000)
                  self.window.add (self.black)
                  self.step = 3
        
        # -- fade out
        elif self.step == 3:
            alpha = self.black.alpha () + 2
            if alpha <= 255:
                self.black.set_alpha (alpha)
                return
            else:
                self.letsexit = 1

                self.draw_func = self.scroll_credits
                self.window = self.make_credits ()
                self.window.py_signal_connect (self.on_draw, adonthell.win_event_UPDATE)
                adonthell.win_manager_get_active ().add (self.window)        
Пример #16
0
    def __init__(self, mapchar):
        # -- audio
        adonthell.audio_set_schedule_active(0)
        adonthell.audio_fade_out_background(1000)

        # -- grab the character's we need
        bjarn = adonthell.gamedata_get_character("Bjarn Fingolson")
        erek = adonthell.gamedata_get_character("Erek Stonebreaker")
        jelom = adonthell.gamedata_get_character("Jelom Rasgar")
        talan = adonthell.gamedata_get_character("Talan Wendth")
        silverhair = adonthell.gamedata_get_character("Imoen Silverhair")
        player = adonthell.gamedata_player()

        talan.pause()

        # -- init the bubble texts
        #    (character, text)
        self.text = [(bjarn, N_("There is no denying it. Yes, I feigned the theft. ")), \
            (erek, N_("But Master? How could you do such an infamous deed? ")), \
            (jelom, N_("That I would know as well! And where are the gems then? ")), \
            (bjarn, N_("What? Haven't I made myself clear already? ")), \
            (bjarn, N_("I despise those Elves and their uncanny ways. ")), \
            (bjarn, N_("Their ... meddling with reality contradicts all principles I learnt to hold true.     ")), \
            (bjarn, N_("And yet, I had to provide them with the reagents they need to perform their dark art.     ")), \
            (bjarn, N_("I felt so ... ashamed! ")), \
            (player, N_("And you believe this justifies the discomfort you caused my mistress? ")), \
            (bjarn, N_("You cannot think further than your mistress, can you? ")), \
            (bjarn, N_("Theft by a high born like Lady Silverhair would have been considered a grave insult by the clan elders.     ")), \
            (bjarn, N_("Had she been convicted, they might have chosen to cease trading with her likes. ")), \
            (bjarn, N_("It might have been years before any Elf got his filthy hands on our beloved gems again! ")), \
            (silverhair, N_("I feared as much and I       feared the consequences.")), \
            (silverhair, N_("Without the arcane arts my kind would soon succumb to the human tides. ")), \
            (silverhair, N_("But without gems and ores purchased from the small folk we cannot create magic. ")), \
            (jelom, N_("Who would have thought that? ")), \
            (jelom, _("Seems you owe %s here a big favour, if I may say so, Lady. ") % player.get_name()), \
            (silverhair, _("Rest assured that %s's deeds will not be forgotten, good man. ") %  player.get_name()), \
            (jelom, N_("Well, this is settled then. What remains now are the whereabouts of the gems. ")), \
            (jelom, N_("Master Fingolson! ")), \
            (None, N_("They were here all the time, safe from thieving hands, ...")), \
            (None, N_("... well hidden in a niche I carved during my previous visits.")), \
            (None, N_("Right here.")), \
            (None, N_("But ...")), \
            (None, N_("... they are gone!")), \
            (talan, N_("Sir, sir! To the gate! Quick! The thief is loose!")), \
            (bjarn, N_("My jewels, oh my jewels!")), \
            (player, N_("By Andomiel's Tree! What happened to you, Talan?!")), \
            (talan, N_("It was the mercenary, sir! He sneaked upon me and hit me over the head.")), \
            (silverhair, N_("O sweet irony.")), \
            (jelom, N_("Then the gems have been stolen after all?!")), \
            (jelom, N_("By that scum, Alek!? Now that's funny.")), \
            (bjarn, N_("How can you say that? And why are you still here?")), \
            (bjarn, N_("Will nobody go after my gems!?")), \
            (jelom, N_("What for?")), \
            (jelom, N_("Where you are going you won't need them any more. Besides, Alek is probably long gone by now ..."))]

        # -- the typeover text
        self.typeover = [N_("And so Alek Endhelm escaped into the\nNorth, where he spent his newly gained\nwealth for Ale and other pleasures."), \
            N_("Bjarn Fingolson however, bereft of all\nhonour, was taken to Uzdun'kal and\nsentenced to the lowest labour.\nNowadays his fate serves as an example\nand a warning to generations of young Dwarves."), \
            N_("Lady Imoen Silverhair received the finest\nChrysoberyl Catseyes as a token of\nregret, and the magic rings and amulets\nshe crafted were of wondrous might and\nbeauty, desired and admired throughout\nthe realm."), \
            N_("Soon after his return, young Erek\naccomplished the Rite of Passage and\njoined adult society. To his surprise, he\nwas sent to the Elvish Council at the\nHigh City of Elgilad, as an ambassador\nfor his people.")]

        # -- the credits
        #    (text, delay)
        self.credits = [("Adonthell", 1), \
            ("- Waste's Edge -", 3), \
            (_("directed by:"), 1), \
            ("Alexandre Courbot", 1), \
            ("Kai Sterker", 3), \
            (_("written by:"), 1), \
            ("Kai Sterker", 1), \
            ("Mike Nieforth", 1), \
            ("Josh Glover", 3), \
            (_("based on an original idea by:"), 1), \
            ("Kai Sterker", 3), \
            (_("produced by:"), 1), \
            (_("the Adonthell team"), 3), \
            (_("executive producers:"), 1), \
            ("Sourceforge.net", 1), \
            ("GNU Savannah", 1), \
            ("Linuxgames.com", 5), \
            (_("cast:"), 1), \
            (adonthell.gamedata_player ().get_name () + _(" - you"), 1), \
            (_("Imoen Silverhair - herself"), 1), \
            (_("Bjarn Fingolson - himself"), 1), \
            (_("Erek Stonebreaker - himself"), 1), \
            (_("Orloth Redwyne - himself"), 1), \
            (_("Alek Endhelm - himself"), 1), \
            (_("Oliver Redwyne - himself"), 1), \
            (_("Talan Wendth - himself"), 1), \
            (_("Jelom Rasgar - himself"), 1), \
            (_("Tristan Illig - himself"), 1), \
            (_("Fellnir Kezular - himself"), 1), \
            (_("Lucia Redwyne - herself"), 1), \
            (_("Rhayne Frostbloom - herself"), 1), \
            (_("Sarin Trailfollower - himself"), 1), \
            (_("Janesta Skywind - herself"), 2), \
            (_("Mrs. Frostbloom's assistant:"), 1), \
            ("Yeti", 2), \
            (_("casting:"), 1), \
            ("Benjamin Walther-Franks", 5), \
            (_("director of photography:"), 1), \
            ("Alexandre Courbot", 2), \
            (_("art director:"), 1), \
            ("James Nash", 2), \
            (_("assistant art director:"), 1), \
            ("Benjamin Walther-Franks", 2), \
            (_("wardrobe:"), 1), \
            ("Benjamin Walther-Franks", 2), \
            (_("props masters:"), 1), \
            ("James Nash", 1), \
            ("Kai Sterker", 2), \
            (_("location managers:"), 1), \
            ("Alexandre Courbot", 1), \
            ("James Nash", 2), \
            (_("grip:"), 1), \
            ("Alexandre Courbot", 5), \
            (_("\"Window\" unit:"), 2), \
            (_("director:"), 1), \
            ("Joel Vennin", 2), \
            (_("assistant director:"), 1), \
            ("Joel Vennin", 2), \
            (_("best boy:"), 1), \
            ("Yeti", 2), \
            (_("runner:"), 1), \
            ("Joel Vennin", 5), \
            (_("music by:"), 1), \
            ("Joseph Toscano", 2), \
            (_("foley artist:"), 1), \
            ("Joseph Toscano", 2), \
            (_("title design:"), 1), \
            ("John Havard", 1), \
            ("James Nash", 2), \
            (_("soundtrack available on:"), 1), \
            ("http://zhaymusic.com/wastesedge/", 5), \
            (_("the Adonthell team wishes to thank:"), 2), \
            ("Al Koskelin", 1), \
            ("Andrew Henderson", 1), \
            ("Chris Harris", 1), \
            ("Mark Howson", 1), \
            ("Dave Peticolas", 1), \
            ("Ryan O'Neil", 1), \
            ("Meandus", 1), \
            ("Deniz Oezsen", 2), \
            (_("The people behind SDL, Ogg Vorbis,"), 1), \
            (_("Python, SWIG and all the other Free"), 1), \
            (_("Software developers whose work"), 1), \
            (_("made Adonthell possible"), 3), \
            (_("career portal:"), 1), \
            ("http://adonthell.linuxgames.com/development/", 5), \
            (_("No Yetis were harmed during\n the production of this game"), 5), \
            (_("presented in"), 2), \
            (_("Ogg Vorbis Stereo"), 1), \
            (_("(where available)"), 14), \
            (_("The END"), 6), \
            (_("Joel, you are fired! ;)"), -1)]

        # -- text colors
        self.colors = ["white", "yellow", "red", "violet", "blue", "green"]

        # -- misc stuff
        self.index = 0
        self.bubble = self.make_bubble()
        self.done = 0

        # -- the images
        self.wall = adonthell.win_image()
        self.wall.load_raw('gfx/cutscene/extro_wall.img')
        self.wall.pack()
        self.wall.thisown = 0

        self.chest = adonthell.win_image()
        self.chest.load_raw('gfx/cutscene/extro_chest.img')
        self.chest.set_mask(1)
        self.chest.move(75, 0)
        self.chest.pack()
        self.chest.thisown = 0

        self.o_bag = adonthell.win_image()
        self.o_bag.load_raw('gfx/cutscene/extro_open_bag.img')
        self.o_bag.pack()
        self.o_bag.thisown = 0

        self.c_bag = adonthell.win_image()
        self.c_bag.load_raw('gfx/cutscene/extro_closed_bag.img')
        self.c_bag.pack()
        self.c_bag.thisown = 0

        self.bjarn = adonthell.win_image()
        self.bjarn.load_raw('gfx/cutscene/extro_bjarn.img')
        self.bjarn.pack()
        self.bjarn.thisown = 0

        # -- set new audio schedule and play extro music
        adonthell.audio_load_background(0, "audio/at-demo-9.ogg")
        adonthell.audio_play_background(0)
Пример #17
0
    def forest_animation(self):
        # -- animate
        if self.a1 >= 4:
            self.x[0] = self.update_wood(self.wood1, self.x[0])
            self.a1 = 0
        else:
            self.a1 = self.a1 + 1

        # Magic number
        if self.a2 >= 2:
            self.x[1] = self.update_wood(self.wood2, self.x[1])
            self.a2 = 0
        else:
            self.a2 = self.a2 + 1

        # Magic number
        if self.a3 >= 1:
            self.x[2] = self.update_wood(self.wood3, self.x[2])
            self.a3 = 0
        else:
            self.a3 = self.a3 + 1

        # -- draw
        self.draw_wood(self.wood1, self.x[0])
        self.draw_wood(self.wood2, self.x[1])
        self.alek_run.draw(110, 120, self.da)
        self.draw_wood(self.wood3, self.x[2])

        # -- fade in
        if self.step == 0:
            alpha = self.black.alpha() - 2
            if alpha >= 0:
                self.black.set_alpha(alpha)
                return
            else:
                adonthell.audio_load_background(2, "audio/at-demo-2.ogg")
                adonthell.audio_play_background(2)

                self.window.remove(self.black)
                self.step = 1

        # Alek running ...
        elif self.step == 1:
            if self.index < len(self.typeover):
                if self.cursor < len(self.typeover[self.index]):
                    self.delay = self.delay + 2.8

                    if self.delay >= 6:
                        if self.cursor == 0: self.label.set_text("")
                        txt = self.typeover[self.index][self.cursor]
                        self.label.add_text(txt)
                        self.cursor = self.cursor + 1

                        # -- little pause at the end of a sentence
                        if txt == '.': self.delay = -50
                        else: self.delay = 0
                else:
                    self.index = self.index + 1
                    self.cursor = 0
                    self.delay = -200
            else:
                self.delay = 0
                self.step = 2

        # -- wait some more
        elif self.step == 2:
            self.delay = self.delay + 3
            if self.delay >= 300:
                # -- audio
                adonthell.audio_fade_out_background(2000)
                self.window.add(self.black)
                self.step = 3

        # -- fade out
        elif self.step == 3:
            alpha = self.black.alpha() + 2
            if alpha <= 255:
                self.black.set_alpha(alpha)
                return
            else:
                self.letsexit = 1

                self.draw_func = self.scroll_credits
                self.window = self.make_credits()
                self.window.py_signal_connect(self.on_draw,
                                              adonthell.win_event_UPDATE)
                adonthell.win_manager_get_active().add(self.window)