[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[adonthell-wastesedge-commits] Release_0-3-3 e5b6206 15/50: UPDATED the
From: |
Kai Sterker |
Subject: |
[adonthell-wastesedge-commits] Release_0-3-3 e5b6206 15/50: UPDATED the last few schedules for the new event system |
Date: |
Mon, 25 Jul 2016 18:15:31 +0000 (UTC) |
tag: Release_0-3-3
commit e5b620600b452eb96b08221237ec1f88249691fa
Author: Kai Sterker <address@hidden>
Commit: Kai Sterker <address@hidden>
UPDATED the last few schedules for the new event system
ADDED file with player text for i18n
FIXED a few bugs caused by the schedule rewrite (hope I got all!)
---
scripts/actions/talk.py | 4 +-
scripts/dialogues/bjarn_start.py | 2 +-
scripts/dialogues/erek_start.py | 8 +
scripts/dialogues/jelom_2nd.py | 17 +-
scripts/init.py | 1340 +++++++++++++++++++++++--
scripts/modules/player_text.py | 31 +
scripts/schedules/mapcharacters/bjarn.py | 57 +-
scripts/schedules/mapcharacters/erek.py | 158 ++-
scripts/schedules/mapcharacters/jelom.py | 5 +
scripts/schedules/mapcharacters/silverhair.py | 7 +-
scripts/schedules/mapcharacters/to_cellar.py | 45 +-
11 files changed, 1463 insertions(+), 211 deletions(-)
diff --git a/scripts/actions/talk.py b/scripts/actions/talk.py
index 3a74a70..a4f8696 100755
--- a/scripts/actions/talk.py
+++ b/scripts/actions/talk.py
@@ -24,7 +24,7 @@ class talk:
# -- activate the characters' schedules
# player isn't event-driven yet
args[0].set_schedule_active (1)
- # args[0].resume ()
+ args[0].resume ()
args[1].resume ()
adonthell.gamedata_engine ().set_control_active (1)
@@ -33,8 +33,8 @@ class talk:
if requester.get_name() == adonthell.gamedata_player ().get_name():
# -- deactivate the schedule of the characters involved
self.myself.pause ()
+ requester.pause ()
# player isn't event-driven yet
- # requester.pause ()
requester.set_schedule_active (0)
# -- don't allow access to main menu and stuff
diff --git a/scripts/dialogues/bjarn_start.py b/scripts/dialogues/bjarn_start.py
index eaa49d3..f5f971d 100755
--- a/scripts/dialogues/bjarn_start.py
+++ b/scripts/dialogues/bjarn_start.py
@@ -73,7 +73,7 @@ class bjarn_start (dialogue.base):
code = [\
"adonthell.gamedata_get_quest(\"demo\").set_val
(\"bjarn_door_open\" , 1)\n",\
"adonthell.gamedata_get_quest(\"demo\").set_val
(\"bjarn_door_open\" , 3)\n",\
- "adonthell.gamedata_get_character(\"Erek
Stonebreaker\").set_val (\"leave_bjarn\" ,
1)\nadonthell.gamedata_get_character(\"Erek Stonebreaker\").set_schedule_active
(1)\n",\
+ "adonthell.gamedata_get_character(\"Erek
Stonebreaker\").do_stuff
(\"leave_bjarn\")\nadonthell.gamedata_get_character(\"Erek
Stonebreaker\").resume ()\n",\
"adonthell.gamedata_get_quest(\"demo\").set_val
(\"ask_packed_gems\" , 3)\n",\
"adonthell.gamedata_get_quest(\"demo\").set_val (\"bjarn_lies\"
, 1)\n"]
diff --git a/scripts/dialogues/erek_start.py b/scripts/dialogues/erek_start.py
index 72930a9..9b4fb1e 100755
--- a/scripts/dialogues/erek_start.py
+++ b/scripts/dialogues/erek_start.py
@@ -291,6 +291,10 @@ class erek_start (dialogue.base):
def __del__(self):
# -- 'teleport' to Bjarn's room
if adonthell.gamedata_get_quest("demo").get_val
("bjarn_door_open") == 2:
+ bjarn = adonthell.gamedata_get_character ("Bjarn Fingolson")
+ bjarn.do_stuff ("await_player")
+ bjarn.time_callback_string ("1t", "start_talking")
+
erek = adonthell.gamedata_get_character ("Erek
Stonebreaker")
import events
erek.set_val ("goto", erek.submap ())
@@ -299,6 +303,10 @@ class erek_start (dialogue.base):
# -- Teleport to Jelom
if adonthell.gamedata_get_quest("demo").get_val
("convince_jelom") == 2:
+ jelom = adonthell.gamedata_get_character ("Jelom Rasgar")
+ jelom.jump_to (9, 2, 3, 1)
+ jelom.time_callback_string ("1t", "start_talking")
+
erek = adonthell.gamedata_get_character ("Erek
Stonebreaker")
erek.set_schedule_active (0)
import events
diff --git a/scripts/dialogues/jelom_2nd.py b/scripts/dialogues/jelom_2nd.py
index ef20067..8e76b50 100644
--- a/scripts/dialogues/jelom_2nd.py
+++ b/scripts/dialogues/jelom_2nd.py
@@ -115,30 +115,33 @@ class jelom_2nd (dialogue.base):
def __del__(self):
if adonthell.gamedata_get_quest("demo").get_val ("the_end") ==
1:
+ bjarn = adonthell.gamedata_get_character("Bjarn Fingolson")
+ bjarn.do_stuff ("await_player")
+
# make all dudes go down to Bjarn
shair = adonthell.gamedata_get_character("Imoen Silverhair")
shair.set_schedule ("to_cellar")
- shair.set_val ("delay", 5)
+ shair.time_callback_string ("2t", "walk")
jelom = adonthell.gamedata_get_character("Jelom Rasgar")
- jelom.set_val ("delay", 20)
jelom.set_schedule ("to_cellar")
+ jelom.time_callback_string ("1t", "walk")
player = adonthell.gamedata_player ()
- player.set_val ("delay", 35)
player.set_schedule ("to_cellar")
+ player.time_callback_string ("2t", "walk")
erek = adonthell.gamedata_get_character("Erek Stonebreaker")
- erek.set_schedule_active (1)
+ erek.resume ()
erek.set_schedule ("to_cellar")
- erek.set_val ("delay", 45)
+ erek.time_callback_string ("3t", "walk")
fnir = adonthell.gamedata_get_character("Fellnir Kezular")
fnir.set_schedule ("to_cellar")
- fnir.set_val ("delay", 130)
+ fnir.time_callback_string ("4t", "walk")
illig = adonthell.gamedata_get_character("Tristan Illig")
illig.set_schedule ("to_cellar")
- illig.set_val ("delay", 300)
+ illig.time_callback_string ("7t", "walk")
diff --git a/scripts/init.py b/scripts/init.py
index 01f1577..dc0de19 100755
--- a/scripts/init.py
+++ b/scripts/init.py
@@ -12,51 +12,55 @@
# See the COPYING file for more details
#
-import adonthell
-import main_menu
+
+from adonthell import *
+from main_menu import *
import time
class title_screen:
def __init__ (self):
# -- load our music
- adonthell.audio_load_background (0, "audio/at-demo-1.ogg")
+ audio_load_background (0, "audio/at-demo-1.ogg")
+ audio_load_wave (0, "audio/select.wav")
+ audio_load_wave (1, "audio/switch.wav")
+ audio_load_wave (2, "audio/unselect.wav")
# -- The themes and fonts we'll use
- adonthell.win_manager_add_theme ("original")
- adonthell.win_manager_add_theme ("silverleaf")
-
- adonthell.win_manager_add_font ("yellow")
- adonthell.win_manager_add_font ("red")
- adonthell.win_manager_add_font ("violet")
- adonthell.win_manager_add_font ("blue")
- adonthell.win_manager_add_font ("green")
- adonthell.win_manager_add_font ("white")
- adonthell.win_manager_add_font ("original")
- adonthell.win_manager_add_font ("silverleaf")
+ win_manager_add_theme ("original")
+ win_manager_add_theme ("silverleaf")
+
+ win_manager_add_font ("yellow")
+ win_manager_add_font ("red")
+ win_manager_add_font ("violet")
+ win_manager_add_font ("blue")
+ win_manager_add_font ("green")
+ win_manager_add_font ("white")
+ win_manager_add_font ("original")
+ win_manager_add_font ("silverleaf")
# -- load our images
- self.bag_o = adonthell.win_image ()
+ self.bag_o = win_image ()
self.bag_o.load_raw ("gfx/cutscene/jewelbag_open.img")
self.bag_o.set_alpha (0)
self.bag_o.move (0, 0)
self.bag_o.pack ()
self.bag_o.set_visible (0)
- self.bag_c = adonthell.win_image ()
+ self.bag_c = win_image ()
self.bag_c.load_raw ("gfx/cutscene/jewelbag_closed.img")
self.bag_c.set_visible (1)
self.bag_c.set_alpha (0)
self.bag_c.move (0, 0)
self.bag_c.pack ()
- self.bag_t = adonthell.win_image ()
+ self.bag_t = win_image ()
self.bag_t.load_raw ("gfx/cutscene/adonthell_03.img")
self.bag_t.move (33, 86)
self.bag_t.pack ()
self.bag_t.set_visible (0)
# -- create the window
- self.window = adonthell.win_container ()
+ self.window = win_container ()
self.window.move (0, 0)
self.window.resize (320, 240)
self.window.set_visible_border (0)
@@ -69,30 +73,30 @@ class title_screen:
self.window.set_activate (1)
self.window.set_visible (1)
- self.window.py_signal_connect (self.on_update,
adonthell.win_event_UPDATE)
- self.window.py_signal_connect (self.on_draw, adonthell.win_event_DRAW)
+ self.window.py_signal_connect (self.on_update, win_event_UPDATE)
+ self.window.py_signal_connect (self.on_draw, win_event_DRAW)
self.draw_func = self.initial_fade_in
self.alpha = 0
- adonthell.audio_play_background (0)
+ audio_play_background (0)
# -- launch the engine
- adonthell.gametime_start_action ()
- adonthell.gamedata_engine ().main (self.window, "title_sequence")
+ gametime_start_action ()
+ gamedata_engine ().main (self.window, "title_sequence")
def __del__ (self):
print "Destructor called"
- adonthell.gamedata_engine ().main_quit ()
+ gamedata_engine ().main_quit ()
# -- catch ESC key
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)
+ if input_has_been_pushed (SDLK_ESCAPE):
+ audio_fade_out_background (500)
self.bag_t.set_visible (0)
self.bag_c.set_visible (0)
self.bag_o.set_visible (1)
@@ -118,7 +122,7 @@ class title_screen:
else:
# -- fade in
- self.alpha = self.alpha + adonthell.gametime_frames_to_skip() + 1
+ self.alpha = self.alpha + gametime_frames_to_skip() + 1
if self.alpha > 255: self.alpha = 255
self.bag_c.set_alpha (self.alpha)
@@ -148,16 +152,16 @@ class title_screen:
else:
# -- fade in
- self.alpha = self.alpha + adonthell.gametime_frames_to_skip()
+ self.alpha = self.alpha + gametime_frames_to_skip()
if self.alpha > 255: self.alpha = 255
self.bag_o.set_alpha (self.alpha)
# -- Show the main menu
def show_menu (self, a, b):
- menu = main_menu.main_menu (a, b)
+ menu = main_menu (a, b)
# -- open the menu
- adonthell.gamedata_engine ().main (menu, "game_menu")
+ gamedata_engine ().main (menu, "game_menu")
# -- once the menu is closed, see what we got
retval = menu.get_result ()
@@ -165,17 +169,19 @@ class title_screen:
# -- start new game
if retval == 1:
# -- let the player chose a name for his character
- import character_screen
- cs = character_screen.character_screen ()
- adonthell.gamedata_engine ().main (cs, "character_screen")
-
- adonthell.gamedata_engine ().fade_out ()
+ from character_screen import *
+ cs = character_screen ()
+ gamedata_engine ().main (cs, "character_screen")
+
+ gamedata_engine ().fade_out ()
self.cleanup ()
# -- load the initial game
- adonthell.gamedata_load (0)
+ # gamedata_load (0)
+ gamedata_load_characters (0)
+ gamedata_load_quests (0)
adonthell.gamedata_player ().set_name (cs.name)
-
+
# -- on to the intro
self.play_intro ()
@@ -183,17 +189,17 @@ class title_screen:
elif retval == 2:
self.window.set_visible (0)
self.cleanup ()
- adonthell.gamedata_engine ().mapview_start ()
- adonthell.gamedata_engine ().set_control_active (1)
- adonthell.gamedata_engine ().fade_in ()
+ gamedata_engine ().mapview_start ()
+ gamedata_engine ().set_control_active (1)
+ gamedata_engine ().fade_in ()
# -- quit the game
else:
- adonthell.gamedata_engine ().main_quit ()
+ gamedata_engine ().main_quit ()
# -- cleanup
def cleanup (self):
- adonthell.win_manager_get_active ().remove (self.window)
+ win_manager_get_active ().remove (self.window)
self.window.remove (self.bag_o)
self.window.remove (self.bag_c)
@@ -203,28 +209,1242 @@ class title_screen:
del self.bag_c
del self.bag_t
- adonthell.audio_fade_out_background (500)
- adonthell.audio_unload_background (0)
+ audio_fade_out_background (500)
+ audio_unload_background (0)
def play_intro (self):
- # -- Launches the intro
-
+ # Launches the intro
import intro
- # -- start the mapengine
- adonthell.gamedata_engine ().mapview_start ()
- adonthell.gametime_update ()
- adonthell.gamedata_engine ().fade_in ()
+ # Creates the map engine context for the game start
+ lm = gamedata_engine ().get_landmap ()
+ lm.load ("test.map")
+
+ player = gamedata_player ()
+ player.set_val ("gender", MALE)
+ player.set_val ("race", HALFELF)
+ player.set_val ("type", PLAYER)
+ player.load ("player.mchar")
+ player.set_map (lm)
+ player.jump_to (0, 4, 18)
+ player.stand_east ()
+ player.set_schedule ("intro")
+ player.time_callback_string ("0t", "talk_to_talan")
+
+ gamedata_engine ().set_mapview_schedule ("center_character",
(player.get_id (),))
+
+ # Setting up the map events
+ # Teleport events
+
+ # From yard to common room
+ # Open the inn door event
+ ev = leave_event ()
+ ev.thisown = C
+ ev.submap = 0
+ ev.x = 18
+ ev.y = 14
+ ev.dir = WALK_NORTH
+ ev.set_script ("open_inn_door")
+ lm.add_event (ev)
+
+ # Close the inn door event
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 0
+ ev.x = 18
+ ev.y = 13
+ ev.set_script ("open_inn_door")
+ lm.add_event (ev)
+
+ # Teleport event
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 0
+ ev.x = 18
+ ev.y = 13
+ ev.set_script ("teleport", (1, 13, 7, STAND_NORTH))
+ lm.add_event (ev)
+
+ # From common room to yard
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 1
+ ev.x = 13
+ ev.y = 8
+ ev.set_script ("teleport", (0, 18, 14, STAND_SOUTH))
+ lm.add_event (ev)
+
+ # From common room to parlor
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 1
+ ev.x = 14
+ ev.y = 4
+ ev.set_script ("teleport", (2, 1, 4, STAND_EAST))
+ lm.add_event (ev)
+
+ # From parlor to common room
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 2
+ ev.x = 0
+ ev.y = 4
+ ev.set_script ("teleport", (1, 13, 4, STAND_WEST))
+ lm.add_event (ev)
+
+ # From common room to kitchen
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 1
+ ev.x = 1
+ ev.y = 8
+ ev.set_script ("teleport", (3, 1, 2, STAND_SOUTH))
+ lm.add_event (ev)
+
+ # From kitchen to common room
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 3
+ ev.x = 1
+ ev.y = 1
+ ev.set_script ("teleport", (1, 1, 7, STAND_NORTH))
+ lm.add_event (ev)
+
+ # From kitchen to yard
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 3
+ ev.x = 7
+ ev.y = 3
+ ev.set_script ("teleport", (0, 12, 14, STAND_EAST))
+ lm.add_event (ev)
+
+ # From yard to kitchen
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 0
+ ev.x = 11
+ ev.y = 14
+ ev.set_script ("teleport", (3, 6, 3, STAND_WEST))
+ lm.add_event (ev)
+
+ # From cellar to bathroom
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 4
+ ev.x = 3
+ ev.y = 5
+ ev.set_script ("teleport", (5, 4, 6, STAND_NORTH))
+ lm.add_event (ev)
+
+ # From bathroom to cellar
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 5
+ ev.x = 4
+ ev.y = 7
+ ev.set_script ("teleport", (4, 3, 6, STAND_SOUTH))
+ lm.add_event (ev)
+
+ # From cellar to alek's
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 4
+ ev.x = 0
+ ev.y = 6
+ ev.set_script ("teleport", (6, 5, 6, STAND_WEST))
+ lm.add_event (ev)
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 4
+ ev.x = 0
+ ev.y = 7
+ ev.set_script ("teleport", (6, 5, 7, STAND_WEST))
+ lm.add_event (ev)
+
+ # From alek's to cellar
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 6
+ ev.x = 6
+ ev.y = 6
+ ev.set_script ("teleport", (4, 1, 6, STAND_EAST))
+ lm.add_event (ev)
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 6
+ ev.x = 6
+ ev.y = 7
+ ev.set_script ("teleport", (4, 1, 7, STAND_EAST))
+ lm.add_event (ev)
+
+ # From cellar to storage
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 4
+ ev.x = 0
+ ev.y = 9
+ ev.set_script ("to_storage", (8, 6, 3, STAND_WEST))
+ lm.add_event (ev)
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 4
+ ev.x = 0
+ ev.y = 10
+ ev.set_script ("to_storage", (8, 6, 4, STAND_WEST))
+ lm.add_event (ev)
+
+ # From storage to cellar
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 8
+ ev.x = 7
+ ev.y = 3
+ ev.set_script ("teleport", (4, 1, 9, STAND_EAST))
+ lm.add_event (ev)
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 8
+ ev.x = 7
+ ev.y = 4
+ ev.set_script ("teleport", (4, 1, 10, STAND_EAST))
+ lm.add_event (ev)
+
+ # From cellar to dwarves'
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 4
+ ev.x = 10
+ ev.y = 6
+ ev.set_script ("cellar_to_bjarn", (7, 1, 6, STAND_EAST))
+ lm.add_event (ev)
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 4
+ ev.x = 10
+ ev.y = 7
+ ev.set_script ("cellar_to_bjarn", (7, 1, 7, STAND_EAST))
+ lm.add_event (ev)
+
+ # From dwarves' to cellar
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 7
+ ev.x = 0
+ ev.y = 6
+ ev.set_script ("teleport", (4, 9, 6, STAND_WEST))
+ lm.add_event (ev)
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 7
+ ev.x = 0
+ ev.y = 7
+ ev.set_script ("teleport", (4, 9, 7, STAND_WEST))
+ lm.add_event (ev)
+
+ # From 1st to Fellnir's
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 9
+ ev.x = 9
+ ev.y = 2
+ ev.set_script ("teleport", (10, 1, 3, STAND_EAST))
+ lm.add_event (ev)
+
+ # From Fellnir's to 1st
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 10
+ ev.x = 0
+ ev.y = 3
+ ev.set_script ("teleport", (9, 8, 2, STAND_WEST))
+ lm.add_event (ev)
+
+ # From 1st to Frostbloom's
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 9
+ ev.x = 0
+ ev.y = 2
+ ev.set_script ("teleport", (11, 4, 3, STAND_WEST))
+ lm.add_event (ev)
+
+ # From Frostbloom's to 1st
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 11
+ ev.x = 5
+ ev.y = 3
+ ev.set_script ("teleport", (9, 1, 2, STAND_EAST))
+ lm.add_event (ev)
+
+ # From 1st to Player's
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 9
+ ev.x = 7
+ ev.y = 4
+ ev.set_script ("teleport", (12, 5, 2, STAND_SOUTH))
+ lm.add_event (ev)
+
+ # From Player's to 1st
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 12
+ ev.x = 5
+ ev.y = 1
+ ev.set_script ("teleport", (9, 7, 3, STAND_NORTH))
+ lm.add_event (ev)
+
+ # From 1st to Silverhair's
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 9
+ ev.x = 1
+ ev.y = 7
+ ev.set_script ("fst_to_silverhair", (13, 5, 2, STAND_SOUTH))
+ lm.add_event (ev)
+
+ # From Silverhair's to 1st
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 13
+ ev.x = 5
+ ev.y = 1
+ ev.set_script ("silverhair_to_fst", (9, 1, 6, STAND_NORTH))
+ lm.add_event (ev)
+
+ # From 2nd to Redwyne's
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 14
+ ev.x = 3
+ ev.y = 5
+ ev.set_script ("teleport", (15, 1, 5, STAND_EAST))
+ lm.add_event (ev)
+
+ # From Redwyne's to 2nd
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 15
+ ev.x = 0
+ ev.y = 5
+ ev.set_script ("teleport", (14, 2, 5, STAND_WEST))
+ lm.add_event (ev)
+
+ # From 2nd to Oliver's
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 14
+ ev.x = 0
+ ev.y = 5
+ ev.set_script ("teleport", (16, 6, 5, STAND_WEST))
+ lm.add_event (ev)
+
+ # From Oliver's to 2nd
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 16
+ ev.x = 7
+ ev.y = 5
+ ev.set_script ("teleport", (14, 1, 5, STAND_EAST))
+ lm.add_event (ev)
+
+ # From 2nd to Illig's
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 14
+ ev.x = 1
+ ev.y = 8
+ ev.set_script ("teleport", (17, 6, 2, STAND_SOUTH))
+ lm.add_event (ev)
+
+ # From Illig's to 2nd
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 17
+ ev.x = 6
+ ev.y = 1
+ ev.set_script ("teleport", (14, 1, 7, STAND_NORTH))
+ lm.add_event (ev)
+
+ # From common room to 1st
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 1
+ ev.x = 12
+ ev.y = 1
+ ev.set_script ("teleport", (9, 8, 2, STAND_SOUTH))
+ lm.add_event (ev)
+
+ # From 1st to common room
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 9
+ ev.x = 8
+ ev.y = 1
+ ev.set_script ("teleport", (1, 12, 2, STAND_SOUTH))
+ lm.add_event (ev)
+
+ # From 1st to 2nd
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 9
+ ev.x = 6
+ ev.y = 1
+ ev.set_script ("teleport", (14, 4, 2, STAND_SOUTH))
+ lm.add_event (ev)
+
+ # From 2nd to 1st
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 14
+ ev.x = 4
+ ev.y = 1
+ ev.set_script ("teleport", (9, 6, 2, STAND_SOUTH))
+ lm.add_event (ev)
+
+ # From common room to cellar
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 1
+ ev.x = 9
+ ev.y = 1
+ ev.set_script ("teleport", (4, 6, 2, STAND_SOUTH))
+ lm.add_event (ev)
+
+ # From cellar to common room
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 4
+ ev.x = 6
+ ev.y = 1
+ ev.set_script ("teleport", (1, 9, 2, STAND_SOUTH))
+ lm.add_event (ev)
+
+ # From cellar to kitchen
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 4
+ ev.x = 3
+ ev.y = 13
+ ev.set_script ("teleport", (3, 6, 5, STAND_NORTH))
+ lm.add_event (ev)
+
+ # From kitchen to cellar
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 3
+ ev.x = 6
+ ev.y = 6
+ ev.set_script ("teleport", (4, 3, 12, STAND_NORTH))
+ lm.add_event (ev)
+
+ # From yard to guards'
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 0
+ ev.x = 12
+ ev.y = 23
+ ev.set_script ("teleport", (18, 7, 3, STAND_WEST))
+ lm.add_event (ev)
+
+ # From guards' to yard
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 18
+ ev.x = 8
+ ev.y = 3
+ ev.set_script ("teleport", (0, 13, 23, STAND_EAST))
+ lm.add_event (ev)
+
+ # From guards ground to guards 1st
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 18
+ ev.x = 1
+ ev.y = 8
+ ev.set_script ("teleport", (19, 2, 8, STAND_EAST))
+ lm.add_event (ev)
+
+ # From guards 1st to guards ground
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 19
+ ev.x = 1
+ ev.y = 8
+ ev.set_script ("teleport", (18, 2, 8, STAND_EAST))
+ lm.add_event (ev)
+
+ # From barn ext. to barn int.
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 0
+ ev.x = 24
+ ev.y = 13
+ ev.set_script ("teleport", (20, 1, 6, STAND_NORTH))
+ lm.add_event (ev)
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 0
+ ev.x = 25
+ ev.y = 13
+ ev.set_script ("teleport", (20, 2, 6, STAND_NORTH))
+ lm.add_event (ev)
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 0
+ ev.x = 26
+ ev.y = 13
+ ev.set_script ("teleport", (20, 3, 6, STAND_NORTH))
+ lm.add_event (ev)
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 0
+ ev.x = 27
+ ev.y = 13
+ ev.set_script ("teleport", (20, 4, 6, STAND_NORTH))
+ lm.add_event (ev)
+
+ # From barn int. to barn ext.
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 20
+ ev.x = 1
+ ev.y = 7
+ ev.set_script ("teleport", (0, 24, 14, STAND_SOUTH))
+ lm.add_event (ev)
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 20
+ ev.x = 2
+ ev.y = 7
+ ev.set_script ("teleport", (0, 25, 14, STAND_SOUTH))
+ lm.add_event (ev)
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 20
+ ev.x = 3
+ ev.y = 7
+ ev.set_script ("teleport", (0, 26, 14, STAND_SOUTH))
+ lm.add_event (ev)
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 20
+ ev.x = 4
+ ev.y = 7
+ ev.set_script ("teleport", (0, 27, 14, STAND_SOUTH))
+ lm.add_event (ev)
+
+ # From cellar to barn
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 4
+ ev.x = 12
+ ev.y = 1
+ ev.set_script ("teleport", (20, 1, 3, STAND_SOUTH))
+ lm.add_event (ev)
+
+ # From barn to cellar
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 20
+ ev.x = 1
+ ev.y = 2
+ ev.set_script ("teleport", (4, 12, 2, STAND_SOUTH))
+ lm.add_event (ev)
+
+ # From barn to loft
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 20
+ ev.x = 3
+ ev.y = 2
+ ev.set_script ("teleport", (21, 1, 3, STAND_SOUTH))
+ lm.add_event (ev)
+
+ # From loft to barn
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 21
+ ev.x = 1
+ ev.y = 2
+ ev.set_script ("teleport", (20, 3, 3, STAND_SOUTH))
+ lm.add_event (ev)
+
+ # From loft to veranda
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 21
+ ev.x = 0
+ ev.y = 7
+ ev.set_script ("lft_to_vnd", (0, 23, 12, STAND_WEST))
+ lm.add_event (ev)
+
+ # From veranda to loft
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 0
+ ev.x = 24
+ ev.y = 12
+ ev.set_script ("vnd_to_lft", (21, 1, 7, STAND_EAST))
+ lm.add_event (ev)
+
+ # From veranda to silverhair
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 0
+ ev.x = 11
+ ev.y = 12
+ ev.set_script ("brn_to_silverhair", (13, 6, 4, STAND_WEST))
+ lm.add_event (ev)
+ # From silverhair to veranda
+ ev = enter_event ()
+ ev.thisown = C
+ ev.submap = 13
+ ev.x = 6
+ ev.y = 4
+ ev.set_script ("silverhair_to_brn", (0, 12, 12, STAND_EAST))
+ lm.add_event (ev)
+
+ # Action events
+
+ # -- Common room
+ ev = action_event ()
+ ev.thisown = C
+ ev.submap = 1
+ ev.x = 10
+ ev.y = 2
+ ev.dir = STAND_NORTH
+ ev.set_script ("character_speak", (player.get_id (), \
+ "That clock seems to be late!"))
+ lm.add_event (ev)
+
+ # -- Fellnir
+ ev = action_event ()
+ ev.thisown = C
+ ev.submap = 10
+ ev.x = 4
+ ev.y = 2
+ ev.dir = STAND_NORTH
+ ev.set_script ("character_speak", (player.get_id (), \
+ "Aw, a midget yeti, how cute!"))
+ lm.add_event (ev)
+
+ ev = action_event ()
+ ev.thisown = C
+ ev.submap = 10
+ ev.x = 3
+ ev.y = 6
+ ev.dir = STAND_NORTH
+ ev.set_script ("character_speak", (player.get_id (), \
+ "I'd better not touch this ... What if it explodes??"))
+ lm.add_event (ev)
+
+ ev = action_event ()
+ ev.thisown = C
+ ev.submap = 10
+ ev.x = 4
+ ev.y = 6
+ ev.dir = STAND_NORTH
+ ev.set_script ("character_speak", (player.get_id (), \
+ "I'd better not touch this ... What if it explodes??"))
+ lm.add_event (ev)
+
+ ev = action_event ()
+ ev.thisown = C
+ ev.submap = 10
+ ev.x = 2
+ ev.y = 5
+ ev.dir = STAND_EAST
+ ev.set_script ("character_speak", (player.get_id (), \
+ "I'd better not touch this ... What if it explodes??"))
+ lm.add_event (ev)
+
+ ev = action_event ()
+ ev.thisown = C
+ ev.submap = 10
+ ev.x = 5
+ ev.y = 5
+ ev.dir = STAND_WEST
+ ev.set_script ("character_speak", (player.get_id (), \
+ "I'd better not touch this ... What if it explodes??"))
+ lm.add_event (ev)
+
+ ev = action_event ()
+ ev.thisown = C
+ ev.submap = 10
+ ev.x = 3
+ ev.y = 4
+ ev.dir = STAND_SOUTH
+ ev.set_script ("character_speak", (player.get_id (), \
+ "I'd better not touch this ... What if it explodes??"))
+ lm.add_event (ev)
+
+ ev = action_event ()
+ ev.thisown = C
+ ev.submap = 10
+ ev.x = 4
+ ev.y = 4
+ ev.dir = STAND_SOUTH
+ ev.set_script ("character_speak", (player.get_id (), \
+ "I'd better not touch this ... What if it explodes??"))
+ lm.add_event (ev)
+
+ # -- Outside
+ ev = action_event ()
+ ev.thisown = C
+ ev.submap = 0
+ ev.x = 6
+ ev.y = 17
+ ev.dir = STAND_WEST
+ ev.set_script ("character_speak", (player.get_id (), \
+ "Closed. We are all imprisoned here ..."))
+ lm.add_event (ev)
+
+ ev = action_event ()
+ ev.thisown = C
+ ev.submap = 0
+ ev.x = 6
+ ev.y = 18
+ ev.dir = STAND_WEST
+ ev.set_script ("character_speak", (player.get_id (), \
+ "Closed. We are all imprisoned here ..."))
+ lm.add_event (ev)
+
+ ev = action_event ()
+ ev.thisown = C
+ ev.submap = 0
+ ev.x = 6
+ ev.y = 19
+ ev.dir = STAND_WEST
+ ev.set_script ("character_speak", (player.get_id (), \
+ "Closed. We are all imprisoned here ..."))
+ lm.add_event (ev)
+
+ ev = action_event ()
+ ev.thisown = C
+ ev.submap = 0
+ ev.x = 10
+ ev.y = 17
+ ev.dir = STAND_NORTH
+ ev.set_script ("character_speak", (player.get_id (), \
+ "No. I certainly won't climb up there!"))
+ lm.add_event (ev)
+
+ ev = action_event ()
+ ev.thisown = C
+ ev.submap = 0
+ ev.x = 18
+ ev.y = 14
+ ev.dir = STAND_NORTH
+ ev.set_script ("character_speak", (player.get_id (), \
+ "The entrance to the Inn."))
+ lm.add_event (ev)
+
+ ev = action_event ()
+ ev.thisown = C
+ ev.submap = 0
+ ev.x = 13
+ ev.y = 23
+ ev.dir = STAND_WEST
+ ev.set_script ("character_speak", (player.get_id (), \
+ "That's the guard's house."))
+ lm.add_event (ev)
+
+ ev = action_event ()
+ ev.thisown = C
+ ev.submap = 17
+ ev.x = 1
+ ev.y = 6
+ ev.dir = STAND_NORTH
+ ev.set_script ("character_speak", (player.get_id (), \
+ "There's a plaque that reads \"Tristan Illig\"."))
+ lm.add_event (ev)
+
+ # -- Guard's house
+ ev = action_event ()
+ ev.thisown = C
+ ev.submap = 19
+ ev.x = 2
+ ev.y = 5
+ ev.dir = STAND_NORTH
+ ev.set_script ("character_speak", (player.get_id (), \
+ "Hm. There are plenty of books on singing inside."))
+ lm.add_event (ev)
+
+ ev = action_event ()
+ ev.thisown = C
+ ev.submap = 19
+ ev.x = 6
+ ev.y = 4
+ ev.dir = STAND_NORTH
+ ev.set_script ("character_speak", (player.get_id (), \
+ "Locked. The plaque reads \"Bregon Arwold\"."))
+ lm.add_event (ev)
+
+ ev = action_event ()
+ ev.thisown = C
+ ev.submap = 19
+ ev.x = 6
+ ev.y = 8
+ ev.dir = STAND_NORTH
+ ev.set_script ("character_speak", (player.get_id (), \
+ "Locked. The plaque reads \"Jelom Rasgar\"."))
+ lm.add_event (ev)
+
+ ev = action_event ()
+ ev.thisown = C
+ ev.submap = 6
+ ev.x = 1
+ ev.y = 4
+ ev.dir = STAND_NORTH
+ ev.set_script ("character_speak", (player.get_id (), \
+ "The plaque on that chest reads \"Alek Endhelm\"."))
+ lm.add_event (ev)
+
+ # -- Fingolson
+ ev = action_event ()
+ ev.thisown = C
+ ev.submap = 7
+ ev.x = 7
+ ev.y = 3
+ ev.dir = STAND_NORTH
+ ev.set_script ("character_speak", (player.get_id (), \
+ "I doubt Master Fingolson would be happy if I went through his
things ..."))
+ lm.add_event (ev)
+
+ # -- Bath
+ ev = action_event ()
+ ev.thisown = C
+ ev.submap = 5
+ ev.x = 2
+ ev.y = 3
+ ev.dir = STAND_NORTH
+ ev.set_script ("character_speak", (player.get_id (), \
+ "Hm, nothing hidden in there!"))
+ lm.add_event (ev)
+
+ ev = action_event ()
+ ev.thisown = C
+ ev.submap = 5
+ ev.x = 4
+ ev.y = 3
+ ev.dir = STAND_NORTH
+ ev.set_script ("character_speak", (player.get_id (), \
+ "I have already bathed this month!"))
+ lm.add_event (ev)
+
+ ev = action_event ()
+ ev.thisown = C
+ ev.submap = 5
+ ev.x = 5
+ ev.y = 3
+ ev.dir = STAND_NORTH
+ ev.set_script ("character_speak", (player.get_id (), \
+ "I have already bathed this month!"))
+ lm.add_event (ev)
+
+ # -- Silverhair
+ ev = action_event ()
+ ev.thisown = C
+ ev.submap = 13
+ ev.x = 1
+ ev.y = 6
+ ev.dir = STAND_NORTH
+ ev.set_script ("character_speak", (player.get_id (), \
+ "No, I won't touch my mistress' belongings!"))
+ lm.add_event (ev)
+
+ # -- Barrels in the cellar hallway
+ ev = action_event ()
+ ev.thisown = C
+ ev.submap = 4
+ ev.x = 7
+ ev.y = 3
+ ev.dir = STAND_SOUTH
+ ev.set_script ("character_speak", (player.get_id (), \
+ "Mmmh ... this wine is really tasty!"))
+ lm.add_event (ev)
+
+ ev = action_event ()
+ ev.thisown = C
+ ev.submap = 4
+ ev.x = 8
+ ev.y = 4
+ ev.dir = STAND_WEST
+ ev.set_script ("character_speak", (player.get_id (), \
+ "I'm sure Master Redwyne won't mind if I take a sip."))
+ lm.add_event (ev)
+
+ ev = action_event ()
+ ev.thisown = C
+ ev.submap = 4
+ ev.x = 7
+ ev.y = 5
+ ev.dir = STAND_NORTH
+ ev.set_script ("character_speak", (player.get_id (), \
+ "Hic! Whoa, that's quite strong!"))
+ lm.add_event (ev)
+
+ ev = action_event ()
+ ev.thisown = C
+ ev.submap = 4
+ ev.x = 4
+ ev.y = 10
+ ev.dir = STAND_SOUTH
+ ev.set_script ("character_speak", (player.get_id (), \
+ "'Made in Cirdanth', now that's more like it!"))
+ lm.add_event (ev)
+
+ ev = action_event ()
+ ev.thisown = C
+ ev.submap = 4
+ ev.x = 4
+ ev.y = 11
+ ev.dir = STAND_NORTH
+ ev.set_script ("character_speak", (player.get_id (), \
+ "'Made in Cirdanth', now that's more like it!"))
+ lm.add_event (ev)
+
+ ev = action_event ()
+ ev.thisown = C
+ ev.submap = 4
+ ev.x = 4
+ ev.y = 10
+ ev.dir = STAND_NORTH
+ ev.set_script ("character_speak", (player.get_id (), \
+ "'Made in Uzdun' kal'? How cheap is this Master Redwyne?"))
+ lm.add_event (ev)
+
+ ev = action_event ()
+ ev.thisown = C
+ ev.submap = 4
+ ev.x = 4
+ ev.y = 8
+ ev.dir = STAND_SOUTH
+ ev.set_script ("character_speak", (player.get_id (), \
+ "'Made in Uzdun' kal'? How cheap is this Master Redwyne?"))
+ lm.add_event (ev)
+
+ ev = action_event ()
+ ev.thisown = C
+ ev.submap = 4
+ ev.x = 3
+ ev.y = 9
+ ev.dir = STAND_EAST
+ ev.set_script ("character_speak", (player.get_id (), \
+ "'Made in Uzdun' kal'? How cheap is this Master Redwyne?"))
+ lm.add_event (ev)
+
+ # -- Parlour
+ ev = action_event ()
+ ev.thisown = C
+ ev.submap = 2
+ ev.x = 1
+ ev.y = 2
+ ev.dir = STAND_NORTH
+ ev.set_script ("character_speak", (player.get_id (), \
+ "\"Teach yourself Elvish in 21 days\"?"))
+ lm.add_event (ev)
+
+ ev = action_event ()
+ ev.thisown = C
+ ev.submap = 2
+ ev.x = 2
+ ev.y = 2
+ ev.dir = STAND_NORTH
+ ev.set_script ("character_speak", (player.get_id (), \
+ "\"There and back again\", how unimaginative!"))
+ lm.add_event (ev)
+
+ ev = action_event ()
+ ev.thisown = C
+ ev.submap = 2
+ ev.x = 4
+ ev.y = 2
+ ev.dir = STAND_NORTH
+ ev.set_script ("character_speak", (player.get_id (), \
+ "Oh dear, \"The Art of making Yetis\", by R. Frostbloom"))
+ lm.add_event (ev)
+
+ ev = action_event ()
+ ev.thisown = C
+ ev.submap = 2
+ ev.x = 5
+ ev.y = 2
+ ev.dir = STAND_NORTH
+ ev.set_script ("character_speak", (player.get_id (), \
+ "This is nothing compared to Lady Silverhair's reading room!"))
+ lm.add_event (ev)
+
+ # -- Player's room
+ ev = action_event ()
+ ev.thisown = C
+ ev.submap = 12
+ ev.x = 3
+ ev.y = 2
+ ev.dir = STAND_NORTH
+ ev.set_script ("character_speak", (player.get_id (), \
+ "Hey, that looks like Adonthell!"))
+ lm.add_event (ev)
+
+ ev = action_event ()
+ ev.thisown = C
+ ev.submap = 12
+ ev.x = 1
+ ev.y = 3
+ ev.dir = STAND_NORTH
+ ev.set_script ("character_speak", (player.get_id (), \
+ "I cannot rest when my mistress needs me!"))
+ lm.add_event (ev)
+
+ ev = action_event ()
+ ev.thisown = C
+ ev.submap = 12
+ ev.x = 2
+ ev.y = 3
+ ev.dir = STAND_NORTH
+ ev.set_script ("character_speak", (player.get_id (), \
+ "I cannot rest when my mistress needs me!"))
+ lm.add_event (ev)
+
+ # -- stables
+ ev = action_event ()
+ ev.thisown = C
+ ev.submap = 21
+ ev.x = 1
+ ev.y = 6
+ ev.dir = STAND_WEST
+ ev.set_script ("character_speak", (player.get_id (), \
+ "An old, dusty chest."))
+ lm.add_event (ev)
+
+ # -- pantry
+ ev = action_event ()
+ ev.thisown = C
+ ev.submap = 8
+ ev.x = 3
+ ev.y = 5
+ ev.dir = STAND_NORTH
+ ev.set_script ("character_speak", (player.get_id (), \
+ "Lady Silverhair's luggage, but not what I am looking for."))
+ lm.add_event (ev)
+
+ ev = action_event ()
+ ev.thisown = C
+ ev.submap = 8
+ ev.x = 4
+ ev.y = 5
+ ev.dir = STAND_NORTH
+ ev.set_script ("search_chest", (player.get_id (),))
+ lm.add_event (ev)
+
+ ev = action_event ()
+ ev.thisown = C
+ ev.submap = 21
+ ev.x = 2
+ ev.y = 4
+ ev.dir = STAND_EAST
+ ev.set_script ("character_speak", (player.get_id (), \
+ "An old, empty crate!"))
+ lm.add_event (ev)
+
+ # Speak events
+
+ ev = enter_event ()
+ ev.thisown = C
+ ev.set_repeat (1)
+ ev.submap = 12
+ ev.x = 5
+ ev.y = 4
+ ev.c = gamedata_get_character ("Oliver Redwyne")
+ ev.set_script ("speak", ("Oliver Redwyne",))
+ lm.add_event (ev)
+
+ # -- Now setup the characters
+ lucia = gamedata_get_character ("Lucia Redwyne")
+ lucia.set_dialogue ("dialogues.lucia_start")
+ lucia.load ("lucia.mchar")
+ lucia.set_map (gamedata_engine ().get_landmap ())
+ lucia.jump_to (3, 4, 3)
+ lucia.set_action ("talk")
+ lucia.set_schedule ("lucia")
+ lucia.stand_south ()
+ lucia.set_portrait ("lucia.pnm")
+ lucia.time_callback_string ("30t", "walk")
+ lucia.time_callback_string ("15t", "speak")
+
+ orloth = gamedata_get_character ("Orloth Redwyne")
+ orloth.set_dialogue ("dialogues.orloth_start")
+ orloth.load ("orloth.mchar")
+ orloth.set_map (gamedata_engine ().get_landmap ())
+ orloth.jump_to (1, 2, 2)
+ orloth.set_action ("talk")
+ orloth.stand_south ()
+ orloth.set_schedule ("orloth")
+ orloth.set_portrait ("orloth.pnm")
+ orloth.time_callback_string ("32t", "walk")
+ orloth.time_callback_string ("35t", "speak")
+
+ erek = gamedata_get_character ("Erek Stonebreaker")
+ erek.set_dialogue ("dialogues.erek_start")
+ erek.load ("erek.mchar")
+ erek.set_map (gamedata_engine ().get_landmap ())
+ erek.jump_to (1, 5, 5)
+ erek.set_action ("talk")
+ erek.stand_north ()
+ # changed Erek's text color to violet
+ erek.set_color (3)
+ erek.set_schedule ("erek")
+ erek.set_portrait ("erek.pnm")
+ erek.time_callback_string ("38t", "walk")
+ erek.time_callback_string ("27t", "speak")
+
+ talan = gamedata_get_character ("Talan Wendth")
+ talan.set_dialogue ("dialogues.demo_intro_1")
+ talan.load ("talan.mchar")
+ talan.set_map (gamedata_engine ().get_landmap ())
+ talan.jump_to (0, 7, 17)
+ talan.set_action ("talk")
+ talan.stand_west ()
+ talan.set_schedule ("talan")
+ talan.set_portrait ("talan.pnm")
+ talan.time_callback_string ("45t", "speak")
+
+ jelom = gamedata_get_character ("Jelom Rasgar")
+ jelom.set_dialogue ("dialogues.jelom_start")
+ jelom.load ("jelom.mchar")
+ jelom.set_map (gamedata_engine ().get_landmap ())
+ jelom.jump_to (9, 2, 6)
+ jelom.set_action ("talk")
+ jelom.stand_north ()
+ jelom.set_color (5)
+ jelom.set_schedule ("jelom")
+ jelom.set_portrait ("jelom.pnm")
+ jelom.time_callback_string ("42t", "walk")
+ jelom.time_callback_string ("35t", "speak")
+
+ alek = gamedata_get_character ("Alek Endhelm")
+ alek.set_dialogue ("dialogues.alek_start")
+ alek.load ("alek.mchar")
+ alek.set_map (gamedata_engine ().get_landmap ())
+ alek.jump_to (1, 1, 3)
+ alek.set_action ("talk")
+ alek.stand_south ()
+ alek.set_schedule ("alek")
+ alek.set_portrait ("alek.pnm")
+ alek.time_callback_string ("73t", "walk")
+ alek.time_callback_string ("18t", "speak")
+
+ oliver = gamedata_get_character ("Oliver Redwyne")
+ oliver.set_dialogue ("dialogues.oliver_start")
+ oliver.load ("oliver.mchar")
+ oliver.set_map (gamedata_engine ().get_landmap ())
+ oliver.jump_to (0, 25, 15)
+ oliver.set_action ("talk")
+ oliver.stand_west ()
+ oliver.set_schedule ("oliver")
+ oliver.set_portrait ("oliver.pnm")
+ oliver.time_callback_string ("25t", "speak")
+
+ frostbloom = gamedata_get_character ("Rhayne Frostbloom")
+ frostbloom.set_dialogue ("dialogues.frostbloom_start")
+ frostbloom.load ("frostbloom.mchar")
+ frostbloom.set_map (gamedata_engine ().get_landmap ())
+ frostbloom.jump_to (0, 18, 22)
+ frostbloom.set_action ("talk")
+ frostbloom.stand_north ()
+ frostbloom.set_schedule ("frostbloom")
+ frostbloom.set_portrait ("frostbloom.pnm")
+ frostbloom.time_callback_string ("35", "walk")
+ frostbloom.time_callback_string ("40t", "speak")
+
+ bjarn = gamedata_get_character ("Bjarn Fingolson")
+ bjarn.set_dialogue ("dialogues.bjarn_start")
+ bjarn.load ("bjarn.mchar")
+ bjarn.set_map (gamedata_engine ().get_landmap ())
+ bjarn.jump_to (7, 3, 6)
+ bjarn.set_action ("talk")
+ bjarn.stand_west ()
+ bjarn.set_schedule ("bjarn")
+ bjarn.set_portrait ("bjarn.pnm")
+ bjarn.time_callback_string ("23t", "walk")
+ bjarn.time_callback_string ("30t", "speak")
+
+ silverhair = gamedata_get_character ("Imoen Silverhair")
+ silverhair.set_dialogue ("dialogues.silverhair_start")
+ silverhair.load ("silverhair.mchar")
+ silverhair.set_map (gamedata_engine ().get_landmap ())
+ silverhair.jump_to (13, 4, 4)
+ silverhair.set_action ("talk")
+ silverhair.set_color (4)
+ silverhair.stand_south ()
+ silverhair.set_schedule ("silverhair")
+ silverhair.set_portrait ("silverhair.pnm")
+ silverhair.time_callback_string ("105t", "walk")
+ silverhair.time_callback_string ("26t", "speak")
+
+ sarin = gamedata_get_character ("Sarin Trailfollower")
+ sarin.set_dialogue ("dialogues.sarin_start")
+ sarin.load ("servant2.mchar")
+ sarin.set_map (gamedata_engine ().get_landmap ())
+ sarin.jump_to (13, 5, 3)
+ sarin.set_action ("talk")
+ sarin.stand_west ()
+ sarin.set_schedule ("sarin")
+ sarin.set_portrait ("sarin.pnm")
+ sarin.time_callback_string ("4t", "walk")
+ sarin.time_callback_string ("32t", "speak")
+ sarin.time_callback_string ("45t", "switch_direction")
+
+ janesta = gamedata_get_character ("Janesta Skywind")
+ janesta.set_dialogue ("dialogues.janesta_start")
+ janesta.load ("servant1.mchar")
+ janesta.set_map (gamedata_engine ().get_landmap ())
+ janesta.jump_to (13, 6, 3)
+ janesta.set_action ("talk")
+ janesta.stand_north ()
+ janesta.set_schedule ("janesta")
+ janesta.set_portrait ("janesta.pnm")
+ janesta.time_callback_string ("20t", "walk")
+ janesta.time_callback_string ("35t", "speak")
+
+ fellnir = gamedata_get_character ("Fellnir Kezular")
+ fellnir.set_dialogue ("dialogues.fellnir_start")
+ fellnir.load ("fellnir.mchar")
+ fellnir.set_map (gamedata_engine ().get_landmap ())
+ fellnir.jump_to (10, 4, 4)
+ fellnir.set_action ("talk")
+ fellnir.stand_south ()
+ fellnir.set_schedule ("fellnir")
+ fellnir.set_portrait ("fellnir.pnm")
+ fellnir.time_callback_string ("56t", "walk")
+ fellnir.time_callback_string ("30t", "speak")
+
+ tristan = gamedata_get_character ("Tristan Illig")
+ tristan.set_dialogue ("dialogues.tristan_start")
+ tristan.load ("illig.mchar")
+ tristan.set_map (gamedata_engine ().get_landmap ())
+ tristan.jump_to (1, 4, 6)
+ tristan.set_action ("talk")
+ tristan.stand_west ()
+ tristan.set_schedule ("tristan")
+ tristan.set_portrait ("illig.pnm")
+ tristan.time_callback_string ("75t", "walk")
+ tristan.time_callback_string ("38t", "speak")
+
+ # Once we want to generate the data context files,
+ # just call gamedata::save (1) and copy the .data files
+ # to the game's root directory.
+ gamedata_save (1, "Initial game data")
+
+ # -- start the mapengine
+ gamedata_engine ().mapview_start ()
+ gametime_update ()
+ gamedata_engine ().fade_in ()
+
# -- Main --
-adonthell.audio_load_wave (0, "audio/select.wav")
-adonthell.audio_load_wave (1, "audio/switch.wav")
-adonthell.audio_load_wave (2, "audio/unselect.wav")
-
-if adonthell.gamedata_load_newest () == 0:
- title = title_screen ()
-else:
- # -- Quick-load
- adonthell.gametime_start_action ()
- adonthell.gamedata_engine ().main ()
+title = title_screen ()
diff --git a/scripts/modules/player_text.py b/scripts/modules/player_text.py
new file mode 100644
index 0000000..10eae98
--- /dev/null
+++ b/scripts/modules/player_text.py
@@ -0,0 +1,31 @@
+ _("That clock seems to be late!")
+_("Aw, a midget yeti, how cute!")
+_("I'd better not touch this ... What if it explodes??")
+_("Closed. We are all imprisoned here ...")
+_("No. I certainly won't climb up there!")
+_("The entrance to the Inn.")
+_("That's the guard's house.")
+_("There's a plaque that reads \"Tristan Illig\".")
+_("Hm. There are plenty of books on singing inside.")
+_("Locked. The plaque reads \"Bregon Arwold\".")
+_("Locked. The plaque reads \"Jelom Rasgar\".")
+_("The plaque on that chest reads \"Alek Endhelm\".")
+_("I doubt Master Fingolson would be happy if I went through his things.")
+_("Hm, nothing hidden in there!")
+_("I have already bathed this month!")
+_("No, I won't touch my mistress' belongings!")
+_("Mmmh ... this wine is really tasty!")
+_("I'm sure Master Redwyne won't mind if I take a sip.")
+_("Hic! Whoa, that's quite strong!")
+_("'Made in Cirdanth', now that's more like it!")
+_("'Made in Uzdun' kal'? How cheap is this Master Redwyne?")
+_("\"Teach yourself Elvish in 21 days\"?")
+_("\"There and back again\", how unimaginative!")
+_("Oh dear, \"The Art of making Yetis\", by R. Frostbloom")
+_("This is nothing compared to Lady Silverhair's reading room!")
+_("Hey, that looks like Adonthell!")
+_("I cannot rest when my mistress needs me!")
+_("An old, dusty chest.")
+_("Lady Silverhair's luggage, but not what I am looking for.")
+_("An old, empty crate!")
+
diff --git a/scripts/schedules/mapcharacters/bjarn.py
b/scripts/schedules/mapcharacters/bjarn.py
index 254a49e..361b6b4 100644
--- a/scripts/schedules/mapcharacters/bjarn.py
+++ b/scripts/schedules/mapcharacters/bjarn.py
@@ -37,41 +37,22 @@ class bjarn (schedule.speak):
(7, 3, adonthell.STAND_NORTH), \
(3, 6, adonthell.STAND_WEST)]
- def run_old (self):
- myself = self.myself
-
- # -- Get at the proper place when Erek lets the player into the room
- # and at the end of the game.
- if adonthell.gamedata_get_quest ("demo").get_val("the_end") == 1 or \
- adonthell.gamedata_get_quest ("demo").get_val("bjarn_door_open") ==
2:
- myself.jump_to (myself.submap (), 3, 6)
- myself.stand_west ()
- myself.set_val ("delay", 150)
- return
-
- todo = myself.get_val ("todo")
-
- # -- waiting
- if todo == 0:
- delay = myself.get_val ("delay")
- # If standing delay expired, move around next time
- if delay == 0:
- myself.set_val ("todo", 1)
- else:
- myself.set_val ("delay", delay - 1)
-
- # -- engage a new movement
- elif todo == 1:
- x, y, dir = self.coords[random.randint (0, 3)]
-
- myself.set_goal (x, y, dir)
- myself.set_val ("todo", 2)
-
- # -- moving
- elif todo == 2:
- if myself.follow_path () == 1:
- # -- the time we stay at the same place
- delay = random.randint (30, 60) * 25
-
- myself.set_val ("delay", delay)
- myself.set_val ("todo", 0)
+ self.myself.set_callback (self.goal_reached)
+
+ # -- Get at the proper place when Erek lets the player into the room
+ # and at the end of the game.
+ def await_player (self):
+ self.myself.jump_to (self.myself.submap (), 3, 6)
+ self.myself.stand_west ()
+
+ def start_talking (self):
+ self.myself.launch_action (adonthell.gamedata_player ())
+ adonthell.gamedata_get_character ("Erek Stonebreaker").pause ()
+
+ def walk (self):
+ x, y, dir = self.coords[random.randint (0, 3)]
+ self.myself.set_goal (x, y, dir)
+
+ def goal_reached (self):
+ delay = "%it" % random.randrange (15, 30)
+ self.myself.time_callback (delay, self.walk)
diff --git a/scripts/schedules/mapcharacters/erek.py
b/scripts/schedules/mapcharacters/erek.py
index 2bef2a1..c5ad3fb 100755
--- a/scripts/schedules/mapcharacters/erek.py
+++ b/scripts/schedules/mapcharacters/erek.py
@@ -53,102 +53,66 @@ class erek (schedule.speak):
(2, 4, adonthell.STAND_SOUTH)]
self.index = 0
-
- def run_old (self):
- myself = self.myself
+ self.walk_delay = "45t"
- # -- lead the player into bjarn's room
- if adonthell.gamedata_get_quest ("demo").get_val ("bjarn_door_open")
== 2:
- myself.set_schedule_active (0)
- # -- start Bjanr's conversation with the player and Erek
- fingolson = adonthell.gamedata_get_character ("Bjarn Fingolson")
- fingolson.launch_action (adonthell.gamedata_player ())
-
- # -- help the player with jelom
- elif adonthell.gamedata_get_quest ("demo").get_val ("convince_jelom")
== 2:
- myself.set_schedule_active (0)
- # -- start Jelom's conversation with the player and Erek
- jelom = adonthell.gamedata_get_character ("Jelom Rasgar")
- jelom.launch_action (adonthell.gamedata_player ())
-
- # -- leave Bjarn's room
- elif myself.get_val ("leave_bjarn") == 1:
- goto = myself.get_val ("goto")
- myself.set_val ("delay", 0)
-
- # -- goto first floor
- if goto == 9: coords = self.to_1st
- # -- goto common room
- else: coords = self.to_common
-
- if self.index < len (coords):
- myself.set_val ("leave_bjarn", 2)
- x, y, dir = coords[self.index]
- myself.set_goal (x, y, dir)
-
- # -- arrived
- else:
- myself.set_val ("leave_bjarn", 0)
- if myself.submap () == 1:
- x, y, dir = self.coords[random.randrange (0, 2)]
- myself.set_goal (x, y, dir)
- else:
- myself.set_schedule_active (0)
-
- myself.set_val ("todo", 2)
-
-
- # -- "normal" schedule
- todo = myself.get_val ("todo")
-
- # -- waiting
- if todo == 0:
- delay = myself.get_val ("delay")
-
- # If standing delay expired, move around next time
- if delay == 0:
- myself.set_val ("todo", 1)
- else:
- myself.set_val ("delay", delay - 1)
-
- # -- get movement target
- elif todo == 1:
- # -- on our way back from bjarn's room
- if myself.get_val ("leave_bjarn") == 2:
- myself.set_val ("leave_bjarn", 1)
- self.index = self.index + 1
-
- # -- switch places
+ if self.myself.get_val ("goto") != 0:
+ self.myself.set_callback (self.leave_cellar)
+ else:
+ self.myself.set_callback (self.goal_reached)
+
+ def walk (self):
+ # -- in common room -> goto parlour
+ if self.myself.submap () == 1:
+ self.myself.set_goal (14, 4, adonthell.STAND_EAST)
+ self.walk_delay = "%it" % random.randrange (36, 108)
+
+ # -- in parlour -> goto common room
+ else:
+ self.myself.set_goal (0, 4, adonthell.STAND_WEST)
+ self.walk_delay = "%it" % random.randrange (20, 60)
+
+ def goal_reached (self):
+ # -- reached common room
+ if self.myself.submap () == 1 and self.myself.posx () == 13:
+ x, y, dir = self.coords[random.randrange (0, 2)]
+ self.myself.set_goal (x, y, dir)
+ # -- reached parlour
+ elif self.myself.submap () == 2 and self.myself.posx () == 1:
+ x, y, dir = self.coords[random.randrange (2, 4)]
+ self.myself.set_goal (x, y, dir)
+ # -- reached our final destination
+ else:
+ self.myself.time_callback (self.walk_delay, self.walk)
+
+ # -- leave Bjarn's room
+ def leave_bjarn (self):
+ # -- set alternative schedule
+ self.myself.set_callback (self.leave_cellar)
+
+ x, y, dir = self.to_common[self.index]
+ self.myself.set_goal (x, y, dir)
+
+ def leave_cellar (self):
+ self.index = self.index + 1
+ goto = self.myself.get_val ("goto")
+
+ # -- goto first floor
+ if goto == 9: coords = self.to_1st
+ # -- goto common room
+ else: coords = self.to_common
+
+ if self.index < len (coords):
+ x, y, dir = coords[self.index]
+ self.myself.set_goal (x, y, dir)
+
+ # -- arrived
+ else:
+ # -- restore normal schedule
+ self.myself.set_callback (self.goal_reached)
+ self.myself.set_val ("goto", 0)
+
+ if self.myself.submap () == 1:
+ x, y, dir = self.coords[random.randrange (0, 2)]
+ self.myself.set_goal (x, y, dir)
else:
- # -- in common room -> goto parlour
- if myself.submap () == 1:
- myself.set_goal (14, 4, adonthell.STAND_EAST)
-
- # -- in parlour -> goto common room
- else:
- myself.set_goal (0, 4, adonthell.STAND_WEST)
-
- myself.set_val ("todo", 2)
-
- # -- move
- elif todo == 2:
- if myself.follow_path () == 1:
- # -- reached common room
- if myself.submap () == 1 and myself.posx () == 13:
- x, y, dir = self.coords[random.randrange (0, 2)]
- myself.set_goal (x, y, dir)
-
- delay = random.randrange (50, 150) * 20
- myself.set_val ("delay", delay)
-
- # -- reached parlour
- elif myself.submap () == 2 and myself.posx () == 1:
- x, y, dir = self.coords[random.randrange (2, 4)]
- myself.set_goal (x, y, dir)
-
- delay = random.randrange (60, 180) * 30
- myself.set_val ("delay", delay)
-
- # -- reached our final destination
- else:
- myself.set_val ("todo", 0)
+ self.myself.pause ()
diff --git a/scripts/schedules/mapcharacters/jelom.py
b/scripts/schedules/mapcharacters/jelom.py
index 73ac708..97eba02 100644
--- a/scripts/schedules/mapcharacters/jelom.py
+++ b/scripts/schedules/mapcharacters/jelom.py
@@ -44,3 +44,8 @@ class jelom (schedule.speak):
def goal_reached (self):
delay = "%it" % random.randrange (20, 65)
self.myself.time_callback (delay, self.walk)
+
+ def start_talking (self):
+ self.myself.launch_action (adonthell.gamedata_player ())
+ adonthell.gamedata_get_character ("Erek Stonebreaker").pause ()
+
diff --git a/scripts/schedules/mapcharacters/silverhair.py
b/scripts/schedules/mapcharacters/silverhair.py
index 6f0c1a8..ebdefa3 100755
--- a/scripts/schedules/mapcharacters/silverhair.py
+++ b/scripts/schedules/mapcharacters/silverhair.py
@@ -39,12 +39,12 @@ class silverhair (schedule.speak):
# -- goto the window
if self.myself.posx () == 4:
# ... and speak about the weather
- self.delay = "%it" % random.randrange (15, 22)
+ self.myself.set_val ("delay", random.randrange (15, 22))
self.myself.set_goal (6, 4, adonthell.STAND_EAST)
# -- go back to our normal position
else:
- self.delay = "%it" % random.randrange (70, 140)
+ self.myself.set_val ("delay", random.randrange (15, 22))
if self.myself.set_goal (4, 4, adonthell.STAND_SOUTH) == 0:
self.myself.go_north ()
@@ -53,4 +53,5 @@ class silverhair (schedule.speak):
if self.myself.posx () == 6:
self.myself.speak (self.speech[3])
- self.myself.time_callback (self.delay, self.walk)
+ delay = "%it" % self.myself.get_val ("delay")
+ self.myself.time_callback (delay, self.walk)
diff --git a/scripts/schedules/mapcharacters/to_cellar.py
b/scripts/schedules/mapcharacters/to_cellar.py
index 3568967..9ef8788 100644
--- a/scripts/schedules/mapcharacters/to_cellar.py
+++ b/scripts/schedules/mapcharacters/to_cellar.py
@@ -1,5 +1,5 @@
#
-# (C) Copyright 2001 Kai Sterker <address@hidden>
+# (C) Copyright 2001/2002 Kai Sterker <address@hidden>
# Part of the Adonthell Project http://adonthell.linuxgames.com
#
# This program is free software; you can redistribute it and/or modify
@@ -40,10 +40,49 @@ class to_cellar:
(5, 1, adonthell.STAND_NORTH), \
(5, 1, adonthell.STAND_NORTH)]
- self.myself.set_val ("todo", 0)
+ self.myself.set_callback (self.walk)
- def run (self):
+ def walk (self):
+ x, y, dir = self.exits[self.myself.submap ()]
+
+ # -- in Bjarn's room
+ if x == -1:
+ self.myself.set_callback (self.goal_reached)
+
+ submap = self.myself.mymap ().get_submap (self.myself.submap ())
+ x = random.randint (1, 4)
+ y = random.randint (5, 9)
+
+ while not submap.get_square (x, y).is_free () or (y == 5 and x >
2):
+ x = random.randint (1, 4)
+ y = random.randint (5, 9)
+
+ # -- calculate direction
+ # -- north-western area
+ if x + y < 10:
+ if x + 3 > y: dir = adonthell.STAND_SOUTH
+ else: dir = adonthell.STAND_EAST
+ # -- south-east corner
+ else:
+ if y - (x + 3) > 0: dir = adonthell.STAND_NORTH
+ else: dir = adonthell.STAND_WEST
+
+ self.myself.set_goal (x, y, dir)
+
+ # -- reached Bjarn's room
+ def goal_reached (self):
+ if self.myself.get_name () == adonthell.gamedata_player ().get_name ():
+ self.myself.set_schedule ("keyboard_control")
+ bjarn = adonthell.gamedata_get_character ("Bjarn Fingolson")
+ bjarn.set_dialogue ("dialogues.extro")
+ bjarn.launch_action (self.myself)
+
+ else:
+ self.myself.pause ()
+
+
+ def run_old (self):
myself = self.myself
todo = myself.get_val ("todo")
- [adonthell-wastesedge-commits] Release_0-3-3 89e40ab 37/50: ADDED option to quit the dialogue early when talking to Orloth a second time, (continued)
- [adonthell-wastesedge-commits] Release_0-3-3 89e40ab 37/50: ADDED option to quit the dialogue early when talking to Orloth a second time, Kai Sterker, 2016/07/25
- [adonthell-wastesedge-commits] Release_0-3-3 5b0fb5d 36/50: REMOVED wastesedge.txt from docs, Kai Sterker, 2016/07/25
- [adonthell-wastesedge-commits] Release_0-3-3 66902e1 28/50: FIXED bug of Silverhair not reaching the cellar - this time for real :), Kai Sterker, 2016/07/25
- [adonthell-wastesedge-commits] Release_0-3-3 a2e277a 05/50: FIXED wording: s/retained/reserved/, Kai Sterker, 2016/07/25
- [adonthell-wastesedge-commits] Release_0-3-3 7e35780 44/50: FIXED building of rpm, Kai Sterker, 2016/07/25
- [adonthell-wastesedge-commits] Release_0-3-3 a439ab8 04/50: ADDED missing file, Kai Sterker, 2016/07/25
- [adonthell-wastesedge-commits] Release_0-3-3 e9a24ce 46/50: Slight changes to the textual files - please correct any English mistake, Kai Sterker, 2016/07/25
- [adonthell-wastesedge-commits] Release_0-3-3 bca2721 48/50: ADDED win32 files to the distribution - release stress! :P, Kai Sterker, 2016/07/25
- [adonthell-wastesedge-commits] Release_0-3-3 0360be0 35/50: Some slight changes to the Windows installer, Kai Sterker, 2016/07/25
- [adonthell-wastesedge-commits] Release_0-3-3 192711b 49/50: FIXED [#101334] Need not talk to Orloth in order to soothe Lucia, Kai Sterker, 2016/07/25
- [adonthell-wastesedge-commits] Release_0-3-3 e5b6206 15/50: UPDATED the last few schedules for the new event system,
Kai Sterker <=
- [adonthell-wastesedge-commits] Release_0-3-3 2ccb970 03/50: FIXED rare glitch in Talan's dialogue, Kai Sterker, 2016/07/25