Merge lp:~widelands-dev/widelands/i18n into lp:widelands

Proposed by GunChleoc
Status: Merged
Merged at revision: 6845
Proposed branch: lp:~widelands-dev/widelands/i18n
Merge into: lp:widelands
Diff against target: 53872 lines (+20114/-18803)
435 files modified
campaigns/atl01.wmf/elemental (+1/-1)
campaigns/atl01.wmf/scripting/texts.lua (+380/-400)
campaigns/cconfig (+12/-12)
campaigns/emp01.wmf/elemental (+2/-2)
campaigns/emp01.wmf/scripting/texts.lua (+168/-117)
campaigns/emp02.wmf/elemental (+2/-2)
campaigns/emp02.wmf/scripting/texts.lua (+161/-118)
campaigns/t01.wmf/elemental (+2/-2)
campaigns/t01.wmf/scripting/init.lua (+5/-1)
campaigns/t01.wmf/scripting/initial_messages.lua (+20/-15)
campaigns/t01.wmf/scripting/khantrukhs_talking.lua (+13/-11)
campaigns/t01.wmf/scripting/texts.lua (+146/-110)
campaigns/t02.wmf/elemental (+2/-2)
campaigns/t02.wmf/scripting/mission_thread_texts.lua (+247/-268)
campaigns/t03.wmf/elemental (+1/-1)
campaigns/t03.wmf/scripting/texts.lua (+257/-230)
campaigns/tutorial01.wmf/elemental (+2/-2)
campaigns/tutorial01.wmf/scripting/texts.lua (+404/-436)
global/militarysites/barracks.empire/conf (+6/-0)
global/militarysites/barrier.barbarians/conf (+6/-0)
global/militarysites/barrier.empire/conf (+6/-0)
global/militarysites/castle.atlanteans/conf (+6/-0)
global/militarysites/castle.empire/conf (+6/-0)
global/militarysites/citadel.barbarians/conf (+6/-0)
global/militarysites/donjon.barbarians/conf (+6/-0)
global/militarysites/fortress.barbarians/conf (+6/-0)
global/militarysites/fortress.empire/conf (+6/-0)
global/militarysites/guardhall.atlanteans/conf (+6/-0)
global/militarysites/guardhouse.atlanteans/conf (+6/-0)
global/militarysites/high_tower.atlanteans/conf (+6/-0)
global/militarysites/outpost.empire/conf (+6/-0)
global/militarysites/sentry.barbarians/conf (+6/-0)
global/militarysites/sentry.empire/conf (+6/-0)
global/militarysites/small_tower.atlanteans/conf (+6/-0)
global/militarysites/stronghold.barbarians/conf (+6/-0)
global/militarysites/tower.atlanteans/conf (+6/-0)
global/militarysites/tower.empire/conf (+6/-0)
maps/Atoll.wmf/elemental (+2/-2)
maps/Calvisson.wmf/elemental (+2/-2)
maps/Checkmate.wmf/elemental (+1/-1)
maps/Comet Island.wmf/elemental (+1/-1)
maps/Crossing the horizon.wmf/elemental (+1/-1)
maps/Desert Tournament.wmf/elemental (+2/-2)
maps/Dry Riverbed.wmf/elemental (+1/-1)
maps/Elven Forests.wmf/elemental (+2/-2)
maps/Fellowships.wmf/elemental (+2/-2)
maps/Finlakes.wmf/elemental (+1/-1)
maps/Firegames.wmf/elemental (+1/-1)
maps/Four Castles.wmf/elemental (+1/-1)
maps/Four Mountains.wmf/elemental (+1/-1)
maps/Glacier Lake.wmf/elemental (+1/-1)
maps/Ice wars.wmf/elemental (+1/-1)
maps/Islands at war.wmf/elemental (+2/-2)
maps/Kings and Queens.wmf/elemental (+1/-1)
maps/Lake of tranquility.wmf/elemental (+1/-1)
maps/Last Bastion.wmf/elemental (+1/-1)
maps/Long, long way.wmf/elemental (+2/-2)
maps/MP Scenarios/Island Hopping.wmf/elemental (+1/-1)
maps/MP Scenarios/Island Hopping.wmf/scripting/first_island.lua (+4/-4)
maps/MP Scenarios/Island Hopping.wmf/scripting/multiplayer_init.lua (+31/-1)
maps/MP Scenarios/Island Hopping.wmf/scripting/texts.lua (+31/-24)
maps/MP Scenarios/Smugglers.wmf/elemental (+1/-1)
maps/MP Scenarios/Smugglers.wmf/scripting/multiplayer_init.lua (+2/-3)
maps/MP Scenarios/Smugglers.wmf/scripting/smuggling.lua (+10/-8)
maps/MP Scenarios/Smugglers.wmf/scripting/texts.lua (+38/-33)
maps/Mystical Maze.wmf/elemental (+1/-1)
maps/Plateau.wmf/elemental (+2/-2)
maps/Plateau.wmf/scripting/texts.lua (+39/-42)
maps/Rendez-Vous.wmf/elemental (+1/-1)
maps/River Explorers.wmf/elemental (+1/-1)
maps/Sun of fire.wmf/elemental (+2/-2)
maps/Swamp Island.wmf/elemental (+1/-1)
maps/Swamp Monks.wmf/elemental (+2/-2)
maps/The Nile.wmf/elemental (+2/-2)
maps/The Oasis Triangle.wmf/elemental (+1/-1)
maps/The Thaw.wmf/elemental (+1/-1)
maps/The big lake.wmf/elemental (+2/-2)
maps/The long way.wmf/elemental (+2/-2)
maps/The pass through the mountains.wmf/elemental (+2/-2)
maps/Together we're strong.wmf/elemental (+2/-2)
maps/Trident of Fire.wmf/elemental (+2/-2)
maps/Twin Lagoons.wmf/elemental (+1/-1)
maps/Two frontiers.wmf/elemental (+1/-1)
maps/Volcanic Winter.wmf/elemental (+1/-1)
maps/War of the Valleys.wmf/elemental (+1/-1)
maps/Wisent Valley.wmf/elemental (+1/-1)
po/map_plateau.wmf/map_plateau.wmf.pot (+93/-106)
po/maps/maps.pot (+416/-368)
po/mp_scenario_island_hopping.wmf/mp_scenario_island_hopping.wmf.pot (+174/-116)
po/mp_scenario_smugglers.wmf/mp_scenario_smugglers.wmf.pot (+82/-68)
po/scenario_atl01.wmf/scenario_atl01.wmf.pot (+685/-717)
po/scenario_dummy.wmf/scenario_dummy.wmf.pot (+14/-3)
po/scenario_emp01.wmf/scenario_emp01.wmf.pot (+335/-191)
po/scenario_emp02.wmf/scenario_emp02.wmf.pot (+411/-255)
po/scenario_t01.wmf/scenario_t01.wmf.pot (+343/-224)
po/scenario_t02.wmf/scenario_t02.wmf.pot (+570/-505)
po/scenario_t03.wmf/scenario_t03.wmf.pot (+436/-422)
po/scenario_tutorial01.wmf/scenario_tutorial01.wmf.pot (+913/-983)
po/texts/texts.pot (+690/-690)
po/tribe_atlanteans/tribe_atlanteans.pot (+1507/-1153)
po/tribe_barbarians/tribe_barbarians.pot (+3493/-3198)
po/tribe_empire/tribe_empire.pot (+1579/-1208)
po/widelands/gd.po (+504/-816)
po/widelands/widelands.pot (+1629/-2489)
po/win_conditions/gd.po (+51/-62)
po/win_conditions/win_conditions.pot (+223/-179)
po/world_blackland/world_blackland.pot (+294/-294)
po/world_desert/world_desert.pot (+228/-228)
po/world_greenland/world_greenland.pot (+338/-338)
po/world_winterland/world_winterland.pot (+323/-323)
scripting/format_help.lua (+24/-0)
scripting/format_scenario.lua (+85/-0)
scripting/formatting.lua (+3/-56)
scripting/win_condition_texts.lua (+1/-32)
scripting/win_conditions/02_collectors.lua (+13/-9)
scripting/win_conditions/03_territorial_lord.lua (+14/-7)
scripting/win_conditions/03_territorial_time.lua (+47/-21)
scripting/win_conditions/04_wood_gnome.lua (+15/-9)
src/economy/cmd_call_economy_balance.cc (+2/-2)
src/economy/economy_data_packet.cc (+5/-5)
src/economy/fleet.cc (+2/-2)
src/economy/portdock.cc (+2/-2)
src/economy/request.cc (+1/-1)
src/economy/wares_queue.cc (+2/-2)
src/editor/editorinteractive.cc (+4/-4)
src/editor/tools/editor_info_tool.cc (+87/-81)
src/editor/ui_menus/editor_main_menu_load_map.cc (+6/-6)
src/editor/ui_menus/editor_main_menu_save_map.cc (+11/-11)
src/editor/ui_menus/editor_player_menu.cc (+10/-6)
src/editor/ui_menus/editor_player_menu_allowed_buildings_menu.cc (+1/-1)
src/editor/ui_menus/editor_tool_change_height_options_menu.cc (+1/-1)
src/editor/ui_menus/editor_tool_change_resources_options_menu.cc (+1/-1)
src/editor/ui_menus/editor_toolsize_menu.cc (+1/-1)
src/game_io/game_cmd_queue_data_packet.cc (+2/-2)
src/game_io/game_game_class_data_packet.cc (+2/-2)
src/game_io/game_interactive_player_data_packet.cc (+3/-3)
src/game_io/game_player_economies_data_packet.cc (+4/-4)
src/game_io/game_player_info_data_packet.cc (+9/-9)
src/game_io/game_preload_data_packet.cc (+2/-2)
src/graphic/animation.cc (+2/-2)
src/logic/battle.cc (+3/-3)
src/logic/bob.cc (+1/-1)
src/logic/building.cc (+1/-1)
src/logic/cmd_calculate_statistics.cc (+2/-2)
src/logic/cmd_incorporate.cc (+1/-1)
src/logic/cmd_luacoroutine.cc (+2/-2)
src/logic/cmd_luascript.cc (+2/-2)
src/logic/cmd_queue.cc (+3/-3)
src/logic/constructionsite.cc (+3/-1)
src/logic/critter_bob.cc (+2/-2)
src/logic/game.cc (+2/-2)
src/logic/immovable.cc (+42/-46)
src/logic/instances.cc (+6/-6)
src/logic/legacy.cc (+2/-2)
src/logic/military_data.cc (+5/-5)
src/logic/militarysite.cc (+20/-30)
src/logic/militarysite.h (+10/-0)
src/logic/playercommand.cc (+43/-43)
src/logic/production_program.cc (+152/-126)
src/logic/productionsite.cc (+3/-3)
src/logic/replay.cc (+1/-1)
src/logic/requirements.cc (+4/-4)
src/logic/ship.cc (+7/-7)
src/logic/soldier.cc (+9/-7)
src/logic/tribe.cc (+9/-9)
src/logic/warehouse.cc (+1/-1)
src/logic/worker.cc (+13/-9)
src/logic/worker_program.cc (+2/-2)
src/logic/world.cc (+1/-1)
src/map_io/widelands_map_allowed_building_types_data_packet.cc (+2/-2)
src/map_io/widelands_map_allowed_worker_types_data_packet.cc (+2/-2)
src/map_io/widelands_map_bob_data_packet.cc (+4/-4)
src/map_io/widelands_map_bobdata_data_packet.cc (+13/-13)
src/map_io/widelands_map_building_data_packet.cc (+3/-3)
src/map_io/widelands_map_buildingdata_data_packet.cc (+26/-26)
src/map_io/widelands_map_elemental_data_packet.cc (+2/-2)
src/map_io/widelands_map_exploration_data_packet.cc (+2/-2)
src/map_io/widelands_map_extradata_data_packet.cc (+2/-2)
src/map_io/widelands_map_flag_data_packet.cc (+8/-6)
src/map_io/widelands_map_flagdata_data_packet.cc (+9/-9)
src/map_io/widelands_map_heights_data_packet.cc (+2/-2)
src/map_io/widelands_map_loader.cc (+1/-1)
src/map_io/widelands_map_node_ownership_data_packet.cc (+2/-2)
src/map_io/widelands_map_object_packet.cc (+3/-3)
src/map_io/widelands_map_objective_data_packet.cc (+3/-3)
src/map_io/widelands_map_player_names_and_tribes_data_packet.cc (+2/-2)
src/map_io/widelands_map_player_position_data_packet.cc (+3/-3)
src/map_io/widelands_map_players_messages_data_packet.cc (+20/-20)
src/map_io/widelands_map_players_view_data_packet.cc (+1/-1)
src/map_io/widelands_map_port_spaces_data_packet.cc (+2/-2)
src/map_io/widelands_map_road_data_packet.cc (+2/-2)
src/map_io/widelands_map_roaddata_data_packet.cc (+7/-7)
src/map_io/widelands_map_terrain_data_packet.cc (+2/-2)
src/map_io/widelands_map_version_data_packet.cc (+2/-2)
src/map_io/widelands_map_ware_data_packet.cc (+3/-3)
src/map_io/widelands_map_waredata_data_packet.cc (+4/-4)
src/network/internet_gaming.cc (+19/-6)
src/network/internet_gaming_messages.cc (+6/-6)
src/network/nethost.cc (+43/-24)
src/network/network_gaming_messages.cc (+14/-13)
src/s2map.cc (+9/-6)
src/scripting/lua_game.cc (+9/-4)
src/scripting/lua_globals.cc (+103/-1)
src/scripting/persistence.cc (+1/-1)
src/sound/sound_handler.cc (+2/-2)
src/ui_basic/helpwindow.cc (+2/-2)
src/ui_basic/messagebox.cc (+4/-4)
src/ui_fsmenu/campaign_select.cc (+4/-13)
src/ui_fsmenu/campaign_select.h (+1/-1)
src/ui_fsmenu/internet_lobby.cc (+2/-2)
src/ui_fsmenu/launchMPG.cc (+43/-40)
src/ui_fsmenu/launchSPG.cc (+19/-17)
src/ui_fsmenu/loadgame.cc (+3/-1)
src/ui_fsmenu/loadreplay.cc (+3/-1)
src/ui_fsmenu/main.cc (+1/-1)
src/ui_fsmenu/mapselect.cc (+4/-3)
src/ui_fsmenu/options.cc (+12/-7)
src/wlapplication.cc (+84/-105)
src/wui/building_statistics_menu.cc (+12/-12)
src/wui/buildingwindow.cc (+3/-3)
src/wui/encyclopedia_window.cc (+10/-14)
src/wui/fieldaction.cc (+6/-6)
src/wui/game_debug_ui.cc (+2/-2)
src/wui/game_main_menu_save_game.cc (+6/-9)
src/wui/game_message_menu.cc (+12/-12)
src/wui/game_options_menu.cc (+1/-2)
src/wui/interactive_base.cc (+4/-3)
src/wui/interactive_player.cc (+2/-2)
src/wui/login_box.cc (+3/-3)
src/wui/login_box.h (+2/-1)
src/wui/multiplayersetupgroup.cc (+4/-5)
src/wui/playerdescrgroup.cc (+13/-11)
src/wui/productionsitewindow.cc (+6/-4)
src/wui/shipwindow.cc (+2/-2)
src/wui/soldierlist.cc (+4/-2)
src/wui/story_message_box.cc (+1/-1)
src/wui/watchwindow.cc (+1/-1)
test/maps/expedition.wmf/scripting/init.lua (+6/-6)
test/maps/lua_testsuite.wmf/scripting/init.lua (+1/-0)
test/maps/lua_testsuite.wmf/scripting/string_bformat.lua (+27/-0)
tribes/atlanteans/advanced_shield/conf (+1/-1)
tribes/atlanteans/armoursmith/conf (+1/-1)
tribes/atlanteans/bakingtray/conf (+1/-1)
tribes/atlanteans/blackroot/conf (+1/-1)
tribes/atlanteans/bucket/conf (+1/-1)
tribes/atlanteans/builder/conf (+1/-1)
tribes/atlanteans/castle/conf (+5/-0)
tribes/atlanteans/coal/conf (+1/-1)
tribes/atlanteans/conf (+37/-37)
tribes/atlanteans/corn/conf (+1/-1)
tribes/atlanteans/double_trident/conf (+1/-1)
tribes/atlanteans/fish/conf (+1/-1)
tribes/atlanteans/gold/conf (+1/-1)
tribes/atlanteans/golden_tabard/conf (+1/-1)
tribes/atlanteans/goldore/conf (+1/-1)
tribes/atlanteans/guardhall/conf (+5/-0)
tribes/atlanteans/guardhouse/conf (+5/-0)
tribes/atlanteans/hammer/conf (+1/-1)
tribes/atlanteans/heavy_double_trident/conf (+1/-1)
tribes/atlanteans/high_tower/conf (+5/-0)
tribes/atlanteans/hook_pole/conf (+1/-1)
tribes/atlanteans/horse/conf (+1/-1)
tribes/atlanteans/iron/conf (+1/-1)
tribes/atlanteans/ironore/conf (+1/-1)
tribes/atlanteans/labyrinth/conf (+2/-2)
tribes/atlanteans/light_trident/conf (+1/-1)
tribes/atlanteans/long_trident/conf (+1/-1)
tribes/atlanteans/meat/conf (+1/-1)
tribes/atlanteans/milking_tongs/conf (+1/-1)
tribes/atlanteans/planks/conf (+1/-1)
tribes/atlanteans/quartz/conf (+1/-1)
tribes/atlanteans/sawyer/conf (+1/-1)
tribes/atlanteans/scout/conf (+1/-1)
tribes/atlanteans/scripting/sc01_castle_village.lua (+2/-2)
tribes/atlanteans/shovel/conf (+1/-1)
tribes/atlanteans/small_tower/conf (+5/-0)
tribes/atlanteans/spideryarn/conf (+1/-1)
tribes/atlanteans/steel_shield/conf (+1/-1)
tribes/atlanteans/stone/conf (+1/-1)
tribes/atlanteans/stonecutter/conf (+1/-1)
tribes/atlanteans/toolsmithy/conf (+1/-1)
tribes/atlanteans/tower/conf (+5/-0)
tribes/atlanteans/trunk/conf (+1/-1)
tribes/atlanteans/water/conf (+1/-1)
tribes/barbarians/axe/conf (+1/-1)
tribes/barbarians/axefactory/conf (+3/-3)
tribes/barbarians/axefactory/help.lua (+23/-23)
tribes/barbarians/bakery/help.lua (+14/-14)
tribes/barbarians/bakingtray/conf (+1/-1)
tribes/barbarians/barrier/conf (+5/-0)
tribes/barbarians/battlearena/help.lua (+14/-14)
tribes/barbarians/battleaxe/conf (+1/-1)
tribes/barbarians/blackwood/conf (+2/-2)
tribes/barbarians/broadaxe/conf (+1/-1)
tribes/barbarians/bronzeaxe/conf (+1/-1)
tribes/barbarians/builder/conf (+1/-1)
tribes/barbarians/cattlebreeder/conf (+1/-1)
tribes/barbarians/cattlefarm/help.lua (+9/-10)
tribes/barbarians/citadel/conf (+6/-0)
tribes/barbarians/coal/conf (+1/-1)
tribes/barbarians/coalmine/help.lua (+10/-10)
tribes/barbarians/conf (+46/-46)
tribes/barbarians/deep_coalmine/help.lua (+11/-11)
tribes/barbarians/deep_goldmine/help.lua (+11/-11)
tribes/barbarians/deep_oremine/help.lua (+9/-9)
tribes/barbarians/deeper_coalmine/help.lua (+10/-11)
tribes/barbarians/deeper_goldmine/help.lua (+10/-11)
tribes/barbarians/deeper_oremine/help.lua (+9/-10)
tribes/barbarians/donjon/conf (+6/-0)
tribes/barbarians/farm/help.lua (+9/-9)
tribes/barbarians/felling_axe/conf (+1/-1)
tribes/barbarians/fernery/help.lua (+13/-13)
tribes/barbarians/fire_tongs/conf (+1/-1)
tribes/barbarians/fish/conf (+1/-1)
tribes/barbarians/fisher/conf (+1/-1)
tribes/barbarians/fishers_hut/help.lua (+7/-7)
tribes/barbarians/fishing_rod/conf (+1/-1)
tribes/barbarians/fortress/conf (+5/-0)
tribes/barbarians/gamekeepers_hut/help.lua (+7/-7)
tribes/barbarians/gold/conf (+1/-1)
tribes/barbarians/goldmine/help.lua (+9/-9)
tribes/barbarians/goldstone/conf (+1/-1)
tribes/barbarians/granitemine/help.lua (+9/-9)
tribes/barbarians/hammer/conf (+1/-1)
tribes/barbarians/helm/conf (+1/-1)
tribes/barbarians/helmsmithy/conf (+1/-1)
tribes/barbarians/hunters_hut/help.lua (+10/-10)
tribes/barbarians/hunting_spear/conf (+1/-1)
tribes/barbarians/iron/conf (+1/-1)
tribes/barbarians/ironore/conf (+1/-1)
tribes/barbarians/kitchen_tools/conf (+1/-1)
tribes/barbarians/lime_kiln/help.lua (+16/-16)
tribes/barbarians/lumberjacks_hut/help.lua (+11/-11)
tribes/barbarians/mask/conf (+1/-1)
tribes/barbarians/meal/conf (+1/-1)
tribes/barbarians/meat/conf (+1/-1)
tribes/barbarians/metalworks/conf (+2/-2)
tribes/barbarians/metalworks/help.lua (+18/-18)
tribes/barbarians/micro-brewery/help.lua (+12/-12)
tribes/barbarians/oremine/help.lua (+8/-8)
tribes/barbarians/ox/conf (+1/-1)
tribes/barbarians/pick/conf (+1/-1)
tribes/barbarians/pittabread/conf (+1/-1)
tribes/barbarians/quarry/help.lua (+4/-4)
tribes/barbarians/rangers_hut/help.lua (+6/-6)
tribes/barbarians/scout/conf (+1/-1)
tribes/barbarians/scripting/sc01_citadel_village.lua (+2/-2)
tribes/barbarians/scythe/conf (+1/-1)
tribes/barbarians/sentry/conf (+5/-0)
tribes/barbarians/sharpaxe/conf (+1/-1)
tribes/barbarians/shovel/conf (+1/-1)
tribes/barbarians/stonemason/conf (+1/-1)
tribes/barbarians/strongbeer/conf (+1/-1)
tribes/barbarians/stronghold/conf (+6/-0)
tribes/barbarians/thatchreed/conf (+1/-1)
tribes/barbarians/trainingscamp/conf (+6/-6)
tribes/barbarians/trainingscamp/help.lua (+25/-23)
tribes/barbarians/trunk/conf (+2/-2)
tribes/barbarians/warhelmet/conf (+1/-1)
tribes/barbarians/warmill/conf (+6/-6)
tribes/barbarians/warmill/help.lua (+22/-22)
tribes/barbarians/warriorsaxe/conf (+1/-1)
tribes/barbarians/water/conf (+1/-1)
tribes/barbarians/well/help.lua (+6/-5)
tribes/empire/advanced_lance/conf (+1/-1)
tribes/empire/armour/conf (+1/-1)
tribes/empire/armoursmith/conf (+1/-1)
tribes/empire/armoursmithy/conf (+3/-3)
tribes/empire/axe/conf (+1/-1)
tribes/empire/bakingtray/conf (+1/-1)
tribes/empire/barracks/conf (+6/-0)
tribes/empire/barrier/conf (+6/-0)
tribes/empire/bread/conf (+1/-1)
tribes/empire/builder/conf (+1/-1)
tribes/empire/castle/conf (+6/-0)
tribes/empire/chain_armour/conf (+1/-1)
tribes/empire/cloth/conf (+1/-1)
tribes/empire/coal/conf (+1/-1)
tribes/empire/conf (+42/-42)
tribes/empire/donkey/conf (+1/-1)
tribes/empire/fish/conf (+1/-1)
tribes/empire/fisher/conf (+1/-1)
tribes/empire/fortress/conf (+6/-0)
tribes/empire/gold/conf (+1/-1)
tribes/empire/goldstone/conf (+1/-1)
tribes/empire/grape/conf (+1/-1)
tribes/empire/hammer/conf (+1/-1)
tribes/empire/heavy_lance/conf (+1/-1)
tribes/empire/helm/conf (+1/-1)
tribes/empire/hunting_spear/conf (+1/-1)
tribes/empire/iron/conf (+1/-1)
tribes/empire/ironore/conf (+1/-1)
tribes/empire/lance/conf (+1/-1)
tribes/empire/marble/conf (+1/-1)
tribes/empire/marblecolumn/conf (+1/-1)
tribes/empire/meat/conf (+1/-1)
tribes/empire/outpost/conf (+6/-0)
tribes/empire/plate_armour/conf (+1/-1)
tribes/empire/scout/conf (+1/-1)
tribes/empire/scripting/sc01_castle_village.lua (+2/-2)
tribes/empire/scythe/conf (+1/-1)
tribes/empire/sentry/conf (+6/-0)
tribes/empire/shovel/conf (+1/-1)
tribes/empire/stone/conf (+1/-1)
tribes/empire/stonemason/conf (+1/-1)
tribes/empire/toolsmithy/conf (+2/-2)
tribes/empire/tower/conf (+6/-0)
tribes/empire/trainingscamp/conf (+8/-8)
tribes/empire/trunk/conf (+1/-1)
tribes/empire/war_lance/conf (+1/-1)
tribes/empire/water/conf (+1/-1)
tribes/empire/wheat/conf (+1/-1)
tribes/empire/wine/conf (+1/-1)
tribes/empire/wood/conf (+1/-1)
tribes/empire/wood_lance/conf (+1/-1)
txts/README.lua (+18/-18)
txts/editor_readme (+5/-5)
txts/license (+3/-3)
txts/tips/atlanteans.tip (+1/-1)
txts/tips/barbarians.tip (+1/-1)
txts/tips/editor.tip (+5/-5)
txts/tips/empire.tip (+1/-1)
txts/tips/general_game.tip (+9/-9)
txts/tips/multiplayer.tip (+3/-3)
utils/buildcat.py (+14/-11)
utils/lua_xgettext.py (+291/-52)
utils/test/test_lua-xgettext.py (+67/-11)
worlds/blackland/conf (+24/-24)
worlds/blackland/terrainconf (+12/-12)
worlds/desert/conf (+29/-29)
worlds/desert/terrainconf (+11/-11)
worlds/greenland/conf (+26/-26)
worlds/greenland/terrainconf (+10/-10)
worlds/winterland/conf (+24/-24)
worlds/winterland/terrainconf (+9/-9)
To merge this branch: bzr merge lp:~widelands-dev/widelands/i18n
Reviewer Review Type Date Requested Status
SirVer Approve
Review via email: mp+209212@code.launchpad.net

Description of the change

A whole bunch of changes for i18n:

- Translators get control over ordering of placeholders
- Proper plural forms
- Other string design improvements

Because I can't compile at the moment, check my commit comments for things that still need to be tested before the merge:

http://bazaar.launchpad.net/~widelands-dev/widelands/i18n/revision/6878

To post a comment you must log in.
Revision history for this message
GunChleoc (gunchleoc) wrote :

After I could compile and test, this is the stuff that still needs looking into:

===============================

/test/maps/expedition.wmf/scripting/init.lua
- upper or lowercase needed here?
  wait_for_message("Expedition Ready")
  wait_for_message("Port Space Found")

===============================

/utils/test/test_lua-xgettext.py

- 2 differences, please check:

def run_test(self):
self.p.parse(self.code, self.filename)

+ print self.p.findings - do we need this line? It's in gci18nfixes, but missing from i18n

and at EOF:

- # k = SomeTestClass()
- # unittest.TextTestRunner().run(k)
+ k = SomeTestClass()
+ unittest.TextTestRunner().run(k)

===============================

Help messages in nethost.cc

Revision history for this message
SirVer (sirver) wrote :

> - upper or lowercase needed here?

The strings have been changed to be titelized and unfortunately we depend on them being the same. So uppercase should be correct.

> /utils/test/test_lua-xgettext.py

the print line and the comments (or non comments) are fine either way.

> Help messages in nethost.cc

lgtm.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'campaigns/atl01.wmf/elemental'
--- campaigns/atl01.wmf/elemental 2010-11-18 10:39:43 +0000
+++ campaigns/atl01.wmf/elemental 2014-03-05 18:47:45 +0000
@@ -6,7 +6,7 @@
6map_h="160"6map_h="160"
7nr_players="1"7nr_players="1"
8world="greenland"8world="greenland"
9name=_"01 - From Nemesis to Genesis"9name=_"01 – From Nemesis to Genesis"
10author="SirVer,Nasenbaer"10author="SirVer,Nasenbaer"
11descr=_ "After landing on a mysterious island close to Atlantis, the remaining Atlanteans struggle to make a new home for themselves."11descr=_ "After landing on a mysterious island close to Atlantis, the remaining Atlanteans struggle to make a new home for themselves."
12background="campaigns/atl01.wmf/pics/everythinglost.jpg"12background="campaigns/atl01.wmf/pics/everythinglost.jpg"
1313
=== modified file 'campaigns/atl01.wmf/scripting/texts.lua'
--- campaigns/atl01.wmf/scripting/texts.lua 2012-12-16 19:08:16 +0000
+++ campaigns/atl01.wmf/scripting/texts.lua 2014-03-05 18:47:45 +0000
@@ -3,6 +3,7 @@
3-- =======================================================================3-- =======================================================================
44
5use("aux", "formatting")5use("aux", "formatting")
6use("aux", "format_scenario")
67
7function jundlina(title, text)8function jundlina(title, text)
8 return speech("map:princess.png", "2F9131", title, text)9 return speech("map:princess.png", "2F9131", title, text)
@@ -23,126 +24,126 @@
23 return speech("map:ostur.png", "375FFC", "Ostur", text)24 return speech("map:ostur.png", "375FFC", "Ostur", text)
24end25end
2526
26-- Append an objective text to a dialog box in a nice fashion.
27function new_objectives(...)
28 local s = rt(
29 "<p font=DejaVuSerif font-size=18 font-weight=bold font-color=D1D1D1>"
30 .. _"New Objectives" .. "</p>")
31
32 for idx,obj in ipairs{...} do
33 s = s .. obj.body
34 end
35 return s
36end
37
38-- =======================================================================27-- =======================================================================
39-- Objectives28-- Objectives
40-- =======================================================================29-- =======================================================================
41obj_ensure_build_wares_production = {30obj_ensure_build_wares_production = {
42 name = "obj_ensure_build_wares_production",31 name = "obj_ensure_build_wares_production",
43 title = _ "Ensure the supply of build wares",32 title = _ "Ensure the supply of building wares",
44 body = objective_text(_"The supply of build wares", _33 number = 6,
45[[Build a quarry, two woodcutter's houses, two forester's houses and a34 body = objective_text(_"Supply Building Wares", _
46sawmill.]]35[[Supply basic building material for your economy:]] .. "<br>" ..
36[[• ]] .. _[[Build a quarry]] .. "<br>" ..
37[[• ]] .. _[[Build two woodcutter’s houses]] .. "<br>" ..
38[[• ]] .. _[[Build two forester’s houses]] .. "<br>" ..
39[[• ]] .. _[[Build a sawmill]]
47 ),40 ),
48}41}
4942
50obj_expand = {43obj_expand = {
51 name = "obj_expand",44 name = "obj_expand",
52 title = _ "Expand your territory and explore the island",45 title = _ "Expand your territory and explore",
53 body = objective_text(_"Expand and Explore", _46 number = 1,
54[[The island is huge and as long as we are not sure that we are alone47 body = objective_text(_"Expand and Explore", _(
55here, we cannot relax. Explore and conquer it, this is the48[[The island is huge and as long as we are not sure that we are alone here, we cannot relax. ]] ..
56only way to protect us from threats on the island and from Atlantis.]]49[[Explore and conquer it, this is the only way to protect us from threats on the island and from Atlantis.]]) .. [[<br>]] ..
50[[• ]] .. _[[Build military sites to expand your territory]]
57 ),51 ),
58}52}
5953
60obj_make_food_infrastructure = {54obj_make_food_infrastructure = {
61 name = "obj_make_food_infrastructure",55 name = "obj_make_food_infrastructure",
62 title = _ "Establish a solid food production",56 title = _ "Establish a solid food production",
63 body = objective_text(_"Establish a food production", _57 number = 10,
64[[Food is very important for mines and military training areas. Establish58 body = objective_text(_"Food Production", _(
65a well working food environment by building at least one farm, one blackroot59[[Food is very important for mines and military training areas. ]] ..
66farm and a mill. The two kinds of flour together with water from a well60[[Establish a well working food environment by building at least one farm, one blackroot farm and a mill. ]] ..
67will be baked into bread in a bakery, so build a bakery and a well, too.<br><br>61[[The two kinds of flour together with water from a well will be baked into bread in a bakery, ]] ..
68The other two important food wares are smoked fish and smoked meat. Raw meat62[[so build a bakery and a well, too.]]) .. [[<br><br>]] ..
69is delivered from a hunter. A fisher gets the fish out of the sea while a63_([[The other two important food wares are smoked fish and smoked meat. ]] ..
70fish breeder makes sure that a school of fish does not go extinct by breeding64[[Raw meat is delivered from a hunter. ]] ..
71more. Make sure that there are always fish left, otherwise the fish breeder65[[A fisher gets the fish out of the sea while a fish breeder makes sure that a school of fish does not go extinct ]] ..
72won't be able to breed new ones. The smoking happens in a smokery, you66[[by breeding more. Make sure that there are always fish left, ]] ..
73will need at least two of those.<br><br>67[[otherwise the fish breeder won’t be able to breed new ones. ]] ..
74- Build a Farm and a Blackroot farm<br>68[[The smoking happens in a smokery, you will need at least two of those.]]) .. [[<br>]] ..
75- Build a mill to make flour and blackroot flour<br>69[[• ]] .. _[[Build a farm and a blackroot farm]] .. "<br>" ..
76- Build a well<br>70[[• ]] .. _[[Build a mill to make flour and blackroot flour]] .. "<br>" ..
77- Build a bakery to bake bread from flour, blackroot flour and water.<br>71[[• ]] .. _[[Build a well]] .. "<br>" ..
78- Build a hunter's house to get raw meat<br>72[[• ]] .. _[[Build a bakery to bake bread from flour, blackroot flour and water]] .. "<br>" ..
79- Build a fisher's house close to water to get raw fish<br>73[[• ]] .. _[[Build a hunter’s house to get raw meat]] .. "<br>" ..
80- Build a fishbreeder's house close to the fisher to make sure the fish do not die out<br>74[[• ]] .. _[[Build a fisher’s house close to water to get raw fish]] .. "<br>" ..
81- Build two smokeries to smoke raw meat and fish.]]75[[• ]] .. _[[Build a fish breeder’s house close to the fisher to make sure the fish do not die out]] .. "<br>" ..
76[[• ]] .. _[[Build two smokeries to smoke raw meat and fish]]
82 )77 )
83}78}
8479
85obj_spidercloth_production = {80obj_spidercloth_production = {
86 name = "obj_spidercloth_production",81 name = "obj_spidercloth_production",
87 title = _ "Build a spiderfarm and a weaving mill",82 title = _ "Build a spider farm and a weaving mill",
88 body = objective_text(_"Establish a spidercloth production", _83 number = 3,
89[[The weavers produce spidercloth and tabards in the weaving-mill. Spidercloth84 body = objective_text(_"Spidercloth Production", _(
90is needed for the construction of some buildings and clothing while tabards85[[The weavers produce spidercloth and tabards in the weaving-mill. ]] ..
91are the uniforms of soldiers. The weaving-mill needs gold yarn and spider yarn86[[Spidercloth is needed for the construction of some buildings and clothing, ]] ..
92as inputs. Spider yarn is produced by the spiderfarm while gold yarn is87[[while tabards are the uniforms of soldiers. ]] ..
93produced by the gold weaver out of gold.<br><br>88[[The weaving-mill needs gold yarn and spideryarn as raw material. ]] ..
94- Build a Weaving-Mill<br>89[[Spideryarn is produced by the spider farm, while gold yarn is produced by the gold weaver out of gold.]]) .. "<br>" ..
95- Build a Spiderfarm<br>90[[• ]] .. _[[Build a weaving-mill]] .. "<br>" ..
96- Build a Goldweaver<br>]]91[[• ]] .. _[[Build a spider farm]] .. "<br>" ..
92[[• ]] .. _[[Build a goldweaver]]
97 )93 )
98}94}
9995
100obj_make_heavy_industry_and_mining = {96obj_make_heavy_industry_and_mining = {
101 name = "obj_make_heavy_industry_and_mining",97 name = "obj_make_heavy_industry_and_mining",
102 title = _ "Build industry and mines",98 title = _ "Build industry and mines",
103 body = objective_text(_"Build industry and mines", _99 number = 5,
104[[Iron ore, gold ore and coal are mined in the respective mines. The crystal mine100 body = objective_text(_"Industry and Mines", _(
105is digging for crystal, quartz and diamond - all of them are rare materials and101[[Iron ore, gold ore and coal are mined in the respective mines. ]] ..
106very seldom found. While it searches for them, it produces a lot of stone.<br>102[[The crystal mine will dig for crystal, quartz and diamond – all of them are precious materials and ]] ..
107The ores have to be smelted in smelting works before they can be used. The103[[very rarely found. It will produce a lot of stone while searching for them.]]) .. "<br>" ..
108refined materials are then used in the weapon smithy, the armor smithy and the104_([[The ores have to be smelted at a smelting works before they can be used. ]] ..
109tool smithy.<br><br>105[[The refined materials are then used in the weapon smithy, the armor smithy and the toolsmithy.]]) .. "<br>" ..
110- Build a mine of each kind. Make sure to send geologists to the mountain first.<br>106[[• ]] .. _[[Build a mine of each type. Make sure to send geologists to the mountain first.]] .. "<br>" ..
111- Build a smelting works.<br>107[[• ]] .. _[[Build a smelting works]] .. "<br>" ..
112- Build an armor smithy and a weapon smithy.<br>108[[• ]] .. _[[Build an armor smithy and a weapon smithy]] .. "<br>" ..
113- Build a tool smithy.<br>]]109[[• ]] .. _[[Build a toolsmithy]]
114 )110 )
115}111}
116112
117obj_make_training_buildings = {113obj_make_training_buildings = {
118 name = "obj_make_training_buildings",114 name = "obj_make_training_buildings",
119 title = _"Build training buildings",115 title = _"Build training buildings for soldiers",
120 body = objective_text(_"Build training buildings to improve your soldiers", _116 number = 2,
121[[As all other tribes, the Atlanteans are also able to train soldiers: the117 body = objective_text(_"Soldier Training Buildings", _(
122dungeon trains attack - the major attribute of the Atlanteans - and the118[[Like all other tribes, the Atlanteans are also able to train soldiers: ]] ..
123labyrinth trains evasion, health points and defense. The items produced by the119[[the dungeon trains attack – the major attribute of the Atlanteans – and the labyrinth trains ]] ..
124industry are used to train better soldiers in the two training buildings.<br><br>120[[evasion, health and defense. The items produced by the industry are used to train better soldiers ]] ..
125- Build a dungeon and a labyrinth.<br>]])121[[in the two training buildings.]]) .. "<br>" ..
122[[• ]] .. _[[Build a dungeon and a labyrinth]]
123 )
126}124}
127125
128obj_horsefarm_and_warehouse = {126obj_horsefarm_and_warehouse = {
129 name = "obj_horsefarm_and_warehouse",127 name = "obj_horsefarm_and_warehouse",
130 title = _"Build a warehouse and a horsefarm",128 title = _"Build a warehouse and a horsefarm",
131 body = objective_text(_"Build a warehouse and a horsefarm", _129 number = 2,
132[[As your road network gets longer and more complicated, you should employ130 body = objective_text(_"Warehouse and Horsefarm", _(
133horses to help out your carriers. Horses are bred in horsefarms using water and131[[As your road network gets longer and more complicated, you should employ horses ]] ..
134corn. A warehouse will also help to ensure your transportation system does not132[[to help out your carriers. Horses are bred at horse farms using water and corn. ]] ..
135collapse.]])133[[A warehouse will also help to ensure that your transportation system does not collapse.]]) .. "<br>" ..
134[[• ]] .. _[[Build a warehouse]] .. "<br>" ..
135[[• ]] .. _[[Build a horse farm]])
136}136}
137137
138obj_build_ships = {138obj_build_ships = {
139 name = "obj_build_ships",139 name = "obj_build_ships",
140 title = _ "Build 3 ships to escape from the island",140 title = _ "Build 3 ships to escape from the island",
141 body = objective_text(_"Escape from the island", _141 number = 1,
142[[There is a lake at the top of the island. Build 3 ships in these waters142 body = objective_text(_"Escape From the Island", _(
143and you might be able to rescue your people when the island is swallowed143[[There is a lake at the top of the island. ]] ..
144completely by the ocean. Build a shipyard close to the lake to start144[[Build three ships in these waters and you might be able to rescue your people ]] ..
145building ships.]]145[[before the island is swallowed completely by the ocean.]]) .. "<br>" ..
146[[• ]] .. _[[Build a shipyard close to the lake to start building ships]]
146 )147 )
147}148}
148149
@@ -153,175 +154,168 @@
153-- This is an array or message descriptions154-- This is an array or message descriptions
154initial_messages = {155initial_messages = {
155{156{
156 title = _ "Proudest to the death",157 title = _ "Proud to the Death",
157 body = rt(158 body = rt(
158 h1(_"Favored by the god") ..159 h1(_"Favored by the God") ..
159 p(_160 p(_(
160[[On the hidden and lost island of Atlantis, a proud tribe settled since the161[[On the hidden and lost island of Atlantis, a proud tribe settled since the ]] ..
161world was very young. Ruled by the bloodline of King Ajanthul - the first human162[[world was very young. Ruled by the bloodline of King Ajanthul – the first human ]] ..
162to be empowered by the sea god Lutas to breathe above the sea level - and the163[[to be empowered by the sea god Lutas to breathe above sea level – and the ]] ..
163wise clerics, who provided the link to Lutas - they prospered and became164[[wise clerics, who provided the link to Lutas – they prospered and became ]] ..
164civilized.]]165[[civilized.]]
165 ) .. p(_166 )) .. p(_(
166[[This story happens during the regency of King Askandor, the 43rd successor of167[[This story is taking place during the reign of King Askandor, the 43rd successor of King Ajanthul. ]] ..
167King Ajanthul. He has been a good king, ruling Atlantis with wisdom and168[[He had been a good king, ruling Atlantis with wisdom and foresight. ]] ..
168foresight. But with age, he became afraid of dying and so he began looking for169[[But with age, he became afraid of dying and so he began looking for ]] ..
169a cure to death even though most clerics warned him. Some said, endless life170[[a cure for death even though most clerics warned him against it. ]] ..
170was only for the gods and to seek for it was forbidden.]]171[[Some said that endless life was only for the gods and that to seek for it was forbidden.]]
171 )172 ))
172 ),173 ),
173},174},
174{175{
175 title = _ "The god's disgrace",176 title = _ "Disgraced Before the God",
176 body = rt(177 body = rt(
177 h1(_"The god's punishment") ..178 h1(_"The God’s Punishment") ..
178 p(_179 p(_(
179[[But all seemed well. Only the horses seemed to feel something was wrong.180[[But all seemed well. Only the horses seemed to feel something was wrong. ]] ..
180In the nights, they went crazy and were full of fear. It was not long before the181[[During the nights, they went crazy and were full of fear. ]] ..
181horsebreeder Xydra figured out what was wrong with them: The sea level in front182[[It was not long before the horse breeder Xydra figured out what was wrong with them: ]] ..
182of their stable was rising in an ever accelerating speed.]]183[[the sea level in front of their stable was rising with ever increasing speed.]]
183 ) .. p(_184 )) .. p(_(
184[[The clerics went into their meditation and the reason for the rising water185[[The clerics retreated into meditation and the reason for the rising water was soon to be found: ]] ..
185was soon to be found: The god Lutas had lost faith in the Atlanteans because of186[[the god Lutas had lost faith in the Atlanteans because of the boldness of their king. ]] ..
186the boldness of their king. He decided to withdraw the rights that were granted187[[He decided to withdraw the rights that were granted to King Ajanthul and his children. ]] ..
187to King Ajanthul and his children. And so, he called them back below the sea188[[And so, he called them back below the sea again.]]
188again.]]189 ))
189 )
190)190)
191},191},
192{192{
193 title = _ "Uproar and confusion",193 title = _ "Uproar and Confusion",
194 body = rt(194 body = rt(
195 h1(_"Chaos emerges...") ..195 h1(_"Emerging Chaos...") ..
196 p(_196 p(_(
197[[Guilt-ridden, the king committed suicide. Without a monarch, the people197[[Guilt-ridden, the king committed suicide. ]] ..
198turned to the clerics, but those had no substantial help to offer. Most198[[Without a monarch, the people turned to the clerics, but they had no substantial help to offer. ]] ..
199accepted their fate while others tried to change the god's mind by offering199[[Most accepted their fate while others tried to change the god’s mind by offering animals in his temple. ]] ..
200animals in his temple. But to no avail...]]200[[But to no avail...]]
201 ) .. p(_201 )) .. p(_(
202[[Jundlina, the late king's daughter and the highest priestess of the god202[[Jundlina, the late king’s daughter and the highest priestess of the god was the most determined cleric. ]] ..
203was the most determined cleric. As countless offerings didn't change the203[[As countless offerings didn’t change the situation, she convinced herself that to soothe the god, ]] ..
204situation, she convinced herself that to soothe the god, an offer of great204[[an offer of great personal value was needed. So she offered him her most beloved: ]] ..
205personal value was needed. So she offered him her most beloved:205[[her husband, the father of her only child.]]
206her husband, father of her only child.]]206 )) .. p(_(
207 ) .. p(_207[[But not even this changed the mind of the god. The water kept on rising. ]] ..
208[[But not even this changed the mind of the god. The water kept on rising.208[[Nearly driven insane by guilt, pain and anger, Jundlina became a heretic: ]] ..
209Nearly driven crazy by guilt, pain and anger, Jundlina became a heretic:209[[Secretly, she gathered people of the common folk who were not in line ]] ..
210Secretly, she gathered people of the common folk who were not in line with the210[[with the decision of the clerics to accept the god’s will. ]] ..
211decision of the clerics to accept the god's will. Together with them, she set211[[Together with them, she set the temple on fire and stole a ship to flee from the god’s influence over Atlantis. ]] ..
212the temple on fire and stole a ship to flee from the god's influence of212[[This small group started praying to Satul, the fire god and the worst enemy of Lutas.]]
213Atlantis. This small group started praying to Satul, the fire god and the worst213 )) .. p(_(
214enemy of Lutas.]]214[[Leaving the dying Atlantis and their past behind, they started on a quest to ]] ..
215 ) .. p(_215[[find a place sheltered by the fire and protected from the sea.]]
216[[Leaving the dying Atlantis and their past behind, they started a quest to216 ))
217find a place sheltered by the fire and protected from the sea.]]
218 )
219)217)
220},218},
221} -- end of initial messages.219} -- end of initial messages.
222220
223first_briefing_messages = {221first_briefing_messages = {
224{222{
225 title = _ "The princess' memoir",223 title = _ "The Princess’ Memoir",
226 body = jundlina(_ "Jundlina writes down her memories", _224 body = jundlina(_ "Jundlina Writes Down Her Memories", _(
227[[We left Atlantis and sailed east. We entered the forbidden sea on the sixth225[[We left Atlantis and sailed east. ]] ..
228day without noticing any pursuers from Atlantis and without Lutas having smashed226[[We entered the forbidden sea on the sixth day without noticing any pursuers from Atlantis ]] ..
229our ship. Now, we are out of his reach. One day later, we sighted an island227[[and without Lutas having smashed our ship. Now, we are out of his reach. ]] ..
230which seems to have one of these fire spitting mountains on it. I deemed this228[[One day later, we sighted an island which seems to have one of these fire spitting mountains on it. ]] ..
231a sign from the fire god and we landed on its shore.]]229[[I deemed this a sign from the fire god and we landed on its shore.]])
232 .. "<br><br>" .. _230 .. "<br><br>" .. _(
233[[We spent the last week building two watchtowers on the mountains close to231[[We spent the last week building two watchtowers on the mountains close to our landing area; ]] ..
234our landing area; and, of course, a hall for us all. We have very talented232[[and, of course, a hall for us all. We have very talented constructors in our group – still, ]] ..
235constructors in our group - still, the buildings do not match the art we233[[the buildings do not match the art we had on Atlantis. I hope they will withstand the next rain. ]] ..
236had on Atlantis. I hope they will withstand the next rain. At least, the towers234[[At least, the towers will warn us if a ship from Atlantis follows us and if the island is inhabited, ]] ..
237will warn us if a ship from Atlantis follows us and if the island is inhabited,235[[we will see attackers a long time before they arrive.]])
238we will see attackers a long time before they arrive.]]236 .. "<br><br>" .. _(
239 .. "<br><br>" .. _237[[We have established ourselves on this island. The next step is now to make it a home. ]] ..
240[[We have established ourselves on this island. The next step is now to make it238[[I reckon we need to establish a sustainable economy and to explore our surroundings. ]] ..
241a home. I reckon we need to establish a sustainable economy and explore our239[[I called for specialists and will follow their advice.]])
242surroundings. I called for specialists and will follow their advice.]]240 )
243 )241},
244},242{
245{243 title = _ "Loftomor and Sidolus Arrive",
246 title = _ "Loftomor and Sidolus arrive",244 body = jundlina( _"Jundlina", _(
247 body = jundlina( _"Jundlina", _245[[May Satul warm you both. Loftomor, you have been the island’s most renowned architect. ]] ..
248[[May Satul warm you both. Loftomor, you have been the island's most renowned246[[Sidolus, you are a seasoned warrior and strategist. I have called you before me to seek your counsel: ]] ..
249architect. Sidolus, you are a seasoned warrior and strategist. I have called247[[what needs to be done to make this our new home?]]
250you before me to seek your counsel: What needs to be done to make this our new248 ))
251home?]]249},
252 )250{
253},251 title = _ "Loftomor Speaks",
254{252 body = loftomor(_(
255 title = _ "Loftomor speaks",253[[May Satul warm you, Jundlina! ]] ..
256 body = loftomor(_254[[The most important things for building a settlement are the building materials. ]] ..
257[[May Satul warm you, Jundlina! The most important things for building a255[[There are some trees here, so we should build housings for some woodcutters and of course also for foresters, ]] ..
258settlement are the building materials. There are some trees here, so we should256[[so we will not run out of trees. Oh, and we mustn’t forget the sawmill, ]] ..
259build housings for some woodcutters and of course also for foresters, so257[[for most buildings can’t be made out of logs alone. Stronger buildings also need stone, ]] ..
260we do not run out of trees. Oh, and we mustn't forget the sawmill, for most258[[but there is plenty to the north-east of here; ]] ..
261buildings can't be made out of trunks alone. Stronger buildings also need259[[we just need to build a quarry, and my stonemasons will go to work promptly.]]
262stone, but there is plenty to the north-east of here; we just need to build a260 )) .. new_objectives(obj_ensure_build_wares_production)
263quarry and my stonemasons will go to work promptly.]]261},
264 ) .. new_objectives(obj_ensure_build_wares_production)262{
265},263 title = _ "Sidolus Speaks",
266{
267 title = _ "Sidolus speaks",
268 body = sidolus(_264 body = sidolus(_
269[[May Satul warm you, Jundlina! I agree with what Loftomor proposes. We need265[[May Satul warm you, Jundlina! I agree with what Loftomor proposes. ]] ..
270a good supply of building materials for we have to expand our territory swiftly.266[[We need a good supply of building materials for we have to expand our territory swiftly. ]] ..
271I will not feel safe on this island as long as we have not seen all shores267[[I will not feel safe on this island as long as we have not seen all its shores it. ]] ..
272on it. I brought plenty of good men from Atlantis. The military might is268[[I brought plenty of good men from Atlantis. The military might is available. ]] ..
273available. We only need some housings to live in.]]269[[We only need some housing to live in.]]
274 ) .. new_objectives(obj_expand)270 ) .. new_objectives(obj_expand)
275}271}
276}272}
277273
278food_story_message = {274food_story_message = {
279{275{
280 title = _ "Jundlina is satisfied",276 title = _ "Jundlina is Satisfied",
281 body = jundlina(_"Jundlina's Memoirs", _277 body = jundlina(_"Jundlina’s Memoirs", _(
282[[Our building infrastructure is done and I spent some days making sure that278[[Our building infrastructure is finished and I spent some days making sure that everybody is working well together. ]] ..
283they work well together. Now, there are other pressing matters. I called279[[Now, there are other pressing matters. ]] ..
284Colionder, my personal cook, before me to get his help with sorting some things280[[I called Colionder, my personal cook, before me to get his help with sorting some things out.]]
285out.]]281 ))
286 )282},
287},283{
288{284 title = _ "Colionder Arrives",
289 title = _ "Colionder arrives",285 body = colionder(_
290 body = colionder(_286[[May Satul warm you, Jundlina. Can I be of any service to you or the god?]]
291[[May Satul warm you, Jundlina. Can I be of any service to you or the287 )
292god?]]288},
293 )289{
294},290 title = _ "Jundlina Replies",
295{291 body = jundlina(_"Jundlina", _(
296 title = _ "Jundlina replies",292[[May Satul warm you too, Colionder. ]] ..
297 body = jundlina(_"Jundlina", _293[[Yes, I wondered if there is a way that we could centralize our food production. ]] ..
298[[May Satul warm you too, Colionder. Yes, I wondered if there is not a way294[[We lose a lot of productivity because our people are accustomed to making their own food. ]] ..
299that we can centralize our food production. We lose a lot of productivity295[[I feel if we could split responsibilities, it would be better for us all. ]] ..
300because our people are accustomed to making their own food. I feel if we296[[I want your thoughts on this.]]
301could split responsibilities, it would be better for us all. I want your297 ))
302thoughts on this.]]298},
303 )299{
304},300 title = _ "Colionder is in Thought",
305{301 body = colionder(p(_(
306 title = _ "Colionder is in thought",302[[Ahh, but I think this is impossible to change. ]] ..
307 body = colionder(_303[[The preparing and eating of food is something deeply ingrained in us Atlanteans]] ..
308[[Ahh, but I think this is impossible to change. The preparing and eating of304[[ – it is a ceremony that we just need for our well-being. ]] ..
309food is something deeply ingrained in us Atlanteans - it is just a ceremony305[[So I guess we cannot take this away from the individuals completely.]])) .. p(_(
310that we need for our well being. So I guess we cannot take this away from306[[But we might find a compromise in between: for me, making bread is a troublesome task. ]] ..
311the individuals completely. But we might find a compromise in between: For me,307[[Grinding the blackroot and corn to flour and then baking the bread is tedious and boring; ]] ..
312making bread is a troublesome task: grinding the blackroot and corn to flour308[[I feel a more industrial approach would be helpful here. ]] ..
313and then baking the bread is tedious and boring: I feel a more industrial309[[I for one would love to just have fresh bread delivered to my house every day.]])) .. p(_(
314approach would be helpful here. I for one would love to just have fresh bread310[[Oooh and even more important: the smoking of fish and meat to cleanse them and improve their taste is terrible. ]] ..
315delivered to my house every day. Oooh and even more important: the smoking of311[[My house is full of smoke and stinks for weeks afterwards. ]] ..
316fish and meat to cleanse them and improve their taste is terrible. My house is312[[Don’t you think that this could be done in a special building were the side effects do not matter? ]] ..
317full of smoke and stinks for weeks after it. Don't you think that this could be313[[I think those two things would be accepted by the people ]] ..
318done in a special building were the side effects do not matter? I think those314[[and would reduce the cooking time without taking away the ritual.]]
319two things would be accepted by the people and would reduce the cooking times315 )))
320without taking away the ritual.]]316},
321 )317{
322},318 title = _ "Jundlina Agrees",
323{
324 title = _ "Jundlina agrees",
325 body = jundlina(_319 body = jundlina(_
326[[Your words sound wise to me, Colionder. So be it then.]]320[[Your words sound wise to me, Colionder. So be it then.]]
327 ) .. new_objectives(obj_make_food_infrastructure)321 ) .. new_objectives(obj_make_food_infrastructure)
@@ -330,135 +324,129 @@
330324
331food_story_ended_messages = {325food_story_ended_messages = {
332 {326 {
333 title = _ "Jundlina is satisfied",327 title = _ "Jundlina is Satisfied",
334 body = jundlina(_ "Jundlina is reviewing the reports", _328 body = jundlina(_ "Jundlina is Reviewing the Reports", _(
335[[Seems like our food production is finished and everybody is working together329[[Seems like our food production is finished and everybody is working together nicely. ]] ..
336nicely. It is really starting to feel like home here.]]330[[It is really starting to feel like home here.]]
337 )331 ))
338 }332 }
339}333}
340334
341spidercloth_messages = {335spidercloth_messages = {
342 {336 {
343 title = _"A man comes to Jundlina",337 title = _"A Man Comes to Jundlina",
344 body = opol(_338 body = opol(p(_(
345[[May Satul warm you, Jundlina. My Name is Opol and I am the highest weaver of339[[May Satul warm you, Jundlina. ]] ..
346the guild abandoning Atlantis and Lutas with you. I come with sad news indeed:340[[My Name is Opol, and I am the highest weaver of the guild abandoning Atlantis and Lutas with you. ]] ..
347We have no more spidercloth. Not a single piece is to be found in our341[[I come with sad news indeed: we have no more spidercloth. Not a single piece is to be found in our warehouses. ]] ..
348warehouses. Could you not help the weaver guild by arranging the building of a342[[Could you not help the weavers’ guild by arranging the building of a weaving-mill and a spider farm? ]] ..
349weaving-mill and a spiderfarm? The spiders deliver the finest silk and we will343[[The spiders deliver the finest silk and we will produce the finest spidercloth from it.]])) .. p(_(
350produce the finest spidercloth from it. We offer to also produce the tabards344[[We offer to also produce the tabards for young soldiers and the golden tabards for officers for you in exchange. ]] ..
351for young soldiers and the golden tabards for officers for you in exchange.345[[You will need them for sure as soon as you want to recruit new soldiers.]])))
352You will need them for sure as soon as you want to recruit new soldiers.]])
353 },346 },
354 {347 {
355 title = _ "Jundlina replies",348 title = _ "Jundlina Replies",
356 body = jundlina(_ "Jundlina replies", _349 body = jundlina(_ "Jundlina Replies", _(
357[[May Satul warm you too, Opol. I wanted to delay production of spider cloth,350[[May Satul warm you too, Opol. I wanted to delay production of spidercloth, but I understand your urgency. ]] ..
358but I understand your urgency. Your suggestion sounds fair to me, I will build351[[Your suggestion sounds fair to me, I will build your weaving-mill and spider farm. ]] ..
359your weaving-mill and spiderfarm. I will also build a goldweaver so that the352[[I will also build a goldweaver so that the golden tabards you make will not be golden by name alone.]]
360golden tabards you make will not be golden by name alone.]]353 )) .. new_objectives(obj_spidercloth_production)
361 ) .. new_objectives(obj_spidercloth_production)
362 }354 }
363}355}
364356
365spidercloth_story_ended_messages = {357spidercloth_story_ended_messages = {
366 {358 {
367 title = _ "Opol seeks out Jundlina",359 title = _ "Opol Seeks Out Jundlina",
368 body = opol(_360 body = opol(_(
369[[May Satul warm you, Jundlina!. The weaving-mill, goldweaver and spiderfarm361[[May Satul warm you, Jundlina! ]] ..
370buildings are complete and are starting their work at this very moment. The362[[The weaving-mill, goldweaver and spider farm buildings are complete ]] ..
371weaving guild is very grateful for your support and we will stand by our word363[[and are starting their work at this very moment. The weavers’ guild is very grateful for your support ]] ..
372and deliver the first tabard very soon.]]364[[and we will stand by our word and deliver the first tabard very soon.]]
373 )365 ))
374 },366 },
375 {367 {
376 title = _ "Jundlina replies",368 title = _ "Jundlina Replies",
377 body = jundlina(_369 body = jundlina(_(
378[[This is good news indeed, Opol. Our economy is developing very well. Go back370[[This is good news indeed, Opol. Our economy is developing very well. ]] ..
379to your work now, Opol, and may Satul warm you and all your guild members!]]371[[Go back to your work now, Opol, and may Satul warm you and all your guild members!]]
380 )372 ))
381 }373 }
382}374}
383375
384376
385heavy_industry_story = {377heavy_industry_story = {
386 {378 {
387 title = _ "Sidolus seeks out Jundlina",379 title = _ "Sidolus Seeks Out Jundlina",
388 body = sidolus(_380 body = sidolus(_(
389[[May Satul warm you, Jundlina. Have you considered mining for goods in the381[[May Satul warm you, Jundlina. Have you considered mining for resources in the mountains around us? ]] ..
390mountains around us? We are running short of quartz, crystal and diamonds for382[[We are running short of quartz, crystal and diamonds for our buildings. ]] ..
391our buildings. Also we could use more iron, gold and especially coal. If we383[[Also we could use more iron, gold and especially coal. If we find an ample supply of those commodities, ]] ..
392find an ample supply of those commodities, we could start producing weapons384[[we could start producing weapons and tools; this would help enormously. ]] ..
393and tools; this would help enormously. Of course, we would need smelters,385[[Of course, we would need smelters, a weapon smithy, an armor smithy and a toolsmithy. And maybe even more.]]
394a weapon smithy, an armor smithy and a tool smithy. And maybe even more.]]386 ))
395 )
396 },387 },
397 {388 {
398 title = _ "Jundlina replies",389 title = _ "Jundlina Replies",
399 body = jundlina(_"Jundlina nods", _390 body = jundlina(_"Jundlina Nods", _(
400[[I have considered this, Sidolus. I think, it is about time. We will make this391[[I have considered this, Sidolus. I think, it is about time. We will make this a priority for now. ]] ..
401a priority for now. You shall get your industry and soon!]]392[[You shall get your industry and soon!]]
402 ) .. new_objectives(obj_make_heavy_industry_and_mining)393 )) .. new_objectives(obj_make_heavy_industry_and_mining)
403 },394 },
404}395}
405396
406training_story = {397training_story = {
407 {398 {
408 title = _ "Jundlina summons Sidolus",399 title = _ "Jundlina Summons Sidolus",
409 body = jundlina(_ "Jundlina is angry", _400 body = jundlina(_ "Jundlina is Angry", _(
410[[What is this I hear, Sidolus? I received words about your soldiers401[[What is this I hear, Sidolus? I received words about your soldiers misbehaving and bullying the common folk. ]] ..
411misbehaving and bullying the common folk. What is this nonsense all about? They402[[What is this nonsense all about? They are servants for the common good and must not misuse their powers. ]] ..
412are servants for the common good and must not misuse their powers. This is403[[This is inexcusable! Explain this, if you will!]]
413inexcusable! Explain this, if you will!]]404 ))
414 )405 },
415 },406 {
416 {407 title = _ "Sidolus Seems Contrite",
417 title = _ "Sidolus seems contrite",408 body = sidolus(_(
418 body = sidolus(_409[[I agree with you and I have punished the troublemakers severely. ]] ..
419[[I agree with you and I have punished the trouble makers severely. But it is410[[But it is very difficult to keep my men quiet: they are bored and have nothing to do. ]] ..
420very difficult to keep my men quiet: they are bored and have nothing to do. I411[[I would like to ramp up their drill. ]] ..
421would like to ramp up their drill. I think more routine in their life would412[[I think more routine in their life would keep them occupied and focused on their duties. ]] ..
422keep them occupied and focused on their duties. I would need a dungeon and a413[[I would need a dungeon and a labyrinth for them. ]] ..
423labyrinth for them. I have the plans ready, but I guess they won't come414[[I have the plans ready, but I guess they won’t come cheap.]]
424cheap.]]415 ))
425 )416 },
426 },417 {
427 {418 title = _"Jundlina Replies",
428 title = _"Jundlina replies",419 body = jundlina(_(
429 body = jundlina(_420[[I do not fear the cost and labor as long as it keeps your people at bay. You shall get your buildings. ]] ..
430[[I do not fear the cost and labor as long as it keeps your people at bay. You421[[But note that I will not tolerate any rogue soldier; if similar things happen again, ]] ..
431shall get your buildings. But note that I will not tolerate any rogue soldier;422[[I will make you responsible for them. Dismissed.]]
432if similar things happen again, I will make you responsible for them.423 )) .. new_objectives(obj_make_training_buildings)
433Dismissed.]]
434 ) .. new_objectives(obj_make_training_buildings)
435 }424 }
436}425}
437426
438training_story_end = {427training_story_end = {
439 {428 {
440 title = _ "Jundlina received a letter",429 title = _ "Jundlina Received a Letter",
441 body = jundlina(_"Jundlina", _430 body = jundlina(_"Jundlina", _(
442[[I received an invitation from Sidolus. The first day of training in the newly431[[I received an invitation from Sidolus. The first day of training in the newly finished labyrinth will be tomorrow. ]] ..
443finished labyrinth will be tomorrow. The dungeon is done as well and will start432[[The dungeon is done as well and will start its work soon. I am looking forward to tomorrow; ]] ..
444its work soon. I am looking forward to tomorrow; I am very interested in how our433[[I am very interested in how our soldiers are trained, and I wonder if the additional workload ]] ..
445soldiers are trained and I wonder if the additional workload will keep them from434[[will keep them from bullying the civil population.]]
446bullying the civil population.]]435 ))
447 )
448 }436 }
449}437}
450438
451horsefarm_and_warehouse_story = {439horsefarm_and_warehouse_story = {
452 {440 {
453 title = _ "Jundlina considers the economy",441 title = _ "Jundlina Considers the Economy",
454 body = jundlina(_"Jundlina", _442 body = jundlina(_"Jundlina", p(_(
455[[People are complaining about crowded streets and slow transportation. We443[[People are complaining about crowded streets and slow transportation. ]] ..
456need to help out our carriers on the roads. I decided to build a horsefarm444[[We need to help out our carriers on the roads. ]] ..
457so that the horses can help with the heavy wares.<br>445[[I have decided to build a horse farm so that the horses can help with the heavy wares.]])) .. p(_(
458Another way to take load from our roads is to build warehouses. We have claimed446[[Another way to take load from our roads is to build warehouses. ]] ..
459the mountain now, it seems a good idea to have a warehouse on the plateau to447[[We have claimed the mountain now, it seems a good idea to have a warehouse on the plateau ]] ..
460avoid having to transport everything up and down the slopes.]]448[[to avoid having to transport everything up and down the slopes.]]
461 ) .. new_objectives(obj_horsefarm_and_warehouse)449 ))) .. new_objectives(obj_horsefarm_and_warehouse)
462 }450 }
463}451}
464452
@@ -469,21 +457,19 @@
469{457{
470 posx = 100000,458 posx = 100000,
471 posy = 0,459 posy = 0,
472 title = _ "A dangerous finding",460 title = _ "A Dangerous Discovery",
473 body = jundlina(_ "Jundlina is in thought", _461 body = jundlina(_ "Jundlina is in Thought", p(_(
474[[We found an old building, destroyed and burned by flames. I am very worried462[[We found an old building, destroyed and burned by flames. I am very worried about this discovery. ]] ..
475about this finding. The building is not of any kind I've ever seen. It is463[[The building is not of any kind I’ve ever seen. ]] ..
476certainly not designed by any Atlantean architect I've ever heard about. The464[[It is certainly not designed by any Atlantean architect I’ve ever heard about. ]] ..
477building is crude, the assemblage is sloppy. But the materials are very465[[The building is crude, the assemblage is sloppy. But the materials are very enduring: ]] ..
478enduring: the wood used for it seemed to have been burned in a strange way466[[the wood used for it seemed to have been burned in a strange way before it was used as building material]] ..
479before it was used as building material - it is hard as stone.<br><br>467[[ – it is hard as stone.]])) .. p(_(
480The implications frighten me. Are there others on this island? Where are they468[[The implications frighten me. Are there others on this island? Where are they then? ]] ..
481then? They work with fire, are they praying to Satul too? Are they friends or469[[They work with fire, are they praying to Satul too? Are they friends or foe? ]] ..
482foe? And why is the building burned down? Has this island seen war? Is a470[[And why is the building burned down? Has this island seen war? Is a war being waged on it right now?]])) .. p(_(
483war being waged on it right now?<br><br>471[[We must improve our military capabilities. If there are foes on the island, we have to be prepared when we meet them. ]] ..
484We must improve our military capabilities. If there are foes on the island, we472[[We should also enforce the fortification of our borders.]]))
485have to be prepared when we meet them. We should also enforce the fortification
486of our borders.]]
487 )473 )
488}474}
489}475}
@@ -492,14 +478,13 @@
492{478{
493 posx = 100000,479 posx = 100000,
494 posy = 0,480 posy = 0,
495 title = _ "Another building.",481 title = _ "Another Building",
496 body = jundlina(_ "Jundlina is worried", _482 body = jundlina(_ "Jundlina is Worried", _(
497[[We found one more building of this strange making. We have yet to see any of483[[We found one more building of this strange making. We have yet to see any of its builders. ]] ..
498its builders. But obviously there has been a community on this island before484[[But obviously there has been a community on this island before and obviously it was militarized. ]] ..
499and obviously it has been militarized. I have to check on our military status485[[I have to check on our military status with my generals. ]] ..
500with my generals. I will not allow that a potential enemy will find us486[[I will not allow that a potential enemy will find us unprepared.]]
501unprepared.]]487 ))
502 )
503}488}
504}489}
505490
@@ -507,15 +492,15 @@
507{492{
508 posx = 100000,493 posx = 100000,
509 posy = 0,494 posy = 0,
510 title = _ "One more building",495 title = _ "One More Building",
511 body = jundlina(_496 body = jundlina(_(
512[[And yet another of these buildings. We know now that the tribe that built497[[And yet another of these buildings. ]] ..
513them once had complete control over the island. But I am no longer so scared of498[[We know now that the tribe that built them once had complete control over the island. ]] ..
514potential enemies. We know so much of this island already and there is no trace499[[But I am no longer so scared of potential enemies. ]] ..
515of this old economy to be found. I am starting to relax, but I will not let500[[We know so much of this island already and there is no trace of this old economy to be found. ]] ..
516our guard down as we continue to explore this beautiful island. But without501[[I am starting to relax, but I will not let our guard down as we continue to explore this beautiful island. ]] ..
517obvious dangers I am feeling very much at home here already.]]502[[But without obvious dangers, I am feeling very much at home here already.]]
518 )503 ))
519}504}
520}505}
521506
@@ -526,74 +511,69 @@
526{511{
527 posx = 100000,512 posx = 100000,
528 posy = 0,513 posy = 0,
529 title = _ "The water is rising!",514 title = _ "The Water is Rising!",
530 body = jundlina(_"Jundlina", _515 body = jundlina(_"Jundlina", _(
531[[May Satul save us! Lutas is still trying to get to us. A scout informed me516[[May Satul save us! Lutas is still trying to get to us. A scout informed me that the ocean is rising quickly. ]] ..
532that the ocean is rising quickly. We have to reach higher ground and evacuate517[[We have to reach higher ground and evacuate everybody and as much wares as we can ]] ..
533everybody and as much wares from the headquarters up the mountains. How can we518[[from the headquarters up the mountains. How can we escape?]]
534escape?]]519 ))
535 )520},
536},521{
537{522 title = _ "A Young Man Approaches",
538 title = _ "A young man approaches",523 body = ostur(_(
539 body = ostur(_524[[May Satul warm you, Jundlina. My name is Ostur and I construct ships. ]] ..
540[[May Satul warm you, Jundlina. My name is Ostur and I construct ships. I have525[[I have invented a new kind of ship: smaller than those we are used to, but much sturdier. ]] ..
541invented a new kind of ship: smaller than those we are used to, but much526[[If we build them correctly, I am confident that we can sail a much longer distance with them ]] ..
542sturdier. If we build them correctly, I am confident that we can go with them527[[and maybe escape from Lutas’ influence.]]
543a much longer distance and maybe escape from Lutas' influence.]]528 ))
544 )529},
545},530{
546{531 title = _ "Jundlina Replies",
547 title = _ "Jundlina replies",532 body = jundlina(_ "Jundlina", _(
548 body = jundlina(_ "Jundlina", _533[[Ostur, we have no time. The water rises too fast, and if we build the ships on the shore ]] ..
549[[Ostur, we have no time. The water rises too fast and if we build the ships on534[[they will vanish in the sea before they can float. I fear we are doomed!]]
550shore they will vanish in the sea before they can float. I fear we are doomed!]]535 )),
551 ),
552},536},
553{537{
554 posx = 100000,538 posx = 100000,
555 posy = 0,539 posy = 0,
556 title = _"Ostur seems confident",540 title = _"Ostur Seems Confident",
557 pre_func = function()541 pre_func = function()
558 local lake_field = map:get_field(75,80)542 local lake_field = map:get_field(75,80)
559 p1:reveal_fields(lake_field:region(10))543 p1:reveal_fields(lake_field:region(10))
560 scroll_smoothly_to(lake_field)544 scroll_smoothly_to(lake_field)
561 sleep(200)545 sleep(200)
562 end,546 end,
563 body = ostur(_547 body = ostur(_(
564[[A friend of mine explored the island on his own and he told me of a big lake548[[A friend of mine explored the island on his own and he told me of a big lake at the top of the mountain. ]] ..
565at the top of the mountain. I suggest we build the ships in this lake and wait549[[I suggest we build the ships in this lake and wait until the island drowns beneath us. Then we can sail away. ]] ..
566until the island drowns beneath us. Then we can sail away. It is a bold plan,550[[It is a bold plan, but I think it could work.]]
567but I think, it could work.]]551 ))
568 )
569},552},
570{553{
571 title = _ "Jundlina replies",554 title = _ "Jundlina Replies",
572 body = jundlina(_555 body = jundlina(p(_(
573[[Your red hair is a signal from the fire god. I will trust you and support your556[[Your red hair is a signal from the fire god. I will trust you and support your plan. ]] ..
574plan. Our survival lays in your hands now, Ostur.557[[Our survival lies in your hands now, Ostur.]])) .. p(_(
575<br><br>Swift now, we need a house for Ostur next to the lake and we need558[[Swift now, we need a house for Ostur next to the lake, and we need planks, logs and spidercloth ]] ..
576planks, trunks and spidercloth for the construction there. Forget about559[[for the construction there. Forget about everything else, ]] ..
577everything else, we need those wares on top of the mountain before our560[[we need those wares on top of the mountain before our warehouses are all swallowed by the sea.]]
578warehouses are all swallowed by the sea.]]561 ))) .. new_objectives(obj_build_ships)
579 ) .. new_objectives(obj_build_ships)
580}562}
581}563}
582564
583scenario_won = {565scenario_won = {
584 {566 {
585 title = _ "Jundlina is relieved",567 title = _ "Jundlina is Relieved",
586 body = jundlina(_"Jundlina", _568 body = jundlina(_"Jundlina", _(
587[[Praise Satul! Ostur, the young ship builder did it. We have three ships -569[[Praise Satul! Ostur, the young ship builder did it. ]] ..
588never have I seen sturdier ones - with enough room to carry all of us and some570[[We have three ships – never have I seen sturdier ones – with enough room to carry all of us and some wares too. ]] ..
589wares too. And this rescue came just in time: Lutas is about to swallow the rest571[[And this rescue came just in time: Lutas is about to swallow the rest of this island, ]] ..
590of this island, the water rises faster by the hour. But we can make our escape572[[the water rises faster by the hour. But we can make our escape now and start over in some country farther away... ]] ..
591now and start over in some country farther away... I expect a long journey, but573[[I expect a long journey, but we will find the land of Satul in the end. ]] ..
592we will find the land of Satul in the end. This is what I promised my people.574[[This is what I promised my people. And myself.]]
593And myself.]]575 )) .. rt("<p font-size=10> <br></p>" .. h1(_ "Congratulations") .. p(_
594 ) .. rt(h1(_ "Congratulations") .. p(_576[[You have won this mission. Continue with the next one or keep playing for as long as you like.]]
595[[You have won this mission. Continue with the next one or keep playing for
596as long as you like.]]
597 )),577 )),
598 },578 },
599}579}
600580
=== modified file 'campaigns/cconfig'
--- campaigns/cconfig 2011-10-03 11:44:28 +0000
+++ campaigns/cconfig 2014-03-05 18:47:45 +0000
@@ -24,25 +24,25 @@
24[global]24[global]
25version = 625version = 6
26# Barbarians Introduction26# Barbarians Introduction
27campname0=_"Barbarians - The second Empire"27campname0=_"Barbarians – The Second Empire"
28campsect0=barbariantut28campsect0=barbariantut
29campdiff0=129campdiff0=1
30campdiffdescr0=_"Easy. Introduces the Barbarians"30campdiffdescr0=_"Easy. Introduces the Barbarians"
31campdesc0=_"When Chat’Karuth died, he was an old man, father to three strong and ambitious sons and warlord to an army that could match any enemy willing to rise against the ancient forests. Though at the end of his glorious reign, Chat’Karuth left his eldest son, Thron, to succeed him as the tribe's warlord – a decision that left his two brothers unsatisfied. The old warlord knew that. As his father instructed him, Thron left the capital of Al’thunran, the home of the Throne Among the Trees and withdrew his forces to the high hills where he buried the corpse of his father. There he swore to the gods and his father's spirit that he’d return to re-established order. While his brothers raged in blind war against Thron and the few forces he left to secure the borders of Al’thunran, the young warlord seeks to reunite his ambitious brothers and force the tribes to march once again under a common banner."31campdesc0=_"When Chat’Karuth died, he was an old man, father to three strong and ambitious sons, and warlord to an army that could match any enemy willing to rise against the ancient forests. Though at the end of his glorious reign, Chat’Karuth chose his eldest son, Thron, to succeed him as the tribe’s warlord – a decision that left his two brothers unsatisfied. The old warlord knew that. As his father instructed him, Thron left the capital of Al’thunran, the home of the Throne Among the Trees, and withdrew his forces to the high hills where he buried the corpse of his father. There he swore to the gods and his father’s spirit that he’d return to re-established order. While his brothers have raged blind war against Thron and the few forces he left to secure the borders of Al’thunran, the young warlord seeks to reunite his ambitious brothers and force the tribes to march once again under a common banner."
32campvisi0=132campvisi0=1
33# Empire Introduction33# Empire Introduction
34campname1=_"Empire - The Months of Exile"34campname1=_"Empire – The Months of Exile"
35campsect1=empiretut35campsect1=empiretut
36campdiff1=136campdiff1=1
37campdiffdescr1=_"Easy. Introduces the Empire"37campdiffdescr1=_"Easy. Introduces the Empire"
38campdesc1=_"Six months ago, Lutius - a young general of the Empire - was sent with 150 soldiers to the frontier beyond the northern forests where Barbarian tribes were crossing onto land held by the Empire. His task was to defend the Empire's land. At first, everything was calm. He even talked to a few barbarian children and thought about a peaceful life - side by side with this archaic folk. He began to feel safer and his army began to drop their attention off the potential enemy. That was their undoing. One night in March his unprepared army was attacked by 100 barbarian footmen and was completely scattered. Only with his bare life he and a handful of his soldiers survived."38campdesc1=_"Six months ago, Lutius – a young general of the Empire – was sent with 150 soldiers to the frontier beyond the northern forests where Barbarian tribes were crossing onto land held by the Empire. His task was to defend the Empire’s land. At first, everything was calm. He even talked to a few barbarian children and thought about a peaceful life – side by side with this archaic folk. He began to feel safer and his army began to drop their attention off the potential enemy. That was their undoing. One night in March his unprepared army was attacked by 100 barbarian footmen and was completely scattered. Only with his bare life he and a handful of his soldiers survived."
39campvisi1=039campvisi1=0
40# Atlantean Introduction40# Atlantean Introduction
41campname2=_"Atlanteans - The Run for the Fire"41campname2=_"Atlanteans – The Run for the Fire"
42campsect2=atlanteans42campsect2=atlanteans
43campdiff2=243campdiff2=2
44campdiffdescr2=_"Challenging. Introduces the Atlanteans"44campdiffdescr2=_"Challenging. Introduces the Atlanteans"
45campdesc2=_"When the God lost faith in the Atlanteans and drowned their island, one woman's struggle for justice and a second chance for her people would become the stuff of legends. Leading the remaining Atlanteans into a new future in a new part of the World, Jundlina became the most powerful human of her time, but at a high cost: her humanity and soul."45campdesc2=_"When their God lost faith in the Atlanteans and drowned their island, one woman’s struggle for justice and a second chance for her people would become the stuff of legends. Leading the remaining Atlanteans into a new future in a new part of the World, Jundlina became the most powerful human of her time, but at a high cost: her humanity and soul."
46campvisi2=046campvisi2=0
47cnewvisi2=empiretut0147cnewvisi2=empiretut01
4848
@@ -61,29 +61,29 @@
61#####61#####
6262
63[barbariantut00]63[barbariantut00]
64name=_"01 - Eyes in the Dark"64name=_"01 – Eyes in the Dark"
65visible=165visible=1
66path="campaigns/t01.wmf"66path="campaigns/t01.wmf"
6767
68[barbariantut01]68[barbariantut01]
69name=_"02 - A Place to call Home"69name=_"02 – A Place to Call Home"
70visible=070visible=0
71path="campaigns/t02.wmf"71path="campaigns/t02.wmf"
7272
73[barbariantut02]73[barbariantut02]
74name=_"03 - This Land is our Land"74name=_"03 – This Land is Our Land"
75newvisi="campsect1"75newvisi="campsect1"
76visible=076visible=0
77path="campaigns/t03.wmf"77path="campaigns/t03.wmf"
7878
7979
80[empiretut00]80[empiretut00]
81name=_"01 - The Strands of Malac' Mor"81name=_"01 – The Strands of Malac’ Mor"
82visible=182visible=1
83path="campaigns/emp01.wmf"83path="campaigns/emp01.wmf"
8484
85[empiretut01]85[empiretut01]
86name=_"02 - An Outpost for Exile"86name=_"02 – An Outpost for Exile"
87visible=087visible=0
88path="campaigns/emp02.wmf"88path="campaigns/emp02.wmf"
8989
@@ -95,7 +95,7 @@
9595
9696
97[atlanteans00]97[atlanteans00]
98name=_"01 - From Nemesis to Genesis"98name=_"01 – From Nemesis to Genesis"
99visible=199visible=1
100path="campaigns/atl01.wmf"100path="campaigns/atl01.wmf"
101101
102102
=== modified file 'campaigns/emp01.wmf/elemental'
--- campaigns/emp01.wmf/elemental 2010-11-18 10:39:43 +0000
+++ campaigns/emp01.wmf/elemental 2014-03-05 18:47:45 +0000
@@ -4,7 +4,7 @@
4map_h=644map_h=64
5nr_players=15nr_players=1
6world=desert6world=desert
7name=_"01 - The Strands of Malac' Mor"7name=_"01 – The Strands of Malac’ Mor"
8author=Nasenbaer8author=Nasenbaer
9descr=_"After losing an important battle against the barbarians which lead to the loss of a big part of the Empire's territory, Lutius leaves Fremil to start a new life. But his destiny takes his ship into a heavy storm, which nearly destroys it. Only with a lot of luck he manages to beach his damaged ship on an unknown desert strand and save his people. For now."9descr=_"After losing an important battle against the barbarians which lead to the loss of a big part of the Empire’s territory, Lutius leaves Fremil to start a new life. But his destiny takes his ship into a heavy storm, which nearly destroys it. Only with a lot of luck he manages to beach his damaged ship on an unknown desert strand and save his people. For now."
10background="tribes/empire/pics/campmap-emp01.jpg"10background="tribes/empire/pics/campmap-emp01.jpg"
1111
=== modified file 'campaigns/emp01.wmf/scripting/texts.lua'
--- campaigns/emp01.wmf/scripting/texts.lua 2012-12-16 19:08:16 +0000
+++ campaigns/emp01.wmf/scripting/texts.lua 2014-03-05 18:47:45 +0000
@@ -1,181 +1,232 @@
1-- =========================
2-- Some formating functions
3-- =========================
4
5use("aux", "formatting")
6use("aux", "format_scenario")
7
8function lutius(title, text)
9 return speech("map:Lutius.png", "2F9131", title, text)
10end
11function saledus(title, text)
12 return speech("map:Saledus.png", "8F9131", title, text)
13end
14function amalea(title, text)
15 return speech("map:Amalea.png", "AF7511", title, text)
16end
17
1-- =======================================================================18-- =======================================================================
2-- Texts - No logic here19-- Texts - No logic here
3-- =======================================================================20-- =======================================================================
421
522
23-- ===========
24-- objectives
25-- ===========
26obj_build_barracks = {
27 name = "build_barracks",
28 title=_"Build a barracks",
29 number = 1,
30 body = objective_text(_"Barracks",
31[[• ]] .. _[[Build a barracks at the red house symbol on the east side of the forests, to the right of your provisional headquarters.]]),
32}
33
34obj_build_lumberjack = {
35 name = "build_lumberjack",
36 title=_"Build a lumberjack’s house",
37 number = 1,
38 body = objective_text(_"Lumberjack’s House",
39[[• ]] .. _[[Build a lumberjack’s house at the red house symbol, south of your provisional headquarters.]] .. "<br><br>" ..
40[[→ ]] .. _([[Cutting down enough trees for more buildings will take a while. ]] ..
41[[You can speed the game up by using PAGE UP and slow it down again with PAGE DOWN.]])),
42}
43
44obj_build_sawmill_and_lumberjacks = {
45 name = "build_sawmill_and_lumberjacks",
46 title=_"Build 2 lumberjack’s houses and a sawmill",
47 number = 3,
48 body = objective_text(_"Two Lumberjack’s Houses and a Sawmill",
49[[• ]] .. _[[Build two more lumberjack’s houses and a sawmill as soon as there is enough space for them.]]),
50}
51
52obj_build_forester = {
53 name = "build_forester",
54 title=_"Build a forester’s house",
55 number = 1,
56 body = objective_text(_"Forester’s House",
57[[• ]] .. _[[Build a forester’s house to preserve the wood resources of this island.]]),
58}
59
60obj_build_quarry = {
61 name = "build_quarry",
62 title=_"Build a quarry",
63 number = 5,
64 body = objective_text(_"Quarry",
65[[• ]] .. _[[Build a quarry in the south to cut some stones and marble out of the rocks.]] .. "<br><br>" ..
66[[→ ]] .. _[[These might be used for future buildings.]]),
67}
68
69
70
6-- ==================71-- ==================
7-- Texts to the user72-- Texts to the user
8-- ==================73-- ==================
9diary_page_1 = {74diary_page_1 = {
10 title =_ "A dark night",75 title =_ "A Dark Night",
11 body="<rt><p font-size=24 font-face=DejaVuSerif font-weight=bold font-color=2F9131>" ..76 body=lutius(_"Diary of Lutius",
12 _"Diary of Lutius" ..77 _([[What has become of our Empire? I really ask this question – why did my king forbid me ]] ..
13 "</p></rt><rt image=map:Lutius.png><p line-spacing=3 font-size=12><br>" ..78[[from fighting against that monstrous barbarian tribe, who first acted as a peaceful friend ]] ..
14 _[[ "What has become of our Empire? I really ask this question - why did my king forbid me from fighting against that monsterous barbarian tribe, who first acted as a peaceful friend and then attacked my army in the darkest night?<br> With an army of 150 men, I was assigned to patrol on our northern frontier, which lies near the Galdin Mountains in a great, beautiful and ancient forest. Soon, we met a barbarian tribe, which at first was friendly. A few of my men even traded with them and their kids came to us, to admire our clean and tidy uniforms and weapons.<br> But in our fifth night in that region, they attacked us with no reason. I lost dozens of good men, and found myself imprisoned and brought to their chieftain. He spat at me, mocked me and told me to leave this land forever. He did not want new land and did not want our land, but he told me that THIS forest was their land - and would stay theirs until the ghosts take the last man of his folk!<br> Three weeks later, I came back to Fremil to speak with our king. He was furious at the Barbarians, yet disallowed an attack of these tribes. He believed that our army was too weak to survive in a war against the barbarians.<br> Still, I saw no way that I could erase my shame - without fighting against the Barbarians. So I left Fremil by boat to find myself a new world, and a new life, somewhere in the south. Now I am sailing on the perl-gulf with my family, some of my friends and a few of my best warriors." ]] ..79[[and then attacked my army in the darkest night?]]) .. "<br><br>" ..
15 "</p></rt>",80_([[With an army of 150 men, I was assigned to patrol on our northern frontier, ]] ..
81[[which lies near the Galdin Mountains in a great, beautiful and ancient forest. ]] ..
82[[Soon, we met a barbarian tribe, which at first was friendly. A few of my men even traded with them ]] ..
83[[and their kids came to us, to admire our clean and tidy uniforms and weapons.]]) .. "<br><br>" ..
84_([[But during our fifth night in that region, they attacked us with no reason. ]] ..
85[[I lost dozens of good men, and found myself imprisoned and brought to their chieftain. ]] ..
86[[He spat at me, mocked me and told me to leave this land forever. ]] ..
87[[He did not want new land and did not want our land, but he told me that THIS forest was their land]] ..
88[[ – and it would stay theirs until the ghosts took the last man of his folk!]]) .. "<br><br>" ..
89_([[Three weeks later, I returned to Fremil to speak with our king. ]] ..
90[[He was furious at the Barbarians, yet forbade any attack on these tribes. ]] ..
91[[He believed that our army was too weak to survive in a war against the barbarians.]]) .. "<br><br>" ..
92_([[Still, I saw no way that I could erase my shame without fighting against these barbarians. ]] ..
93[[So, I left Fremil by boat to find a new world and a new life for myself, somewhere in the south. ]] ..
94[[Now I am sailing on the perl-gulf with my family, some of my friends and a few of my best warriors.]])),
16 w=500,95 w=500,
17 posy=1,96 posy=1,
18}97}
1998
20diary_page_2 = {99diary_page_2 = {
21 title=_"The rough sea",100 title=_"The Rough Sea",
22 body="<rt><p font-size=24 font-face=DejaVuSerif font-weight=bold font-color=2F9131>" ..101 body= lutius(_"Diary of Lutius",
23 _"Diary of Lutius" ..102 _([[It seems as if sailing on the perl-gulf was one of our biggest mistakes. ]] ..
24 "</p></rt><rt image=map:Lutius.png><p line-spacing=3 font-size=12><br>" ..103[[Nature was against us and drove us into a dark, wild storm. ]] ..
25 _[[ "It seems as if sailing on the perl-gulf was one of our biggest mistakes. Nature was against us and drove us into a dark, wild storm. I really don't know how many hours have passed since the waves rose higher than our boat, but still it would be suicide to go outside.<br> Our ship is badly damaged and is taking in more and more water. We can thank the Gods if we survive this black night with our lives." ]] ..104[[I really don’t know how many hours have passed since the waves rose higher than our boat, ]] ..
26 "</p></rt>",105[[but still it would be suicide to go outside.]]) .. "<br><br>" ..
106_([[Our ship is badly damaged and is taking in more and more water. ]] ..
107[[We can thank the Gods if we survive this black night with our lives.]])),
27 w=400,108 w=400,
28 posy=1,109 posy=1,
29}110}
30111
31diary_page_3 = {112diary_page_3 = {
32 title=_"Survivor",113 title=_"Survivor",
33 body="<rt><p font-size=24 font-face=DejaVuSerif font-weight=bold font-color=2F9131>" ..114 body= lutius(_"Diary of Lutius",
34 _"Diary of Lutius" ..115 _([[Finally, the Gods were with us!]]) .. "<br><br>" ..
35 "</p></rt><rt image=map:Lutius.png><p line-spacing=3 font-size=12><br>" ..116_([[We landed on an unknown coast and found peaceful rest under the palm trees growing at the shore. ]] ..
36 _[[ "Finally, the Gods were with us!<br> We landed on an unknown coast and found peaceful rest under the palm trees growing at the shore. But that is about as good as it gets. The truth is:<br> when I woke up this morning, I saw nothing more than sand around us.<br> It really seems as if we landed under the only palm trees existing in this far-away sandy desert. I fear we won't find the help we need to get our ship repaired in good time." ]] ..117[[But that is about as good as it gets. The truth is: when I woke up this morning, I saw nothing but sand around us.]]) ..
37 "</p></rt>",118"<br><br>" ..
119_([[It really seems as if we have landed under the only palm trees existing in this far-away sandy desert. ]] ..
120[[I fear we won’t find the help we need to get our ship repaired in good time.]])),
38 w=400,121 w=400,
39 posy=1,122 posy=1,
40}123}
41124
42saledus_1 = {125saledus_1 = {
43 title=_"A foreboding",126 title=_"A Foreboding",
44 body="<rt><p font-size=24 font-face=DejaVuSerif font-weight=bold font-color=8F9131>" ..127 body= saledus(_"Saledus looks around nervously...",
45 _"Saledus looks around nervously..." ..128 _([[Sire, I fear we are not safe in this foreign land. ]] ..
46 "</p></rt><rt image=map:Saledus.png><p line-spacing=3 font-size=12><br>" ..129[[Who knows what terrible creatures live beyond this forest, in that mighty desert? ]] ..
47 _[[ "Sire, I fear we are not safe in this foreign land. Who knows what terrible creatures live beyond this forest, in that mighty desert? What if these creatures enter the woods and await the time to attack us?<br> Well, perhaps my fear is misguided, but it can't be wrong to keep watch in the forests - so that we can be sure to see any potential enemies before they can see us.<br> We really should build a barracks in the eastern portion of the forest. Then one of us can keep watch in the darkness and keep us safe from these creatures."<br><br>-- NEW OBJECTIVE --<br> ]] ..130[[What if these creatures enter the woods and await the time to attack us?]]) .. "<br><br>" ..
48 _"* Build a barracks at the red house symbol on the east side of the forests, to the right of your provisional headquarters." ..131_([[Well, perhaps my fear is misguided, but it can’t be wrong to keep watch in the forests]] ..
49 "</p></rt>",132[[ – so that we can be sure to see any potential enemies before they can see us.]]) .. "<br><br>" ..
133_([[We really should build a barracks in the eastern portion of the forest. ]] ..
134[[Then one of us can keep watch in the darkness and keep us safe from these creatures.]]))
135.. new_objectives(obj_build_barracks),
50 w=400,136 w=400,
51}137}
52138
53139
54saledus_2 = {140saledus_2 = {
55 title=_"Safe for now",141 title=_"Safe For Now",
56 body="<rt><p font-size=24 font-face=DejaVuSerif font-weight=bold font-color=8F9131>" ..142 body= saledus(_"Saledus speaks with a sigh of relief...",
57 _"Saledus speaks with a sigh of relief..." ..143 _([[Sire, I saw that the construction of the barracks was completed, ]] ..
58 "</p></rt><rt image=map:Saledus.png><p line-spacing=3 font-size=12><br>" ..144[[so I have assigned one of my best soldiers to it to keep watch on the desert.]]) .. "<br><br>" ..
59 _[[ "Sire, I saw that the construction of the barracks was complete, so I assigned one of my best soldiers to it to keep watch on the desert.<br> This is a good step forward. Now we can feel a bit safer and can look forward to repair our ship." ]] ..145_([[This is a good step forward. Now we can feel a bit safer and can look forward to repairing our ship.]])),
60 "</p></rt>",
61 w=400,146 w=400,
62}147}
148
63amalea_1 = {149amalea_1 = {
64 title=_"Young Amalea",150 title=_"Young Amalea",
65 body="<rt><p font-size=24 font-face=DejaVuSerif font-weight=bold font-color=AF7511>" ..151 body= amalea(_"Amalea smiles...",
66 _"Amalea smiles..." ..152 _([[Hey Lutius, I just met Saledus outside.]]) .. "<br><br>" ..
67 "</p></rt><rt image=map:Amalea.png><p line-spacing=3 font-size=12><br>" ..153_([[He told me about the barracks. Well, I am not one of those girls who think we need more barracks]] ..
68 _[[ "Hey Lutius, I just met Saledus outside.<br> He told me about the barracks. Well, I am not one of those girls who think we need more barracks - instead, we might concentrate on other things now.<br> It is absolutely clear that we need wood to repair our ship. So, I walked through the forest yesterday and found a nice place for a lumberjack's house, south of our provisional headquarters."<br><br>-- NEW OBJECTIVE --<br> ]] ..154[[ – instead, we might concentrate on other things now.]]) .. "<br><br>" ..
69 _(155_([[It is absolutely clear that we need wood to repair our ship. ]] ..
70 "* Build a lumberjack's house at the red house symbol, south of your provisional headquarters. " ..156[[So, I walked through the forest yesterday and found a nice place for a lumberjack’s house, ]] ..
71 "Cutting down enough trees for more buildings will take a while. You can " ..157[[south of our provisional headquarters.]]))
72 "speed the game up using PAGE UP and slow it down again with PAGE DOWN."158.. new_objectives(obj_build_lumberjack),
73 ) ..
74
75 "</p></rt>",
76 w=400,159 w=400,
77}160}
78161
79amalea_2 = {162amalea_2 = {
80 title=_"Young Amalea",163 title=_"Young Amalea",
81 body="<rt><p font-size=24 font-face=DejaVuSerif font-weight=bold font-color=AF7511>" ..164 body= amalea(_"Amalea recommends...",
82 _"Amalea recommends..." ..165 _([[Hey Lutius, I got the message that our first lumberjack has started his work today. ]] ..
83 "</p></rt><rt image=map:Amalea.png><p line-spacing=3 font-size=12><br>" ..166[[Perhaps it would be a good idea to wait until he cleans enough space for constructing two more lumberjack’s houses, ]] ..
84 _[[ "Hey Lutius, I got the message that our first lumberjack started his work today. Perhaps it would be a good idea to wait until he cleans enough space for building up two further lumberjack's houses, so that we can harvest the trunks faster.<br> But unfortunately the trunks are useless for repairing our ship - we need refined lumber, like every ship and every bigger building needs, too. So we should build up a sawmill - as soon as we have enough space for this."<br><br>-- NEW OBJECTIVE --<br> ]] ..167[[so that we can harvest the logs faster.]]) .. "<br><br>" ..
85 _"* Build two more lumberjack's houses and a sawmill as soon as there is enough space for them." ..168_([[But unfortunately the logs are useless for repairing our ship – we need refined lumber, ]] ..
86 "</p></rt>",169[[like every ship and every bigger building needs, too. ]] ..
170[[So we should build a sawmill – as soon as we have enough space for this.]]))
171.. new_objectives(obj_build_sawmill_and_lumberjacks),
87 w=400,172 w=400,
88}173}
89174
90amalea_3 = {175amalea_3 = {
91 title=_"Young Amalea",176 title=_"Young Amalea",
92 body="<rt><p font-size=24 font-face=DejaVuSerif font-weight=bold font-color=AF7511>" ..177 body= amalea(_"Amalea comes in...",
93 _"Amalea comes in..." ..178 _([[Hi Lutius, I’ve got two important things to talk about... First the good news:]]) .. "<br><br>" ..
94 "</p></rt><rt image=map:Amalea.png><p line-spacing=3 font-size=12><br>" ..179_([[I noticed that the construction of the sawmill is complete, ]] ..
95 _[[ "Hi Lutius, I've got two important things to talk about... First the good news:<br> I saw that the construction of the sawmill is complete, so we can begin to refine the trunks that the lumberjacks are harvesting into lumber.<br> But that's just about the only positive thing I know to talk about. The bad news is that our lumberjacks harvest at an unbelievable speed. There are almost no trees left on this island.<br> Lutius, these trees provide shelter from the sandstorms from the desert, shade on the hot days and they are the home of so many gentle animals. We shouldn't leave this island a complete desert.<br> Lutius, I beg you: find someone who takes care about planting new trees."<br><br>-- NEW OBJECTIVE --<br> ]] ..180[[so we can begin to refine the logs that the lumberjacks are harvesting into lumber.]]) .. "<br><br>" ..
96 _"* Build a forester's house to preserve the wood resources of this island." ..181_([[But that’s just about the only positive thing I know to talk about. ]] ..
97 "</p></rt>",182[[The bad news is that our lumberjacks harvest at an incredible speed. ]] ..
183[[There are almost no trees left on this island.]]) .. "<br><br>" ..
184_([[Lutius, these trees provide shelter from the sandstorms that sweep in from the desert ]] ..
185[[and shade on the hot days, and they are the home of so many gentle animals. ]] ..
186[[We shouldn’t leave this island a complete desert.]]) .. "<br><br>" ..
187_([[Lutius, I beg you: find someone who takes care of planting new trees.]]))
188.. new_objectives(obj_build_forester),
98 w=400,189 w=400,
99}190}
100191
101saledus_3 = {192saledus_3 = {
102 title=_"Thinking about the future",193 title=_"Thinking About the Future",
103 body="<rt><p font-size=24 font-face=DejaVuSerif font-weight=bold font-color=8F9131>" ..194 body= saledus(_"Saledus notes...",
104 _"Saledus notes..." ..195 _([[Hey, my good old friend. I just thought about the rocks standing on the south shore of this land. ]] ..
105 "</p></rt><rt image=map:Saledus.png><p line-spacing=3 font-size=12><br>" ..196[[Perhaps we could cut out some useful hard stones and beautiful marble.]]) .. "<br><br>" ..
106 _[[ "Hey, my good old friend. I just thought about the rocks standing on the south shore of this land. Perhaps we could cut out some useful hard stones and beautiful marble.<br> The repair of our ship will take a few weeks, anyway, and the resources we harvest now might be the base of strong and big buildings in another land."<br><br>-- NEW OBJECTIVE --<br> ]] ..197_([[The repair of our ship will take a few weeks, anyway, and the resources we harvest now ]] ..
107 _"* Build a quarry in the south to cut some stones and marble out of the rocks.<br> These might be used for future buildings." ..198[[might be the base of strong and big buildings in another land.]]))
108 "</p></rt>",199.. new_objectives(obj_build_quarry),
109 w=400,200 w=400,
110}201}
111202
112saledus_4 = {203saledus_4 = {
113 title=_"A step forward",204 title=_"A Step Forward",
114 body="<rt><p font-size=24 font-face=DejaVuSerif font-weight=bold font-color=8F9131>" ..205 body= saledus(_"Saledus looks promising...",
115 _"Saledus looks promising..." ..206 _([[Hey Lutius, today we got a lot closer to our first castle. ]] ..
116 "</p></rt><rt image=map:Saledus.png><p line-spacing=3 font-size=12><br>" ..207[[The quarry to the south began its work today and will soon provide us with stones and beautiful marble.]]) .. "<br><br>" ..
117 _[[ "Hey Lutius, today we got a lot closer to our first castle. The quarry to the south began its work today and will soon provide us with stones and beautiful marble.<br> Now we truly can look forward to settling down on another island." ]] ..208_([[Now we truly can look forward to settling down on another island.]])),
118 "</p></rt>",
119 w=400,209 w=400,
120}210}
121211
122diary_page_4 = {212diary_page_4 = {
123 title=_"Mission Complete",213 title=_"Mission Complete",
124 body="<rt image=map:Lutius.png><p line-spacing=3 font-size=12><br>" ..214 body= lutius(
125_[[ "Today I got the message that our ship is completely repaired. At the moment my people are loading everything onto our newly repaired ship, hoping it will serve us better than last time.<br> Tonight will be our last night on this island. Tomorrow morning we will leave, searching for a new place for our exile.<br> I still wonder if we will ever see Fremil again.<br><br>--------------------- VICTORY! ----------------------<br><br> You have completed this mission. You may continue playing if you wish, otherwise move on to the next mission." ]] ..215_([[Today I got the message that our ship is completely repaired. ]] ..
126"</p></rt>",216[[At the moment, my people are loading everything onto our newly repaired ship, ]] ..
217[[hoping it will serve us better than last time.]]) .. "<br><br>" ..
218_([[Tonight will be our last night on this island. ]] ..
219[[Tomorrow morning we will leave, searching for a new place for our exile.]]) .. "<br><br>" ..
220_([[I still wonder if we will ever see Fremil again.]])) ..
221 objective_text(_"Victory", _
222[[You have completed this mission. You may continue playing if you wish, otherwise move on to the next mission.]]
223 ),
127 posy=1224 posy=1
128}225}
129226
130safe_peninsula = {227safe_peninsula = {
131 title=_"Safe Peninsula",228 title=_"Safe Peninsula",
132 body="<rt><p font-size=24 font-face=DejaVuSerif font-weight=bold font-color=2F9131>" ..229 body= saledus(_"Saledus speaks:",
133 _"Saledus speaks:" ..230 _[[You have made this peninsula a very secure place. It is time to move on!]])
134 "</p></rt><rt image=map:Saledus.png><p line-spacing=3 font-size=12><br>" ..
135 _[[ "You have made this peninsula a very secure place. It is time to move on!" ]] ..
136 "</p></rt>"
137}
138
139-- ===========
140-- objectives
141-- ===========
142obj_build_barracks = {
143 name = "build_barracks",
144 title=_"Build a barracks",
145 body= "<rt><p>" ..
146 _"* Build a barracks at the red house symbol on the east side of the forests, to the right of your provisional headquarters." ..
147 "</p></rt>"
148}
149obj_build_lumberjack = {
150 name = "build_lumberjack",
151 title=_"Build a lumberjack's house",
152 body= "<rt><p>" ..
153 _(
154 "* Build a lumberjack's house at the red point, south of your provisional headquarters. " ..
155 "Cutting down enough trees for more buildings will take a while. You can " ..
156 "speed the game up using PAGE UP and slow it down again with PAGE DOWN."
157 ) ..
158 "</p></rt>"
159}
160obj_build_sawmill_and_lumberjacks = {
161 name = "build_sawmill_and_lumberjacks",
162 title=_"Build two lumberjack's houses and a sawmill",
163 body="<rt><p>" ..
164 _"* Build two more lumberjack's houses and a sawmill as soon as there is enough space for them." ..
165 "</p></rt>"
166}
167obj_build_forester = {
168 name = "build_forester",
169 title=_"Build a forester's house",
170 body="<rt><p>" ..
171 _"* Build a forester's house to preserve the wood resources of this island." ..
172 "</p></rt>"
173}
174obj_build_quarry = {
175 name = "build_quarry",
176 title=_"Build a quarry",
177 body="<rt><p>" ..
178 _"* Build a quarry in the south to cut some stones and marble out of the rocks.<br> These might be used for future buildings." ..
179 "</p></rt>"
180}231}
181232
182233
=== modified file 'campaigns/emp02.wmf/elemental'
--- campaigns/emp02.wmf/elemental 2010-11-18 10:39:43 +0000
+++ campaigns/emp02.wmf/elemental 2014-03-05 18:47:45 +0000
@@ -6,7 +6,7 @@
6map_h=806map_h=80
7nr_players=27nr_players=2
8world=desert8world=desert
9name=_"02 - An Outpost for Exile"9name=_"02 – An Outpost for Exile"
10author=Nasenbaer10author=Nasenbaer
11descr=_"Finally the ship was repaired, so Lutius and his people again went on the quest to find a good place for a new beginning. Only a few days later they land on a green, mediterranean island, looking like paradise. Overjoyed, they set out to explore this new living space."11descr=_"Finally the ship was repaired, so Lutius and his people returned to the quest to find a good place for a new beginning. Only a few days later, they land on a green, Mediterranean island, looking like paradise. Overjoyed, they set out to explore this new living space."
12background="tribes/empire/pics/campmap-emp02.jpg"12background="tribes/empire/pics/campmap-emp02.jpg"
1313
=== modified file 'campaigns/emp02.wmf/scripting/texts.lua'
--- campaigns/emp02.wmf/scripting/texts.lua 2012-12-16 19:08:16 +0000
+++ campaigns/emp02.wmf/scripting/texts.lua 2014-03-05 18:47:45 +0000
@@ -1,3 +1,21 @@
1-- =========================
2-- Some formating functions
3-- =========================
4
5use("aux", "formatting")
6use("aux", "format_scenario")
7
8function lutius(title, text)
9 return speech("map:Lutius.png", "2F9131", title, text)
10end
11function saledus(title, text)
12 return speech("map:Saledus.png", "8F9131", title, text)
13end
14function amalea(title, text)
15 return speech("map:Amalea.png", "AF7511", title, text)
16end
17
18
1-- =======================================================================19-- =======================================================================
2-- Texts only - no logic here20-- Texts only - no logic here
3-- =======================================================================21-- =======================================================================
@@ -8,221 +26,246 @@
8obj_build_woodeconomy = {26obj_build_woodeconomy = {
9 name = "build_woodeconomy ",27 name = "build_woodeconomy ",
10 title =_"Build up a wood economy",28 title =_"Build up a wood economy",
11 body ="<rt><p>" ..29 number = 5,
12_"* Build three lumberjack's houses, a forester's house and a sawmill." ..30 body = objective_text(_"Wood Economy",
13"</p></rt>",31[[• ]] .. _[[Build three lumberjack’s houses, a forester’s house and a sawmill.]]),
14}32}
1533
16obj_build_quarry = {34obj_build_quarry = {
17 name = "build_quarry ",35 name = "build_quarry ",
18 title =_"Build a quarry",36 title =_"Build a quarry",
19 body ="<rt><p>" ..37 number = 1,
20_"* Build a quarry to the south of your headquarters." ..38 body = objective_text(_"Quarry",
21"</p></rt>",39[[• ]] .. _[[Build a quarry to the south of your headquarters.]]),
22}40}
2341
24obj_build_military_buildings = {42obj_build_military_buildings = {
25 name = "build_military_buildings ",43 name = "build_military_buildings ",
26 title =_"Protect your colony",44 title =_"Protect your colony",
27 body ="<rt><p>" ..45 number = 1,
28_"* Build some barracks and sentries around the colony." ..46 body = objective_text(_"Protect Your Colony",
29"</p></rt>",47[[• ]] .. _[[Build some barracks and sentries around the colony.]]),
30}48}
3149
32obj_build_marblemine = {50obj_build_marblemine = {
33 name = "build_marblemine ",51 name = "build_marblemine ",
34 title =_"Start mining marble",52 title =_"Start mining marble",
35 body ="<rt><p>" ..53 number = 1,
36_"* Expand to the east, to start mining marble from the mountain." ..54 body = objective_text(_"Marble",
37"</p></rt>",55[[• ]] .. _[[Expand to the east, to start mining marble from the mountain.]]),
38}56}
3957
40obj_build_mining_infrastructure = {58obj_build_mining_infrastructure = {
41 name = "build_mining_infrastructure ",59 name = "build_mining_infrastructure ",
42 title =_"Build a stonemason and mining infrastructure",60 title =_"Build a stonemason and mining infrastructure",
43 body ="<rt><p>" ..61 number = 7,
44_"* Build a stonemason and then a complete mining and production infrastructure (coal mine and / or charcoal burner, iron ore mine, toolsmith's shop, weapon smithy, armour smithy and smelting works)." ..62 body = objective_text(_"Stonemason and Mining Infrastructure",
45"</p></rt>",63[[• ]] .. _[[Build a stonemason and then a complete mining and production infrastructure
64(coal mine and / or charcoal burner, iron ore mine, toolsmithy, weapon smithy, armor smithy and smelting works).]]),
46}65}
4766
48obj_build_Food_infrastructure = {67obj_build_Food_infrastructure = {
49 name = "build_food_infrastructure",68 name = "build_food_infrastructure",
50 title =_"Provide your miners with food",69 title =_"Provide your miners with food",
51 body ="<rt><p>" ..70 number = 1,
52_"* To produce some sustaining food for our miners, we could build up a tavern. To supply them with some good and strong drinks, we could build up a brewery and a winery.<br> Of course this means we will need more resources for preparing this food - like fish, meat or bread.<br> To provide these foodstuffs, you would have to build a fisher's house, a farm, a mill and a bakery.<br> Maybe you will also need a hunter's house,<br> a piggery, a vineyard and some wells.<br> It's up to you what you want to build.<br> But remember - coal and iron ore mines need beer, marble and gold mines need wine and all mines need at least rations, which are produced out of bread OR meat OR fish." ..71 body = objective_text(_"Food For Your Miners",
53"</p></rt>",72[[• ]] .. _([[To produce some sustaining food for our miners, we could build up a tavern. ]] ..
73[[To supply them with some good and strong drinks, we could build up a brewery and a winery.]]) .. "<br>" ..
74[[• ]] .. _([[Of course this means we will need more resources for preparing this food – like fish, meat or bread.]] ..
75[[To provide these foodstuffs, you would have to build a fisher’s house, a farm, a mill and a bakery.]]) .. "<br>" ..
76[[• ]] .. _[[Maybe you will also need a hunter’s house, a piggery, a vineyard and some wells.]] .. "<br><br>" ..
77[[→ ]] .. _([[It’s up to you what you want to build. But remember – coal and iron ore mines need beer, ]] ..
78[[marble and gold mines need wine and all mines need at least rations, which are produced out of bread OR meat OR fish.]])),
54}79}
5580
56obj_build_bigger_military_buildings = {81obj_build_bigger_military_buildings = {
57 name = "build_bigger_military_buildings ",82 name = "build_bigger_military_buildings ",
58 title =_"Protect your eastern frontier",83 title =_"Protect your eastern frontier",
59 body ="<rt><p>" ..84 number = 1,
60_"* Build up stronger military buildings, such as an outpost, a barrier or a tower, on the eastern frontier. To watch deep inside the enemy territory, build a tower." ..85 body = objective_text(_"Protect Your Eastern Frontier",
61"</p></rt>",86[[• ]] .. _[[Build up stronger military buildings, such as an outpost, a barrier or a tower, on the eastern frontier.]] ..
87"<br><br>" ..
88[[→ ]] .. _[[To watch deep inside the enemy territory, build a tower.]]),
62}89}
6390
64obj_remove_the_barbarians = {91obj_remove_the_barbarians = {
65 name = "remove_the_barbarians ",92 name = "remove_the_barbarians ",
66 title =_"Destroy the barbarian tribe",93 title =_"Destroy the barbarian tribe",
67 body ="<rt><p>" ..94 number = 2,
68_"* As soon as you have enough soldiers, attack and completely destroy the barbarian buildings.<br>" ..95 body = objective_text(_"Destroy the Barbarian Tribe",
69_"* Finally, build up a fortress on the peninsula<br> (near where the barbarian headquarters stood before), to avoid new settlements of other tribes in that region." ..96[[• ]] .. _[[As soon as you have enough soldiers, attack and completely destroy the barbarian buildings.]] .. "<br>" ..
70"</p></rt>",97[[• ]] .. _([[Finally, build up a fortress on the peninsula (near where the barbarian headquarters stood before), ]] ..
98[[to avoid new settlements of other tribes in that region.]])),
71}99}
72100
73
74-- =====================101-- =====================
75-- Messages to the User102-- Messages to the User
76-- =====================103-- =====================
77diary_page_5 = {104diary_page_5 = {
78 title =_ "A new island",105 title =_ "A New Island",
79 posy= 1,106 posy= 1,
80 body = "<rt><p font-size=24 font-face=DejaVuSerif font-weight=bold font-color=2F9131>" ..107 body = lutius(_"Diary of Lutius",
81_"Diary of Lutius" ..108_([[Finally! This island appears to have been made for us, it is a gift from the Gods to my people and myself. ]] ..
82"</p></rt><rt image=map:Lutius.png><p line-spacing=3 font-size=12><br>" ..109[[Until now, we have only seen a small part of this island, but this part alone is already bringing sunlight to my mind. ]] ..
83_[[ "Finally! This island appears to be made for us, it is a gift from the Gods to my people and myself.<br> Until now, we have only seen a small part of this island, but this part alone is already bringing sunlight in my mind. I feel as if we have found a priceless treasure, a land like paradise.<br> On this island, we will start our new life. We will build up an outpost for our exile, which perhaps will become a new, beautiful home for every one of us." ]] ..110[[I feel as if we have found a priceless treasure, a land like paradise.]]) .. "<br><br>" ..
84"</p></rt>",111_([[On this island, we will start our new life. ]] ..
112[[We will build up an outpost for our exile, which perhaps will become a new, beautiful home for every one of us.]])),
85}113}
86114
87diary_page_5_1 = {115diary_page_5_1 = {
88 title =_ "The green forests",116 title =_ "The Green Forests",
89 posy = 1,117 posy = 1,
90 body="<rt><p font-size=24 font-face=DejaVuSerif font-weight=bold font-color=2F9131>" ..118 body= lutius(_"Diary of Lutius",
91_"Diary of Lutius" ..119_([[As Saledus and I walked through these wonderful forests in the north, we felt that our future had just begun. ]] ..
92"</p></rt><rt image=map:Lutius.png><p line-spacing=3 font-size=12><br>" ..120[[This land is so peaceful, good and beautiful, I could stay here until the end of my life.]]) .. "<br><br>" ..
93_[[ "As Saledus and I walked through these wonderful forests in the north, we felt that our future had just begun. This land is so peaceful, good and beautiful, I could stay here until the end of my life.<br> But until that day, may many years pass! For now, we must concentrate on the present, and build a few lumberjack's houses and a sawmill to produce some basic building materials.<br> But we shouldn't forget to preserve this natural bounty. These forests should last forever, so we really should build a forester's house too."<br><br>-- NEW OBJECTIVE --<br> ]] ..121_([[But until that day, may many years pass! For now, we must concentrate on the present, ]] ..
94_"* Build three lumberjack's houses, a forester's house and a sawmill." ..122[[and build a few lumberjack’s houses and a sawmill to produce some basic building materials.]]) .. "<br><br>" ..
95"</p></rt>",123_([[But we shouldn’t forget to preserve this natural bounty. ]] ..
124[[These forests should last forever, so we really should build a forester’s house too.]]))
125.. new_objectives(obj_build_woodeconomy),
96}126}
97127
98diary_page_5_2 = {128diary_page_5_2 = {
99 title =_ "The rocks",129 title =_ "The Rocks",
100 posy = 1,130 posy = 1,
101 body="<rt><p font-size=24 font-face=DejaVuSerif font-weight=bold font-color=2F9131>" ..131 body= lutius(_"Diary of Lutius",
102_"Diary of Lutius" ..132_([[Later, I walked down to the rocks in the south and looked for a place where we could build a quarry ]] ..
103"</p></rt><rt image=map:Lutius.png><p line-spacing=3 font-size=12><br>" ..133[[to get some hard stone for our larger buildings.]]) .. "<br><br>" ..
104_[[ "Later, I walked down to the rocks in the south and looked for a place where we can build a quarry to get some hard stone for our larger buildings.<br> Again, I felt like I'm in paradise when I noticed that some marble-like stones were among the rocks. It seems that we will soon be able to build strong, luxurious buildings, like those we were accustomed to in Fremil."<br><br>-- NEW OBJECTIVE --<br> ]] ..134_([[Again, I felt like I was in paradise when I noticed that some marble-like stones were among the rocks. ]] ..
105_"* Build a quarry to the south of your headquarters." ..135[[It seems that we will soon be able to build strong, luxurious buildings, like those we were accustomed to in Fremil.]]))
106"</p></rt>",136.. new_objectives(obj_build_quarry),
107}137}
108138
109diary_page_6 = {139diary_page_6 = {
110 title =_ "Wood for the colony",140 title =_ "Wood for the Colony",
111 posy=1,141 posy=1,
112 body="<rt><p font-size=24 font-face=DejaVuSerif font-weight=bold font-color=2F9131>" ..142 body= lutius(_"Diary of Lutius",
113_"Diary of Lutius" ..143_([[Good news! Today our wood economy was completed. ]] ..
114"</p></rt><rt image=map:Lutius.png><p line-spacing=3 font-size=12><br>" ..144[[Now we can be sure that we will have enough wood for our future building projects.]])),
115_[[ "Good news! Today our wood economy was completed. Now we can be sure to have enough wood for our future building projects." ]] ..
116"</p></rt>",
117}145}
118146
119diary_page_7 = {147diary_page_7 = {
120 title =_ "Stone for the colony",148 title =_ "Stone for the Colony",
121 posy=1,149 posy=1,
122 body="<rt><p font-size=24 text-align=left font-face=DejaVuSerif font-weight=bold font-color=2F9131>" ..150 body= lutius(_"Diary of Lutius",
123_"Diary of Lutius" ..151_[[Great! Today the building of the quarry was completed. Now we will get enough stone to construct larger buildings.]]),
124"</p></rt><rt image=map:Lutius.png><p line-spacing=3 font-size=12><br>" ..
125_[[ "Great! Today the building of the quarry was completed. Now we get enough stone to construct larger buildings." ]] ..
126"</p></rt>",
127}152}
128153
129saledus_1 = {154saledus_1 = {
130 title =_ "Dangerous shipparts",155 title =_ "Dangerous Ship Parts",
131 posy = 1,156 posy = 1,
132 body="<rt><p font-size=24 font-face=DejaVuSerif font-weight=bold font-color=8F9131>" ..157 body= saledus(_"Saledus looks unhappy",
133_"Saledus looks unhappy" ..158_([[Greetings Lutius, I don’t want to start a panic, ]] ..
134"</p></rt><rt image=map:Saledus.png><p line-spacing=3 font-size=12><br>" ..159[[but I found something which gives me a sinking feeling in my stomach and spreads waves of fear in my heart. ]] ..
135_[[ "Greetings Lutius, I don't want to start a panic, but I found something which gives me a sinking feeling in my stomach and spreads waves of fear in my heart. As I walked down to the southern shore I found the remains of another ship. I don't know whether these parts are all that is left of that ship. In any case, these parts do not seem to be old.<br> Perhaps the people aboard that ship were caught in the same storm which brought us to Malac' Mor - and were brought to this island.<br> I beg you to be cautious and to build some barracks or sentries around our colony."<br><br>-- NEW OBJECTIVE --<br> ]] ..160[[As I walked down to the southern shore, I found the remains of another ship. ]] ..
136_"* Build some barracks and sentries around the colony." ..161[[I don’t know whether these parts are all that is left of that ship. ]] ..
137"</p></rt>",162[[In any case, these parts do not seem to be old.]]) .. "<br><br>" ..
163_([[Perhaps the people aboard that ship were caught in the same storm which brought us to Malac’ Mor]] ..
164[[ – and were brought to this island.]]) .. "<br><br>" ..
165_([[I beg you to be cautious and to build some barracks or sentries around our colony.]]))
166.. new_objectives(obj_build_military_buildings),
138}167}
139168
140saledus_2 = {169saledus_2 = {
141 title =_ "Marble on the mountain",170 title =_ "Marble on the Mountain",
142 body="<rt><p font-size=24 font-face=DejaVuSerif font-weight=bold font-color=8F9131>" ..171 body= saledus(_"Saledus smiles",
143_"Saledus smiles" ..172_([[Lutius, I’ve got good news for you:]] ..
144"</p></rt><rt image=map:Saledus.png><p line-spacing=3 font-size=12><br>" ..173[[As I walked to the east, I found a larger mountain.]] ..
145_[[ "Lutius, I've got good news for you:<br> As I walked to the east, I found a larger mountain.<br> I am not absolutely sure - a geologist should check if I am right - but I believe we could mine marble from some places on the mountain.<br> It would be a good source to bolster our supply of quality marble, beyond the meagre quantities available from the quarry. Perhaps you were right when you said that this island is like paradise.<br> Let us expand to that mountain and start mining marble."<br><br>-- NEW OBJECTIVE --<br> ]] ..174[[I am not absolutely sure – a geologist should check if I am right]] ..
146_"* Expand to the east, to start mining marble from the mountain." ..175[[ – but I believe we could mine marble from some places on the mountain.]]) .. "<br><br>" ..
147"</p></rt>",176_([[It would be a good source for bolstering our supply of quality marble, ]] ..
177[[beyond the meager quantities available from the quarry. ]] ..
178[[Perhaps you were right when you said that this island was like paradise.]]) .. "<br><br>" ..
179_([[Let us expand to that mountain and start mining marble.]]))
180.. new_objectives(obj_build_marblemine),
148}181}
149182
150saledus_3 = {183saledus_3 = {
151 title =_ "Further mountains",184 title =_ "Further Mountains",
152 body="<rt><p font-size=24 font-face=DejaVuSerif font-weight=bold font-color=8F9131>" ..185 body= saledus(_"Saledus is amazed",
153_"Saledus is amazed" ..186_([[By the Gods, this is an unbelievable stroke of fortune! ]] ..
154"</p></rt><rt image=map:Saledus.png><p line-spacing=3 font-size=12><br>" ..187[[There are two more mountains, and it seems that one has a large quantity of coal and the other of iron ore. ]] ..
155_[[ "By the Gods, this is an unbelievable strike of fortune! There are two more mountains and it seems that one has a large quantity of coal and the other of iron ore. We should immediately start to build iron ore and coal mines (or at least charcoal burners), smelting works, toolsmith's shops, armour and weapon smithies.<br> However: for all these bigger buildings, we need better and more elegant building materials. So, let's build<br> a stonemason, who cuts columns from marble.<br> After all, now we can begin living as we did in Fremil."<br><br>-- NEW OBJECTIVE --<br> ]] ..188[[We should immediately start to build iron ore and coal mines (or at least charcoal burners), ]] ..
156_"* Build a stonemason and then a complete mining and production infrastructure (coal mine and / or charcoal burner, iron ore mine, toolsmith's shop, weapon smithy, armour smithy and smelting works)." ..189[[smelting works, toolsmithies, armor and weapon smithies.]]) .. "<br><br>" ..
157"</p></rt>",190_([[However: for all these bigger buildings, we need better and more elegant building materials. ]] ..
191[[So, let’s build a stonemason, who will cut columns from marble.]]) .. "<br><br>" ..
192_([[After everything, we can now begin to live like we did in Fremil.]]))
193.. new_objectives(obj_build_mining_infrastructure),
158}194}
159195
160amalea_1 = {196amalea_1 = {
161 title =_ "Food for the miners",197 title =_ "Food for the Miners",
162 body="<rt><p font-size=24 font-face=DejaVuSerif font-weight=bold font-color=AF7511>" ..198 body= amalea(_"Amalea comes in...",
163_"Amalea comes in..." ..199_([[Hi Lutius, I hope you forgive my criticism, but it seems to me as if you forgot something.]]) .. "<br><br>" ..
164"</p></rt><rt image=map:Amalea.png><p line-spacing=3 font-size=12><br>" ..200_([[It’s nice, and of course a good idea, to build up mines, which will give us a more comfortable life, ]] ..
165_[[ "Hi Lutius, I hope you forgive my criticism, but it seems to me as if you forgot something.<br> It's nice, and of course a good idea, to build up mines, which will give us a more comfortable life,<br> but the people working in the mines are unhappy with the current situation. They have to do hard work and have no time for making their own food.<br> What do you think about helping them out?<br> I can't tell you what exactly we need... but here are my recommendations:"<br><br>-- NEW OBJECTIVE --<br> ]] ..201[[but the people working in the mines are unhappy with the current situation. ]] ..
166_"* To produce some sustaining food for our miners, we could build up a tavern. To supply them with some good and strong drinks, we could build up a brewery and a winery.<br> Of course this means we will need more resources for preparing this food - like fish, meat or bread.<br> To provide these foodstuffs, you would have to build a fisher's house, a farm, a mill and a bakery.<br> Maybe you will also need a hunter's house,<br> a piggery, a vineyard and some wells.<br> It's up to you what you want to build.<br> But remember - coal and iron ore mines need beer, marble and gold mines need wine and all mines need at least rations, which are produced out of bread OR meat OR fish." ..202[[They have to do hard work and have no time for making their own food.]]) .. "<br><br>" ..
167"</p></rt>",203_([[What do you think about helping them out? ]] ..
204[[I can’t tell you what we need exactly... but here are my recommendations:]]))
205.. new_objectives(obj_build_Food_infrastructure),
168}206}
169207
170diary_page_8 = {208diary_page_8 = {
171 title =_ "The Barbarians",209 title =_ "The Barbarians",
172 posy=1, 210 posy=1,
173 body="<rt><p font-size=24 font-face=DejaVuSerif font-weight=bold font-color=2F9131>" ..211 body= lutius(_"Diary of Lutius",
174_"Diary of Lutius" ..212_([[By the Gods! This is absolutely terrible. It seems as if we stand close to a test]] ..
175"</p></rt><rt image=map:Lutius.png><p line-spacing=3 font-size=12><br>" ..213[[ – and it seems as if Saledus was right with his fear concerning the shipwreck he found.]]) .. "<br><br>" ..
176_[[ "By the Gods! This is absolutely terrible. It seems as if we stand close to a test - and it seems as if Saledus was right with his fear concerning the shipwreck he found.<br> Today, as I walked down to the eastern shore,<br> I got a shock. I caught sight of one of those hated, evil, barbarian tribes with whom we have had so many problems before.<br> At first, I was naive and hoped that they were peaceful, but as soon as one of them saw me they charged towards me and started attacking me with their throwing-spears. Thanks be to the Gods that<br> I was able to flee and hide myself, before retreating back to our colony under cover of darkness.<br> Anyway, we must build up stronger military buildings as soon as possible."<br><br>-- NEW OBJECTIVE --<br> ]] ..214_([[Today, as I walked down to the eastern shore, I got a shock. ]] ..
177_"* Build up stronger military buildings, such as an outpost, a barrier or a tower, on the eastern frontier. To watch deep inside the enemy territory, build a tower." ..215[[I caught sight of one of those hated, evil, barbarian tribes with whom we have had so many problems before.]]) .. "<br><br>" ..
178"</p></rt>",216_([[At first, I was naive and hoped that they were peaceful, but as soon as one of them saw me, ]] ..
217[[they charged towards me and started attacking me with their throwing-spears. Thanks be to the Gods ]] ..
218[[that I was able to flee and hide myself, before retreating back to our colony under cover of darkness.]]) .. "<br><br>" ..
219_([[Anyway, we must build up stronger military buildings as soon as possible.]]))
220.. new_objectives(obj_build_bigger_military_buildings),
179}221}
180222
181diary_page_9 = {223diary_page_9 = {
182 title =_ "Command for Attack",224 title =_ "Command to Attack",
183 posy=1,225 posy=1,
184 body="<rt><p font-size=24 font-face=DejaVuSerif font-weight=bold font-color=2F9131>" ..226 body= lutius(_"Diary of Lutius",
185_"Diary of Lutius" ..227_([[That’s good. The first large military building is complete and the mining infrastructure is getting better and better. ]] ..
186"</p></rt><rt image=map:Lutius.png><p line-spacing=3 font-size=12><br>" ..228[[Now we should think about preparing ourselves for battle.]]))
187_[[ "That's good. The first large military building is complete and the mining infrastructure is getting better and better. Now we should think of preparing ourselves for battle."<br><br>-- NEW OBJECTIVES --<br> ]] ..229.. new_objectives(obj_remove_the_barbarians),
188_"* As soon as you have enough soldiers, attack and completely destroy the barbarian buildings.<br>" ..
189_"* Finally, build up a fortress on the peninsula<br> (near where the barbarian headquarters stood before), to avoid new settlements of other tribes in that region." ..
190"</p></rt>",
191}230}
192231
193diary_page_10 = {232diary_page_10 = {
194 title =_ "Victory",233 title =_ "Victory",
195 posy=1,234 posy=1,
196 body="<rt image=map:Lutius.png><p line-spacing=3 font-size=12><br>" ..235 body= lutius(
197_[[ "Today is a proud day. We have fought for our new home and risen victorious.<br> There are still a few barbarians hiding on our island, but I am sure that we will find them soon.<br> Every barbarian who doesn't attack us will be put in a boat with the other peaceful ones, and sent back to their country."<br><br>--------------------- VICTORY! ----------------------]] ..236_([[Today is a proud day. We have fought for our new home and risen victorious.]]) .. "<br><br>" ..
198"</p></rt>",237_([[There are still a few barbarians hiding on our island, but I am sure that we will find them soon.]] ..
238[[Every barbarian who doesn’t attack us will be put in a boat with the other peaceful ones, and sent back to their country.]]))
239.. objective_text(_"Victory",
240 _[[You have established a working economy, trained new soldiers and driven the barbarians from the island.]]
241),
199}242}
200243
201seven_days_later = {244seven_days_later = {
202 title =_ "As time is running by",245 title =_ "As Time is Running By",
203 w=200,246 w=200,
204 h=150,247 h=150,
205 body="<rt><p line-spacing=3 font-size=12>" ..248 body=rt(p(_"7 days later...")),
206_"7 days later..." ..
207"</p></rt>",
208}249}
209250
210diary_page_11 = {251diary_page_11 = {
211 title =_ "A Message",252 title =_ "A Message",
212 posy=1,253 posy=1,
213 body="<rt><p font-size=24 font-face=DejaVuSerif font-weight=bold font-color=2F9131>" ..254 body= lutius(_"Diary of Lutius",
214_"Diary of Lutius" ..255_([[Today a pigeon landed on our island. ]] ..
215"</p></rt><rt image=map:Lutius.png><p line-spacing=3 font-size=12><br>" ..256[[It brought a message which fills me with dark thoughts and brings back my fears.]]) .. "<br><br>" ..
216_[[ "Today a pigeon landed on our island.<br> It brought a message which fills me with dark thoughts and brings back my fears.<br> The message was addressed to me, begging me to come back to Fremil.<br> It says that the Empire is at war with the Barbarians. They were attacked from the north by the tribe I was forbidden to attack.<br> For me, it is clear what I must do...<br><br> You have completed this mission. You may continue playing if you wish, otherwise move on to the next mission." ]] ..257_([[The message was addressed to me, begging me to come back to Fremil.]] ..
217"</p></rt>",258[[It says that the Empire is at war with the Barbarians. ]] ..
259[[They were attacked from the north by the tribe that I was forbidden to attack. ]] ..
260[[It is clear to me what I must do...]]) .. "<br><br>" ..
261_([[You have completed this mission. You may continue playing if you wish, otherwise move on to the next mission.]])),
218}262}
219263
220amalea_2 = {264amalea_2 = {
221 title =_ "Our new tavern",265 title =_ "Our New Tavern",
222 body="<rt><p font-size=24 font-face=DejaVuSerif font-weight=bold font-color=AF7511>" ..266 body= amalea(_"Amalea smiles",
223_"Amalea smiles" ..267_([[Greetings, my friend, I just visited our new tavern ‘At the palms’. ]] ..
224"</p></rt><rt image=map:Amalea.png><p line-spacing=3 font-size=12><br>" ..268[[The beer they serve is really tasty. You really should have a drink there, too.]]) .. "<br><br>" ..
225_[[ "Greetings, my friend, I just visited our new tavern<br> 'At the palms'. The beer they serve is really tasty. You really should take a drink there, too.<br> It is good to see that we have now got a warmer and more familiar environment on our island.<br> Thank you, Lutius." ]] ..269_([[It is good to see that we have now got a warmer and more familiar environment on our island. Thank you, Lutius.]])),
226"</p></rt>",
227}270}
228271
229272
=== modified file 'campaigns/t01.wmf/elemental'
--- campaigns/t01.wmf/elemental 2010-11-18 10:39:43 +0000
+++ campaigns/t01.wmf/elemental 2014-03-05 18:47:45 +0000
@@ -4,7 +4,7 @@
4map_h=644map_h=64
5nr_players=15nr_players=1
6world=greenland6world=greenland
7name=_"01 - Eyes in the Dark"7name=_"01 – Eyes in the Dark"
8author=Winterwind8author=Winterwind
9descr=_"In this tutorial the basic gameplay and control as well as basic production buildings of the Barbarians are introduced."9descr=_"In this tutorial, the basic gameplay and control as well as basic production buildings of the Barbarians are introduced."
10background="tribes/barbarians/pics/campmap-tut1+2.jpg"10background="tribes/barbarians/pics/campmap-tut1+2.jpg"
1111
=== modified file 'campaigns/t01.wmf/scripting/init.lua'
--- campaigns/t01.wmf/scripting/init.lua 2011-03-19 13:40:16 +0000
+++ campaigns/t01.wmf/scripting/init.lua 2014-03-05 18:47:45 +0000
@@ -56,6 +56,11 @@
56 sleep(500)56 sleep(500)
57end57end
5858
59-- Add an objective
60function add_obj(objective, player)
61 return player:add_objective(objective.name, objective.title, objective.body)
62end
63
59use("aux", "coroutine")64use("aux", "coroutine")
60use("aux", "ui")65use("aux", "ui")
61use("aux", "table")66use("aux", "table")
@@ -64,4 +69,3 @@
6469
65use("map", "initial_messages")70use("map", "initial_messages")
66use("map", "story_messages")71use("map", "story_messages")
67
6872
=== modified file 'campaigns/t01.wmf/scripting/initial_messages.lua'
--- campaigns/t01.wmf/scripting/initial_messages.lua 2012-12-16 19:08:16 +0000
+++ campaigns/t01.wmf/scripting/initial_messages.lua 2014-03-05 18:47:45 +0000
@@ -2,30 +2,35 @@
2-- Send a bunch of story messages 2-- Send a bunch of story messages
3-- ===============================3-- ===============================
44
5--use("aux", "formatting")
6use("aux", "format_scenario")
7
8function thron(title, text)
9 return speech("map:chieftain.png", "2F9131", title, text)
10end
11
12
5function briefing_messages() 13function briefing_messages()
6-- Briefing message14-- Briefing message
7title = _"The story begins"15title = _"The Story Begins"
8msg = "<rt><p font-size=24 font-face=DejaVuSerif font-weight=bold font-color=2F9131>" ..16msg = thron(_"Thron sighs...",
9_"Thron sighs..." ..17_[[It’s been months, and we are still hiding where the forests are old and dark.]] .. "<br><br>" ..
10"</p></rt><rt image=map:chieftain.png><p line-spacing=3 font-size=12>" ..18_[[My warriors hunt at day and lie awake at night – listening to the sounds of the cruel slaughter echoing from afar amongst the ancient trees.]])
11_[[ "It's been months and we are still hiding where the forests are old and dark.<br> My warriors hunt at day and lie awake at night - listening to the sounds of the cruel slaughter echoing from afar amongst the ancient trees." ]] ..
12"</p></rt>"
13show_story_box(title, msg)19show_story_box(title, msg)
1420
15msg = 21msg =
16"<rt image=map:chieftain.png><p line-spacing=3 font-size=12>" ..22thron(
17_[[ "We can see the raging flames that swallow Al'thunran from here, miles away.<br> The red lights flash in the darkness and dance to the rhythm of the wardrums that haunt me even in my nightmares." ]] .. 23_[[We can see the raging flames that swallow Al’thunran from here, miles away.]] .. "<br><br>" ..
18"</p></rt>"24_[[The red lights flash in the darkness and dance to the rhythm of the war drums that haunt me even in my nightmares.]])
19show_story_box(title, msg, al_thunran)25show_story_box(title, msg, al_thunran)
2026
21msg = "<rt image=map:chieftain.png><p line-spacing=3 font-size=12>" ..27msg = thron(
22_[[ "My father's bones rest peacefully in the grounds on which he once ended the senseless bloodspilling that has risen among us. It pains me that his peace only endured for one generation.<br> Boldreth, my loyal companion and friend is a source of peace and comfort to me in these dark times. He keeps my spirits high and those of my warriors awake, not to let greed or despair destroy the bonds between us as well." ]] ..28_[[My father’s bones rest peacefully in the ground on which he once ended the senseless spilling of blood that had arisen amongst us. It pains me that his peace only endured for one generation.]] .. "<br><br>" ..
23"</p></rt>"29_[[Boldreth, my loyal companion and friend is a source of peace and comfort to me in these dark times. He keeps my spirits high and those of my warriors awake, preventing greed or despair from destroying the bonds between us as well.]])
24show_story_box(title, msg, grave)30show_story_box(title, msg, grave)
2531
26msg = "<rt image=map:chieftain.png><p line-spacing=3 font-size=12>" ..32msg = thron(
27_[[ "As father told me, there are times to fight and times to lie and wait, trying not to fall asleep or die before the right time comes. And so I do... wait." ]] .. 33_[[As father told me, there are times to fight and times to lie and wait, trying not to fall asleep or die before the right time comes. And so I do... wait.]])
28"</p></rt>"
29show_story_box(title, msg)34show_story_box(title, msg)
30sleep(2000)35sleep(2000)
3136
3237
=== modified file 'campaigns/t01.wmf/scripting/khantrukhs_talking.lua'
--- campaigns/t01.wmf/scripting/khantrukhs_talking.lua 2011-03-19 13:40:16 +0000
+++ campaigns/t01.wmf/scripting/khantrukhs_talking.lua 2014-03-05 18:47:45 +0000
@@ -19,37 +19,39 @@
19end19end
2020
21function tutorial_thread()21function tutorial_thread()
22 show_story_box(_"Somebody comes up to you", khantrukh_1)22 p = wl.Game().players[1]
23 show_story_box(_"The advisor", khantrukh_2, nil, 80, 80)23 show_story_box(_"Somebody Comes up to You", khantrukh_1)
24 o = start_lumberjack_01(p)24 show_story_box(_"The Advisor", khantrukh_2, nil, 80, 80)
25 local o = add_obj(start_lumberjack_01, p)
26
25 -- Wait till the hut is build.27 -- Wait till the hut is build.
26 while not check_for_buildings(p, {constructionsite = 1},28 while not check_for_buildings(p, {constructionsite = 1},
27 wl.Game().map:get_field(15,11):region(2)) do sleep(5000) end29 wl.Game().map:get_field(15,11):region(2)) do sleep(5000) end
2830
29 show_story_box(_"The advisor", khantrukh_3, nil, 80, 80)31 show_story_box(_"The Advisor", khantrukh_3, nil, 80, 80)
3032
31 -- Wait till the hut is build.33 -- Wait till the hut is build.
32 while not check_for_buildings(p, {lumberjacks_hut = 1},34 while not check_for_buildings(p, {lumberjacks_hut = 1},
33 wl.Game().map:get_field(15,11):region(2)) do sleep(5000) end35 wl.Game().map:get_field(15,11):region(2)) do sleep(5000) end
34 o.done = true36 o.done = true
3537
36 p:message_box(_"The advisor", khantrukh_4, { h = 400 })38 p:message_box(_"The Advisor", khantrukh_4, { h = 400 })
37 p:message_box(_"The advisor", khantrukh_5, { h = 400 })39 p:message_box(_"The Advisor", khantrukh_5, { h = 400 })
38 o = start_lumberjack_02(p)40 local o = add_obj(start_lumberjack_02, p)
3941
40 -- Wait till the hut is build.42 -- Wait till the hut is build.
41 while not check_for_buildings(p, {lumberjacks_hut = 1},43 while not check_for_buildings(p, {lumberjacks_hut = 1},
42 wl.Game().map:get_field(12,13):region(2)) do sleep(5000) end44 wl.Game().map:get_field(12,13):region(2)) do sleep(5000) end
43 o.done = true45 o.done = true
4446
45 p:message_box(_"The advisor", khantrukh_6, { h = 400 })47 p:message_box(_"The Advisor", khantrukh_6, { h = 400 })
46 p:allow_buildings{"rangers_hut", "quarry"}48 p:allow_buildings{"rangers_hut", "quarry"}
47 objq = start_quarries(p)49 objq = add_obj(start_quarries, p)
48 objr = start_ranger(p)50 objr = add_obj(start_ranger, p)
49 run(check_ranger)51 run(check_ranger)
50 run(check_quarries)52 run(check_quarries)
5153
52 p:message_box(_"The advisor", khantrukh_7, { h = 400 })54 p:message_box(_"The Advisor", khantrukh_7, { h = 400 })
53 while not (objr.done and objq.done) do55 while not (objr.done and objq.done) do
54 sleep(5000)56 sleep(5000)
55 end57 end
5658
=== modified file 'campaigns/t01.wmf/scripting/texts.lua'
--- campaigns/t01.wmf/scripting/texts.lua 2012-12-16 19:08:16 +0000
+++ campaigns/t01.wmf/scripting/texts.lua 2014-03-05 18:47:45 +0000
@@ -1,137 +1,173 @@
1use("aux", "formatting")
2use("aux", "format_scenario")
3
4function thron(title, text)
5 return speech("map:chieftain.png", "2F9131", title, text)
6end
7function khantrukh(title, text)
8 return speech("map:khantrukh.png", "8080FF", title, text)
9end
10
1-- =======================================================================11-- =======================================================================
2-- Mission objectives 12-- Mission objectives
3-- =======================================================================13-- =======================================================================
414
5function start_lumberjack_01(p) 15start_lumberjack_01 = {
6 return p:add_objective("lumberjack01",16 name = "start_lumberjack_01",
7 _ "Build a lumberjack's hut", 17 title = _ "Build a lumberjack’s hut",
8"<rt><p>" ..18 number = 2,
9_"* Press SPACE to see where you can build.<br> The red house symbols show you where a small building - like a lumberjack's hut - may be built.<br>" ..19 body = objective_text(_"Build a lumberjack’s hut",
10_"* Build a lumberjack's hut at the red house symbol just right of your headquarters by clicking on it and selecting a lumberjack's hut.<br>" ..20[[• ]] .. _"Press SPACE to see where you can build. The red house symbols show you where a small building – like a lumberjack’s hut – may be built." .. "<br><br>" ..
11_"* Build a road between your headquarters and the construction site of the lumberjack's hut.<br> When you place the lumberjack's hut, a flag is created for it. You need to connect it to another flag by building a road between them.<br> If you click on a flag and select to build a road, little symbols will appear around it to show you in which directions you can build it.<br> The colour of these symbols indicates how steep this part of the road will be. Green is for flat, yellow means steep and red stands for very steep. The steeper the road is, the harder it will be for your people to walk on it (and your wares will be transported more slowly).<br> You can click on any of the symbols to build the first part of the road there. New symbols will appear to show you where the next part of the road can go, and so on. However, you can also click farther away from the flag to build several steps at once. Click on the flag at the headquarters to finish the road." ..21[[• ]] .. _"Build a lumberjack’s hut at the red house symbol just right of your headquarters by clicking on it and selecting a lumberjack’s hut." .. "<br><br>" ..
12"</p></rt>")22[[• ]] .. _"Build a road between your headquarters and the construction site of the lumberjack’s hut." .. "<br><br>" ..
13end23[[→ ]] .. _"When you place the lumberjack’s hut, a flag is created for it. You need to connect it to another flag by building a road between them. If you click on a flag and select to build a road, little symbols will appear around it to show you in which directions you can build it." .. "<br><br>" ..
1424[[→ ]] .. _"The colors of these symbols indicate how steep this part of the road will be. Green is for flat, yellow means steep and red stands for very steep. The steeper the road is, the harder it will be for your people to walk on it (and your wares will be transported more slowly)." .. "<br><br>" ..
15function start_lumberjack_02(p)25[[→ ]] .. "You can click on any of the symbols to build the first part of the road there. New symbols will appear to show you where the next part of the road can go, and so on. However, you can also click farther away from the flag to build several steps at once. Click on the flag at the headquarters to finish the road."
16 return p:add_objective("lumberjack02",26 ),
17 _ "Build another lumberjack's hut",27}
18 "<rt><p>" ..28
19_"* Place a flag in the middle of the road.<br> There is a flag symbol in the middle of the way you just built. You create a flag there by clicking on the symbol and then choosing the flag button in the menu that opens up. This divides the way the wood is transported into two parts with one carrier each.<br> When many wares are being transported between two points, additional flags in between make them arrive at their destination faster, thus improving your infrastructure.<br>" ..29start_lumberjack_01_01 = {
20_"* Place a lumberjack's hut just south of the flag you just placed on the road. Connect the flag you just raised with the flag of the new lumberjack's hut construction site afterwards.<br> Note that instead of building a road step by step, you may also click directly at its destination to build the entire road at once." ..30 name = "start_lumberjack_01_01",
21"</p></rt>")31 title = _ "Build a lumberjack’s hut",
22end32 number = 1,
2333 body = objective_text(_"Build a lumberjack’s hut",
24function start_ranger(p)34[[• ]] .. _"Press SPACE to see where you can build. The red house symbols show you where a small building – like a lumberjack’s hut – may be built." .. "<br><br>" ..
25 return p:add_objective("ranger", _ "Build a ranger's hut",35[[• ]] .. _"Build a lumberjack’s hut at the red house symbol just right of your headquarters by clicking on it and selecting a lumberjack’s hut."
26"<rt><p>" ..36 ),
27_"* Build a ranger's hut to the east of the first lumberjack's hut." ..37}
28"</p></rt>")38
29end39start_lumberjack_01_02 = {
3040 name = "start_lumberjack_01_02",
31function start_quarries(p)41 title = _ "Build a road to the lumberjack’s hut",
32 return p:add_objective("quarries", _ "Build two quarries",42 number = 1,
33"<rt><p>" ..43 body = objective_text(_"Road to the lumberjack’ hut",
34_"* Build two quarries southwest of your headquarters." ..44[[• ]] .. _"Build a road between your headquarters and the construction site of the lumberjack’s hut." .. "<br><br>" ..
35"</p></rt>")45[[→ ]] .. _"When you place the lumberjack’s hut, a flag is created for it. You need to connect it to another flag by building a road between them. If you click on a flag and select to build a road, little symbols will appear around it to show you in which directions you can build it." .. "<br><br>" ..
36end46[[→ ]] .. _"The colors of these symbols indicate how steep this part of the road will be. Green is for flat, yellow means steep and red stands for very steep. The steeper the road is, the harder it will be for your people to walk on it (and your wares will be transported more slowly)." .. "<br><br>" ..
47[[→ ]] .. _"You can click on any of the symbols to build the first part of the road there. New symbols will appear to show you where the next part of the road can go, and so on. However, you can also click farther away from the flag to build several steps at once. Click on the flag at the headquarters to finish the road."
48 ),
49}
50
51start_lumberjack_02 = {
52 name = "start_lumberjack_02",
53 title = _ "Build a second lumberjack’s hut",
54 number = 2,
55 body = objective_text(_"Build a second lumberjack’s hut",
56[[• ]] .. _"Place a flag in the middle of the road. There is a flag symbol in the middle of the road you just built. You create a flag there by clicking on the symbol and then choosing the flag button in the menu that opens up. This will divide the road the wood is transported into two parts with one carrier each." .. "<br><br>" ..
57[[• ]] .. _"Place a lumberjack’s hut just south of the flag you just placed on the road. Connect the flag you just raised with the flag of the new lumberjack’s hut construction site afterwards. Note that instead of building a road step by step, you may also click directly at its destination to build the entire road at once." .. "<br><br>" ..
58[[→ ]] .. _"When many wares are being transported between two points, additional flags in between make them arrive at their destination faster, thus improving your infrastructure."
59 ),
60}
61
62start_lumberjack_02_01 = {
63 name = "start_lumberjack_02_01",
64 title = _ "Build a second lumberjack’s hut",
65 number = 1,
66 body = objective_text(_"Build a second lumberjack’s hut",
67[[• ]] .. _"Place a flag in the middle of the road. There is a flag symbol in the middle of the road you just built. You create a flag there by clicking on the symbol and then choosing the flag button in the menu that opens up. This will divide the road the wood is transported into two parts with one carrier each." .. "<br><br>" ..
68[[→ ]] .. _"When many wares are being transported between two points, additional flags in between make them arrive at their destination faster, thus improving your infrastructure."
69 ),
70}
71
72start_lumberjack_02_02 = {
73 name = "start_lumberjack_02_02",
74 title = _ "Build a second lumberjack’s hut",
75 number = 1,
76 body = objective_text(_"Build a second lumberjack’s hut",
77[[• ]] .. _"Place a lumberjack’s hut just south of the flag you just placed on the road. Connect the flag you just raised with the flag of the new lumberjack’s hut construction site afterwards. Note that instead of building a road step by step, you may also click directly at its destination to build the entire road at once."
78 ),
79}
80
81start_ranger = {
82 name = "start_ranger",
83 title = _ "Build a ranger’s hut",
84 number = 1,
85 body = objective_text(_"Build a ranger’s hut",
86[[• ]] .. _"Build a ranger’s hut to the east of the first lumberjack’s hut."
87 ),
88}
89
90start_quarries = {
91 name = "start_quarries",
92 title = _ "Build two quarries",
93 number = 1,
94 body = objective_text(_"Build two quarries",
95[[• ]] .. _"Build two quarries south-west of your headquarters."
96 ),
97}
3798
38-- =======================================================================99-- =======================================================================
39-- Kankruth's texts 100-- Kankruth's texts
40-- =======================================================================101-- =======================================================================
41102
42khantrukh_1="<rt><p font-size=24 font-face=DejaVuSerif font-weight=bold font-color=8080FF>" ..103khantrukh_1= khantrukh(_"An old man says...",
43_"An old man says..." ..104_[[Hail, chieftain. I am Khantrukh and have seen many winters pass. Please allow me to aid you with my counsel through these darkened days.]])
44"</p></rt><rt image=map:khantrukh.png><p line-spacing=3 font-size=12>" ..105
45_[[ "Hail, chieftain. I am Khantrukh and have seen many winters pass. Please allow me to aid you with my counsel through these darkened days." ]] ..106khantrukh_2= khantrukh(_"Khantrukh continues...",
46"</p></rt>" 107_[[None but the gods know how long we have to remain hidden here. The warriors hope we may march back gloriously any day now, but I strongly doubt that will happen soon. And the days are already getting shorter and colder...]] .. "<br><br>" ..
47108_[[We should prepare, in case we have to face the winter in these harsh lands. I believe to the east of our campsite are a few places where we could raise a lumberjack’s hut.]])
48khantrukh_2= "<rt><p font-size=24 font-face=DejaVuSerif font-weight=bold font-color=8080FF>" ..109.. new_objectives(start_lumberjack_01_01)
49_"Khantrukh continues..." ..110
50"</p></rt><rt image=map:khantrukh.png><p line-spacing=3 font-size=12>" ..111khantrukh_3 = khantrukh(_"The elder remarks...",
51_[[ "None but the gods know how long we have to remain hidden here. The warriors hope we may march back gloriously any day now, but I strongly doubt that will happen soon. And the days are already getting shorter and colder...<br> We should prepare, in case we have to face the winter in these harsh lands. I believe to the east of our campsite are a few places where we could raise a lumberjack's hut."<br><br>-- NEW OBJECTIVES --<br> ]] .. 112_[[Obviously, it would be too exhausting for our people to walk all the way to the lumberjack’s hut through the wilderness. We will have to build a road between our hall and the lumberjack’s hut. It’s not a hard guess that the men would appreciate a way as short and plain as possible – the wood will surely be heavy enough, nevertheless.]])
52_"* Press SPACE to see where you can build.<br> The red house symbols show you where a small building - like a lumberjack's hut - may be built.<br>" ..113.. new_objectives(start_lumberjack_01_02)
53_"* Build a lumberjack's hut at the red house symbol just right of your headquarters by clicking on it and selecting a lumberjack's hut.<br>" ..114
54"</p></rt>" 115khantrukh_4 = khantrukh(_"Khantrukh remembers...",
55116_[[There is an old saying:]] .. "<br><br>" ..
56117_[[‘A burden divided is easier to endure.’]] .. "<br><br>" ..
57khantrukh_3 = "<rt><p font-size=24 font-face=DejaVuSerif font-weight=bold font-color=8080FF>" ..118_[[A crossroads on the road between our headquarters and the lumberjack’s hut would ease the work of our carriers.]])
58_"The elder remarks..." ..119.. new_objectives(start_lumberjack_02_01)
59"</p></rt><rt image=map:khantrukh.png><p line-spacing=3 font-size=12>" ..120
60_[[ "Obviously, it would be too exhausting for our people to walk all the way to the lumberjack's hut through the wilderness. We will have to build a road between our hall and the lumberjack's hut. It's not a hard guess that the men would appreciate a way as short and plain as possible - the wood will surely be heavy enough, nevertheless."<br><br>-- NEW OBJECTIVE --<br> ]] ..121khantrukh_5 = khantrukh(_"The old man looks to the sky...",
61_"* Build a road between your headquarters and the construction site of the lumberjack's hut.<br> When you place the lumberjack's hut, a flag is created for it. You need to connect it to another flag by building a road between them.<br> If you click on a flag and select to build a road, little symbols will appear around it to show you in which directions you can build it.<br> The colour of these symbols indicates how steep this part of the road will be. Green is for flat, yellow means steep and red stands for very steep. The steeper the road is, the harder it will be for your people to walk on it (and your wares will be transported more slowly).<br> You can click on any of the symbols to build the first part of the road there. New symbols will appear to show you where the next part of the road can go, and so on. However, you can also click farther away from the flag to build several steps at once. Click on the flag at the headquarters to finish the road." ..122_[[The northern winds tell us that the coming winter will be a long and cruel one. One lumberjack’s hut will not be enough to serve the needs of our people. More trees await our axes just south of our new crossroads – let us raise a second lumberjack’s hut there!]])
62"</p></rt>"123.. new_objectives(start_lumberjack_02_02)
63124
64khantrukh_4 = "<rt><p font-size=24 font-face=DejaVuSerif font-weight=bold font-color=8080FF>" ..125khantrukh_6 = khantrukh(_"Khantrukh nods...",
65_"Khantrukh remembers..." ..126_[[Of course, if we intended to build a bigger settlement, many more lumberjack’s huts would be advisable, but this should suffice for now.]] .. "<br><br>" ..
66"</p></rt><rt image=map:khantrukh.png><p line-spacing=3 font-size=12>" ..127_[[But never forget – these forests are our heritage, entrusted upon us by our ancestors. We must always respect and care for them. What we take, we must give back again.]] .. "<br><br>" ..
67_[[ "There is an old saying:<br> 'A burden divided is easier to endure.'<br> A crossroads on the way between our headquarters and the lumberjack's hut would ease the work of our carriers."<br><br>-- NEW OBJECTIVE --<br> ]] ..128_[[So, in order to replace the trees we chop down, we should build a ranger’s hut, preferably close to the lumberjack’s hut.]])
68_"* Place a flag in the middle of the road.<br> There is a flag symbol in the middle of the way you just built. You create a flag there by clicking on the symbol and then choosing the flag button in the menu that opens up. This divides the way the wood is transported into two parts with one carrier each.<br> When many wares are being transported between two points, additional flags in between make them arrive at their destination faster, thus improving your infrastructure.<br>" ..129.. new_objectives(start_ranger)
69"</p></rt>"130
70131khantrukh_7 = khantrukh(_"The elder speaks...",
71khantrukh_5 = "<rt><p font-size=24 font-face=DejaVuSerif font-weight=bold font-color=8080FF>" ..132_[[I am well aware, chieftain, that neither you nor your warriors have the desire to stay in this forsaken place for long. But even so, our war to reconquer our home might take a long time and it would seem wise to make preparations.]] .. "<br><br>" ..
72_"The old man looks to the sky..." ..133_[[I would advise that we obtain stones for the future – who knows what fortifications we might be forced to build very soon. And – like a gift of destiny – there are indeed great rocks just nearby...]])
73"</p></rt><rt image=map:khantrukh.png><p line-spacing=3 font-size=12>" ..134.. new_objectives(start_quarries)
74_[[ "The northern winds tell us that the coming winter will be a long and cruel one. One lumberjack's hut will not be enough to fit the needs of our people. More trees wait for our axes just south of our new crossroads - let us raise a second lumberjack's hut there!"<br><br>-- NEW OBJECTIVE --<br> ]] ..135
75_"* Place a lumberjack's hut just south of the flag you just placed on the road. Connect the flag you just raised with the flag of the new lumberjack's hut construction site afterwards.<br> Note that instead of building a road step by step, you may also click directly at its destination to build the entire road at once." ..136khantrukh_8 = khantrukh(_[[Very well done, chieftain. We now have all we need to face the winter and may prepare ourselves for the battles ahead.]])
76"</p></rt>"137.. objective_text(_"Victory",
77138 _[[You may continue to play this map if you wish. Otherwise, move on to the next mission.]]
78khantrukh_6 = "<rt><p font-size=24 font-face=DejaVuSerif font-weight=bold font-color=8080FF>" ..139)
79_"Khantrukh nods..." ..
80"</p></rt><rt image=map:khantrukh.png><p line-spacing=3 font-size=12>" ..
81_[[ "Of course, if we intended to build a bigger settlement, many more lumberjack's huts would be advisable, but this should suffice for now.<br> But never forget - these forests are our heritage, entrusted upon us by our ancestors. We must always respect and care for them. What we take, we must give back again.<br> So, in order to replace the trees we chop down, we should build a ranger's hut, preferably close to the lumberjack's hut."<br><br>-- NEW OBJECTIVE --<br> ]] ..
82_"* Build a ranger's hut to the east of the first lumberjack's hut." ..
83"</p></rt>"
84
85
86khantrukh_7 = "<rt><p font-size=24 font-face=DejaVuSerif font-weight=bold font-color=8080FF>" ..
87_"The elder speaks..." ..
88"</p></rt><rt image=map:khantrukh.png><p line-spacing=3 font-size=12>" ..
89_[[ "I am well aware, chieftain, that neither you nor your warriors have the desire to stay in this forsaken place for long. But even so, our war to reconquer our home might take a long time and it would seem wise to make preparations.<br> I would advise that we obtain stones for the future - who knows what fortifications we might be forced to build very soon. And - like a gift of destiny - there are indeed great rocks just nearby..."<br><br>-- NEW OBJECTIVE --<br> ]] ..
90_"* Build two quarries southwest of your headquarters." ..
91"</p></rt>"
92
93khantrukh_8 = "<rt image=map:khantrukh.png><p line-spacing=3 font-size=12>" ..
94_[[ "Very well done, chieftain. We now have all we need to face the winter and may prepare ourselves for the battles ahead.<br><br>--------------------- VICTORY! ----------------------<br><br> You may continue to play this map if you wish. Otherwise, move on to the next mission." ]] ..
95"</p></rt>"
96140
97-- =======================================================================141-- =======================================================================
98-- General story texts by the chieftain 142-- General story texts by the chieftain
99-- =======================================================================143-- =======================================================================
100story_msg1 = {144story_msg1 = {
101 title = _"In the night",145 title = _"In the Night",
102 msg ="<rt><p font-size=24 font-face=DejaVuSerif font-weight=bold font-color=2F9131>" ..146 msg = thron(_"Thron says...",
103_"Thron speaks..." ..147_[[During another sleepless night, I went up to the hill and gazed towards the north. The fires are still burning, satisfying their hunger upon my father’s legacy.]] .. "<br><br>" ..
104"</p></rt><rt image=map:chieftain.png><p line-spacing=3 font-size=12>" ..148_[[They are a constant reminder of why we have to hide here... and why we must return in the end!]]),
105_ [[ "In another sleepless night, I went up to the hill and gazed to the north. The fires are still burning, satisfying their hunger upon my father's legacy.<br> They are a constant reminder why we have to hide here... and why we must return in the end!" ]] ..
106"</p></rt>",
107field = al_thunran,149field = al_thunran,
108}150}
109151
110story_msg2= {152story_msg2= {
111 title = _"At the tomb",153 title = _"At the Tomb",
112 msg = "<rt><p font-size=24 font-face=DejaVuSerif font-weight=bold font-color=2F9131>" .. 154 msg = thron(_"Thron says...",
113_"Thron speaks..." ..155_[[Once again, I went up to my father’s tomb, in a sacred grove at the foot of the great spire of Kal’mavrath. I just stood there and felt neither the hours pass nor the cold rain pouring down from the darkened sky...]] .. "<br><br>" ..
114"</p></rt><rt image=map:chieftain.png><p line-spacing=3 font-size=12>" ..156_[[Somehow, it felt like a farewell. For the first time, I wondered what the future might hold for me...]]),
115_[[ "Once again, I went up to my father's tomb, in a sacred grove at the foot of the great spire of Kal'mavrath. I just stood there and felt neither the hours pass nor the cold rain pouring down from a darkened sky...<br> Somehow it felt like a farewell. For the first time, I wondered what the future might hold for me..." ]] ..
116"</p></rt>",
117field = grave,157field = grave,
118}158}
119159
120story_msg3 = {160story_msg3 = {
121 title=_ "The other day",161 title=_ "The Other Day",
122 msg = "<rt><p font-size=24 font-face=DejaVuSerif font-weight=bold font-color=2F9131>" ..162 msg = thron(_"Thron says thoughtfully...",
123_"Thron says thoughtfully..." ..163_[[Some time ago, Boldreth came to me. His advice was to move to a place closer to home – to strike at the first sign of my brothers’ forces wavering.]] .. "<br><br>" ..
124"</p></rt><rt image=map:chieftain.png><p line-spacing=3 font-size=12>" ..164_[[But when I look over the forests I can still see black smoke rising to the sky. I know – it is too early yet, and what he hopes for will not happen any time soon. He might still be right, but I fear the bloodshed that returning too fast would cause both on our and the other side...]])
125_[[ "Some time ago, Boldreth came to me. His advice was to move to a place closer to home - to strike at the first sign of my brothers' forces wavering.<br> But I look over the forests and I can still see black smoke rising to the sky. I know - it is too early yet, and what he hopes for will not happen any time soon. He might still be right, but I fear the bloodshed that returning too fast would cause both on our and the other side..." ]] ..
126"</p></rt>"
127}165}
128166
129story_msg4 = {167story_msg4 = {
130title =_ "The oath",168title =_ "The Oath",
131msg = "<rt><p font-size=24 font-face=DejaVuSerif font-weight=bold font-color=2F9131>" ..169msg = thron(_"Thron looks furious...",
132_"Thron looks furious..." ..170_[[Today, my warriors picked up an old man, wandering sick and wounded through the dark forest. We listened in horror as he told us of the atrocities taking place in Al’thunran.]] .. "<br><br>" ..
133"</p></rt><rt image=map:chieftain.png><p line-spacing=3 font-size=12>" ..171_[[I hereby renew my oath – I will stop this madness at any cost!]])
134_[[ "Today, my warriors picked up an old man, wandering sick and wounded through the dark forest. We listened in horror when he told us of the atrocities taking place in Al'thunran.<br> I hereby renew my oath - I will stop this madness at any cost!" ]] ..
135"</p></rt>"
136}172}
137173
138174
=== modified file 'campaigns/t02.wmf/elemental'
--- campaigns/t02.wmf/elemental 2010-11-18 10:39:43 +0000
+++ campaigns/t02.wmf/elemental 2014-03-05 18:47:45 +0000
@@ -4,7 +4,7 @@
4map_h=644map_h=64
5nr_players=15nr_players=1
6world=greenland6world=greenland
7name=_"02 - A Place to call Home"7name=_"02 – A Place to Call Home"
8author=Winterwind8author=Winterwind
9descr=_"In this scenario the higher production buildings, including mining and the military expansions will be introduced."9descr=_"In this scenario, the higher production buildings including mining and military expansions will be introduced."
10background="tribes/barbarians/pics/campmap-tut1+2.jpg"10background="tribes/barbarians/pics/campmap-tut1+2.jpg"
1111
=== modified file 'campaigns/t02.wmf/scripting/mission_thread_texts.lua'
--- campaigns/t02.wmf/scripting/mission_thread_texts.lua 2012-12-16 19:08:16 +0000
+++ campaigns/t02.wmf/scripting/mission_thread_texts.lua 2014-03-05 18:47:45 +0000
@@ -1,53 +1,9 @@
1-- =========================1-- =========================
2-- Some formating functions2-- Some formating functions
3-- =========================3-- =========================
4-- Rich Text4
5function rt(text_or_opts, text)5use("aux", "formatting")
6 k = "<rt>"6use("aux", "format_scenario")
7 if text then
8 k = ("<rt %s>"):format(text_or_opts)
9 else
10 text = text_or_opts
11 end
12
13 return k .. text .. "</rt>"
14end
15
16-- Headings
17function h1(s)
18 return "<p font=DejaVuSerif font-size=18 font-weight=bold font-color=D1D1D1>"
19 .. s .. "<br></p><p font-size=8> <br></p>"
20end
21
22function h2(s)
23 return "<p font=DejaVuSerif font-size=12 font-weight=bold font-color=D1D1D1>"
24 .. s .. "<br></p><p font-size=4> <br></p>"
25end
26
27-- Simple flowing text. One Paragraph
28function p(s)
29 return "<p line-spacing=3 font-size=12>" .. s .. "<br></p>" ..
30 "<p font-size=8> <br></p>"
31end
32
33-- Direct speech by one of the persons that appear in the map
34function speech(img, clr, g_title, g_text)
35 local title, text = g_title, g_text
36 if not text then
37 title = nil
38 text = g_title
39 end
40
41 local s = ""
42 if title then
43 s = rt("<p font-size=20 font-weight=bold font-face=DejaVuSerif " ..
44 ("font-color=%s>"):format(clr) .. title ..
45 "</p><p font-size=8> <br></p>"
46 )
47 end
48
49 return s .. rt(("image=%s"):format(img), p(text))
50end
517
52function thron(title, text)8function thron(title, text)
53 return speech("map:chieftain.png", "2F9131", title, text)9 return speech("map:chieftain.png", "2F9131", title, text)
@@ -59,146 +15,133 @@
59 return speech("map:boldreth.png", "FF0000", title, text)15 return speech("map:boldreth.png", "FF0000", title, text)
60end16end
6117
62function obj_text(heading, body)
63 return rt(h2(heading) .. p(body))
64end
65
66function new_objectives(...)
67 local s = rt(
68 "<p font=DejaVuSerif font-size=18 font-weight=bold font-color=D1D1D1>"
69 .. _"New Objectives" .. "</p>")
70
71 for idx,obj in ipairs{...} do
72 s = s .. obj.body
73 end
74 return s
75end
76
77
78-- =======================================================================18-- =======================================================================
79-- OBJECTIVES 19-- OBJECTIVES
80-- =======================================================================20-- =======================================================================
81obj_claim_northeastern_rocks = {21obj_claim_northeastern_rocks = {
82 name = "mission quarry",22 name = "mission quarry",
83 title =_"Expand north-east and build a quarry",23 title =_"Expand north-east and build a quarry",
84 body = obj_text(_"Expand north-east to the stones", _24 number = 1,
85[[Build military buildings (like sentries or barriers) to expand your25 body = objective_text(_"Expand north-east to the stones", _(
86territory. Get to the rocks northeast from you and build a quarry there.]]26[[Build military buildings (like sentries or barriers) to expand your territory. ]] ..
87 ),27[[Get to the rocks north-east from you and build a quarry there.]]
28 )),
88}29}
8930
90obj_build_mines = {31obj_build_mines = {
91name="mission mines",32 name="mission mines",
92title=_"Start building mines on the mountain",33 title=_"Start building mines on the mountain",
93body= obj_text(_"Build coal and iron ore mines", _34 number = 2,
94[[Build a coal mine and an iron ore mine. To do so, place a flag up on the35 body= objective_text(_"Build coal and iron ore mines", _(
95mountain's flank to the east (on mountain terrain though, not mountain meadow).36[[Build a coal mine and an iron ore mine. To do so, place a flag up on the mountain’s flank to the east ]] ..
96When you click at the new flag you can send geologists there. Because the flag37[[(on mountain terrain though, not mountain meadow). When you click on the new flag, you can send geologists there. ]] ..
97is on mountains, the geologists will search for ores; otherwise, they will38[[Because the flag is on a mountain, the geologists will search for ores; otherwise, they would search for water. ]] ..
98search for water. Then build a mine for both kinds of resource he will find,39[[Then build a mine for both kinds of resources that he will find, choosing the mine to be built appropriately:]]) .. "<br><br>" ..
99choosing the mine to be built appropriately:<br> Black - coal<br> Red - iron40_[[Black – coal]] .. "<br>" ..
100ore<br> Yellow - gold<br> Grey - granite<br> Mines may only be built on41_[[Red – iron ore]] .. "<br>" ..
101mountain terrain. Suitable places for mines are displayed as hammer and pick.]]42_[[Yellow – gold]] .. "<br>" ..
43_[[Grey – granite]] .. "<br><br>" ..
44_[[Mines can only be built on mountain terrain. Suitable places for mines are displayed as a mining symbol.]]
102 )45 )
103}46}
10447
105obj_basic_food = {48obj_basic_food = {
106 name="basic food began",49 name="basic food began",
107 title=_"Provide your miners with food",50 title=_"Provide your miners with food",
108 body= obj_text(_"Build a hunter, a gamekeeper and a tavern", _51 number = 3,
109[[In order to work, your miners need food.<br> A hunter can hunt down animals,52 body= objective_text(_"Build a hunter, a gamekeeper and a tavern", _
110while a gamekeeper prevents them from becoming extinct. The meat is then53[[In order to work, your miners need food.]] .. "<br><br>" ..
111processed in a tavern into lunches for your miners.<br> This is only the54_([[A hunter can hunt down animals, while a gamekeeper prevents them from becoming extinct. ]] ..
112first example of a ware which has to be refined before being used in a55[[The meat is then processed in a tavern into lunches for your miners.]]) .. "<br><br>" ..
113secondary building - others will follow.]]56_([[This is only the first example of a ware which has to be refined before being used in a secondary building]] ..
57[[ – others will follow.]])
114 )58 )
115}59}
11660
117obj_begin_farming = {61obj_begin_farming = {
118name="farming began",62 name="farming began",
119title=_"Bake bread",63 title=_"Bake bread",
120body=obj_text(_ "Build a well, a farm and a bakery", _64 number = 3,
121[[Other ways to produce food - different kinds of food - are fishers and65 body=objective_text(_ "Build a well, a farm and a bakery", _(
122hunters. The wheat of the farms has to be processed with water in a bakery66[[Other ways to produce food – different kinds of food – are fishers and hunters. ]] ..
123before it becomes edible. You can obtain water by building a well at a spot67[[The wheat of the farms has to be processed with water in a bakery before it becomes edible. ]] ..
124where your geologists find a water source.]]68[[You can obtain water by building a well at a spot where your geologists have found a water source.]]
125 )69 ))
126}70}
12771
128obj_refine_ores = {72obj_refine_ores = {
129name="refining began",73 name="refining began",
130title=_"Refine your mined resources",74 title=_"Refine your mined resources",
131body= obj_text(_ "Build a smelting works", _75 number = 1,
132[[The iron ore your miners bring up is not usable yet - it has to be melted76 body= objective_text(_ "Build a smelting works", _
133into iron first.]]77[[The iron ore your miners dig up is not usable yet – it has to be melted into iron first.]]
134 )78 )
135}79}
13680
137obj_enhance_buildings = {81obj_enhance_buildings = {
138name="enhance buildings",82 name="enhance buildings",
139title=_"Enhance buildings and build a micro brewery",83 title=_"Enhance buildings and build a micro brewery",
140body= obj_text(_84 number = 3,
85 body= objective_text(_
141[[Enhance the coal mine and the tavern to the better versions of their86[[Enhance the coal mine and the tavern to the better versions of their
142buildings respectively. Also build a micro brewery.]], _87buildings respectively. Also build a micro brewery.]], _(
143[[A normal mine can only dig up about one third of all resources lying beneath88[[A normal mine can only dig up about one third of all the resources lying beneath it; ]] ..
144it; then it must be enhanced to a deep mine in order to keep it working89[[then it must be enhanced to a deep mine in order to keep it working properly. ]] ..
145properly. To enhance a building, choose it and then click the appropriate90[[To enhance a building, choose it and then click the appropriate button in the appearing window.]]) .. "<br><br>" ..
146button in the appearing window.<br> Workers gain experience by successful work.91_([[Workers gain experience by successful work. With enough experience, they become more advanced workers, ]] ..
147With enough experience they become more advanced workers, who are necessary to92[[who are necessary to operate the enhanced buildings. ]] ..
148operate the enhanced buildings. Do not enhance a building before you have93[[Do not enhance a building before you have enough advanced workers to operate the advanced building!]]) .. "<br><br>" ..
149enough advanced workers to operate the advanced building! Such buildings94_([[Such buildings usually have greater demands than the basic kind of that building]] ..
150usually have greater demands than the basic kind of that building - for95[[ – for instance, deep mines need snacks instead of rations. ]] ..
151instance, deep mines need snacks instead of rations. You will have to enhance96[[You will have to enhance your tavern to an inn in order to produce snacks out of pitta bread AND a second kind of food]] ..
152your tavern to an inn in order to produce snacks out of pitta bread AND a97[[ (meat or fish) AND beer. You may of course enhance all mines to deep mines instantly given you have the workers]] ..
153second kind of food (meat or fish) AND beer. You may of course enhance all98[[ – bigger mines work a bit faster, smaller mines need cheaper food. It’s up to you which strategy you prefer.]]
154mines to deep mines instantly given you have the workers - bigger mines work a99 ))
155bit faster, smaller mines need cheaper food. It's up to you which strategy you
156prefer.]]
157 )
158}100}
159101
160obj_better_material_1 = {102obj_better_material_1 = {
161name="built hardener",103 name="built hardener",
162title=_"Build a wood hardener",104 title=_"Build a wood hardener",
163body= obj_text(_ "Build a wood hardener", _105 number = 1,
164[[Bigger and better buildings - including all military ones - require better106 body= objective_text(_ "Build a wood hardener", _(
165building materials. They cannot be built of simple trunks - the wood has to be107[[Bigger and better buildings – including all military ones – require better building materials. ]] ..
166refined to blackwood by a wood hardener first. Always remember to build a wood108[[They cannot be built out of simple logs – the wood has to be refined to blackwood by a wood hardener first. ]] ..
167hardener before you run out of blackwood, as without it you cannot expand.]]109[[Always remember to build a wood hardener before you run out of blackwood, as without it you cannot expand.]]
168 )110 ))
169}111}
170112
171obj_better_material_2 = {113obj_better_material_2 = {
172name="mission grindstone",114 name="mission grindstone",
173title=_"Build a lime kiln and coal economy",115 title=_"Build a lime kiln and coal economy",
174body=obj_text(_"Build a lime kiln, a well and a charcoal burner or coal mine", _116 number = 3,
175[[Better buildings may also require other improved materials besides blackwood.117 body=objective_text(_"Build a lime kiln, a well and a charcoal burner or coal mine", _(
176One of those is grout, which is produced out of raw stone, water and coal by a118[[Better buildings may also require other improved materials besides blackwood. ]] ..
177lime-burner. You can obtain water by building a well upon a water source, which119[[One of these is grout, which is produced out of raw stone, water and coal by a lime-burner.]]) .. "<br><br>" ..
178your geologists can discover when you send them to any flag that is not on a120_([[You can obtain water by building a well upon a water source, ]] ..
179mountain. Coal can be obtained by building a charcoal burner or a coal mine.]]121[[which your geologists can discover when you send them to any flag that is not on a mountain. ]] ..
180 )122[[Coal can be obtained by building a charcoal burner or a coal mine.]]
123 ))
181}124}
182125
183obj_better_material_3 = {126obj_better_material_3 = {
184name="mission fernery",127 name="mission fernery",
185title=_"Build a fernery",128 title=_"Build a reed yard",
186body= obj_text(_"Build a fernery", _129 number = 1,
187[[The third material necessary for improved buildings is thatch reed, used to130 body= objective_text(_"Build a reed yard", _(
188cover roofs. Thatch reed is planted by a ferner around his building, the131[[The third material necessary for improved buildings is thatch reed, used to cover roofs. ]] ..
189fernery.]]132[[Thatch reed is planted by a gardener around his building, the reed yard.]]
190 )133 ))
191}134}
192135
193obj_build_cattlefarm = {136obj_build_cattlefarm = {
194 name = "mission cattlefarm", 137 name = "mission cattlefarm",
195 title = _ "Build a cattlefarm",138 title = _ "Build a cattlefarm",
196 body = obj_text(_"Build a cattlefarm", _139 number = 1,
197[[When roads are under heavy load for a long time, one carrier is usually not140 body = objective_text(_"Build a cattlefarm", _(
198enough to transport goods swiftly. Traffic jams are the consequence. Such roads141[[When roads are under heavy load for a long time, one carrier is usually not enough to transport goods swiftly. ]] ..
199therefore employ a second carrier: An ox that helps to carry the wares. This142[[Traffic jams are the consequence. Such roads therefore employ a second carrier: ]] ..
200doubles the transport capacity.<br>Oxen are bred in cattle farms143[[An ox that helps to carry the wares. This doubles the transport capacity.]]) .. "<br><br>" ..
201out of wheat and water.]]144_[[Oxen are bred in cattle farms out of wheat and water.]]
202 )145 )
203}146}
204147
@@ -207,237 +150,273 @@
207-- Texts for the Main Mission Thread 150-- Texts for the Main Mission Thread
208-- =======================================================================151-- =======================================================================
209briefing_msg_1 = {152briefing_msg_1 = {
210 title =_ "The story continues",153 title =_ "The Story Continues",
211 body = thron(_"Thron shakes his head...",154 body = thron(_"Thron is shaking his head...",
212_[[ "The war goes on. More and more of our brothers and sisters flee the brutal war raging in the capital beneath the trees.<br> The stories they tell about the deeds of our kin are sad to hear. I've spent nights lying awake, restless, more tired I ever believed one could be. Yet whenever I close my eyes, I see the fortress my father built consumed by flames. The Throne Among the Trees, the symbol of unity and peace among our kin, became the wedge that drives us apart." ]]155_([[The war goes on. More and more of our brothers and sisters flee the brutal war raging ]] ..
156[[in the capital beneath the trees.]]) .. "<br><br>" ..
157_([[The stories they tell about the deeds of our kin are sad to hear. ]] ..
158[[I’ve spent nights lying awake, restless, more tired than I ever believed one could be. ]] ..
159[[Yet whenever I close my eyes, I see the fortress my father built consumed by flames. ]] ..
160[[The Throne Among the Trees, the symbol of unity and peace among our kin, became the wedge that drives us apart.]])
213 )161 )
214}162}
215163
216briefing_msg_2 = {164briefing_msg_2 = {
217 title =_ "The story continues",165 title =_ "The Story Continues",
218 body = thron(166 body = thron(
219_ [[ "Today my hunters brought men, women and little children who had hidden out in the forests, trying to escape the war, hate and revenge that rage among the tribes fighting each other like in old times, when we were no more but wild beasts driven and controlled by instincts. None of my brothers will ever gain and hold control over the wooden throne, none of the tribes will be strong enough to subdue the other. There will be no end to this slaughtering, unless... is this it? As father told me?<br> Rise against whoever threatens our very existence, may it even be one of your blood or mind?" ]]167_([[Today my hunters brought men, women and little children before me who had hidden out in the forests, ]] ..
168[[trying to escape the war, hate and revenge that rage among the tribes fighting each other like in olden times, ]] ..
169[[when we were no more but wild beasts driven and controlled by instincts. ]] ..
170[[None of my brothers will ever gain and hold control over the wooden throne, ]] ..
171[[none of the tribes will be strong enough to subdue the other. T]] ..
172[[here will be no end to this slaughter, unless... is this it? As father told me?]]) .. "<br><br>" ..
173_([[To rise against whoever threatens our very existence, even tough it may be one of your own blood or mind?]])
220 )174 )
221}175}
222176
223177
224briefing_msg_3 = {178briefing_msg_3 = {
225 title =_ "The story continues",179 title =_ "The Story Continues",
226 body = thron(180 body = thron(
227_[[ "Boldreth seems more and more torn as the days go by. The spirits of my fellows sink as the cold season approaches, and we are still living in no more than huts and barracks. I never intended to stay out here in the wilderness for so long - but I never thought my brothers would engage in this senseless battle for so long either.<br> Perhaps it's time to make ourselves feel a little more at ease here. Perhaps it's time to give those who still live and think united a new home, replacing what is now lost to us? Until we can return to the place we once called our home..." ]]181_([[Boldreth seems more and more torn as the days go by. ]] ..
182[[The spirits of my fellows sink as the cold season approaches, and we are still living in no more than huts and barracks. ]] ..
183[[I never intended to stay out here in the wilderness for so long]] ..
184[[ – but I never thought my brothers would engage in this senseless battle for so long either.]]) .. "<br><br>" ..
185_([[Perhaps it’s time to make ourselves feel a little more at ease here. ]] ..
186[[Perhaps it’s time to give those who still live and think united a new home, ]] ..
187[[replacing what is now lost to us? Until we can return to the place we once called our home...]])
228 )188 )
229}189}
230190
231191
232order_msg_1 = {192order_msg_1 = {
233 title=_"Your loyal companion",193 title=_"Your Loyal Companion",
234 body = boldreth(_"Brave Boldreth steps aside you...",194 body = boldreth(_"Brave Boldreth steps to your side...",
235_[[ "So you want to prepare us for a longer stay in these forests, Thron? Well, I see the wisdom in doing so, yet my heart is yearning for a glorious return to Al'thunran. Too long have we waited while our brethren have fought on the battlefield, and our axes and swords have turned rusty over time." ]]195_([[So you want to prepare us for a longer stay in these forests, Thron? ]] ..
196[[Well, I see the wisdom in doing so, yet my heart is yearning for a glorious return to Al’thunran. ]] ..
197[[Too long have we waited while our brethren have fought on the battlefield, ]] ..
198[[and our axes and swords have turned rusty over time.]])
236 )199 )
237}200}
238201
239202
240order_msg_2 = {203order_msg_2 = {
241 title =_ "The advisor",204 title =_ "The Advisor",
242 body = khantrukh(_"Khantrukh joins in ...",205 body = khantrukh(_"Khantrukh joins in ...",
243_[[ "I beg your forgiveness, chieftain, but I have a grave concern to discuss with you. The rocks close to our camp are shrinking fast under our workers' tools, and it is a matter of little time only before they are all gone." ]]206_([[I beg your forgiveness, chieftain, but I have a grave concern to discuss with you. ]] ..
207[[The rocks close to our camp are shrinking fast under our workers’ tools, ]] ..
208[[and it is a matter of little time only before they are all gone.]])
244 )209 )
245}210}
246211
247order_msg_3 = {212order_msg_3 = {
248 title=_"Your loyal companion", 213 title=_"Your Loyal Companion",
249 posx = 0,214 posx = 0,
250 body = boldreth( _"Boldreth jumps up...", 215 body = boldreth( _"Boldreth jumps up...",
251_[["While it is certainly no worthy task for a warrior, at least it is216_([[While it is certainly no worthy task for a warrior, at least it is something to do! ]] ..
252something to be done! Thron, what do you say about me taking a few of our most217[[Thron, what would you say about my taking a few of our most restless warriors ]] ..
253restless warriors and venturing somewhat closer to the great mountain of218[[and venturing somewhat closer to the great mountain of Kal’mavrath]] ..
254Kal'mavrath - maybe we will find some more big stones to please the old man?"]]219[[ – maybe we will find some more big stones to please the old man?]])
255 ) .. new_objectives(obj_claim_northeastern_rocks),220 ) .. new_objectives(obj_claim_northeastern_rocks),
256}221}
257222
258order_msg_4 = {223order_msg_4 = {
259 title =_ "The advisor",224 title =_ "The Advisor",
260 posx = 0,225 posx = 0,
261 body = khantrukh( _"Khantrukh grumbles...", _226 body = khantrukh( _"Khantrukh grumbles...", _
262 [[ "Old man? Disrespectful youth!" ]]227 [[Old man? Disrespectful youth!]]
263 )228 )
264}229}
265230
266order_msg_5_quarry = {231order_msg_5_quarry = {
267 title=_"The advisor",232 title=_"The Advisor",
268 body= khantrukh( _"Khantrukh nods satisfied...", _233 body= khantrukh( _"Khantrukh nods satisfied...", _
269[[ "At last! These rocks should last for a while." ]]234[[At last! These rocks should last for a while.]]
270 )235 )
271}236}
272237
273order_msg_6_geologist = {238order_msg_6_geologist = {
274 title=_"Your loyal companion",239 title=_"Your Loyal Companion",
275 body=boldreth(_"Boldreth exclaims...", _240 body=boldreth(_"Boldreth exclaims...",
276[["Just look at that! In the east is the great mountain of Kal'mavrath! I241_([[Just look at that! In the east is the great mountain of Kal’mavrath! ]] ..
277wonder what treasures nature might have hidden beneath its majestic flanks!<br>242[[I wonder what treasures nature might have hidden beneath its majestic flanks!]]) .. "<br><br>" ..
278Let's expand to the east. There's a chance for the elderly to become useful243_([[Let’s expand to the east. There’s a chance for the elderly to become useful once in a while! ]] ..
279once in a while! Let us send out some of those who understand the stone's244[[Let us send out some of those who understand the stone’s tongue to unravel the mountain’s secrets!]])
280tongue to unravel the mountain's secrets!"]]) .. new_objectives(obj_build_mines)245 ) .. new_objectives(obj_build_mines)
281}246}
282247
283order_msg_7_mines_up = {248order_msg_7_mines_up = {
284 title=_"Your loyal companion",249 title=_"Your Loyal Companion",
285 body=boldreth(_"Boldreth laughs...", _250 body=boldreth(_"Boldreth laughs...",
286[[ "By Chat'Karuth's beard, this is awesome! Just imagine what we can use this coal and iron ore for!<br> It might even be enough to..." ]]251_([[By Chat’Karuth’s beard, this is amazing! Just imagine what we can use this coal and iron ore for!]]) .. "<br><br>" ..
252_([[It might even be enough to...]])
287 )253 )
288}254}
289255
290order_msg_8_mines_up = {256order_msg_8_mines_up = {
291 title=_"The advisor",257 title=_"The Advisor",
292 body =khantrukh(_"Khantrukh interrupts...", _258 body =khantrukh(_"Khantrukh interrupts...",
293[[ "While this is true, we should consider it later, for now other obstacles are at hand. The miners will definitely demand greater rations for working high up on the mountain in this bitter cold, and providing these supplies may not be easy." ]]259_([[While this is true, we should consider it later, for now other obstacles are at hand. ]] ..
260[[The miners will definitely demand greater rations for working high up on the mountain in this bitter cold, ]] ..
261[[and providing these supplies may not be easy.]])
294 )262 )
295}263}
296264
297265
298order_msg_9_hunter = {266order_msg_9_hunter = {
299 title=_"Your loyal companion",267 title=_"Your Loyal Companion",
300 body=boldreth(_"Boldreth nods...", _268 body=boldreth(_"Boldreth nods...",
301[["I have to hand it to you: you are right here, old man.<br> There seem to be269_([[I have to hand it to you: you are right here, old man.]]) .. "<br><br>" ..
302quite many animals in the forests here - we might just hunt down more of them.270_([[There seem to be quite a lot of animals in the forests here – we might just hunt down more of them. ]] ..
303And, of course, the people would cheer to a new tavern - hey, we might call it271[[And, of course, the people would cheer a new tavern – hey, we might call it ‘Thron’s Pride’ or so if you want!]])
304'Thron's Pride' or so if you want!"]]) .. new_objectives(obj_basic_food)272 ) .. new_objectives(obj_basic_food)
305}273}
306274
307order_msg_10_bread = {275order_msg_10_bread = {
308 title=_"The advisor",276 title=_"The Advisor",
309 body=khantrukh(_"The elder jumps into the air...", _277 body=khantrukh(_"The elder jumps into the air...",
310[["Wisdom commands to seek variety.<br> North of the great mountain is a large278_([[Wisdom commands to seek variety.
311plain - why don't we use the space Mother Nature gave us and build a farm? I279
312sure would enjoy a freshly baked pitta bread for a change..."]]) ..280North of the great mountain is a large plain – why don’t we use the space Mother Nature gave us and build a farm? ]] ..
313 new_objectives(obj_begin_farming)281[[I sure would enjoy a freshly baked pitta bread for a change...]])
282 ) .. new_objectives(obj_begin_farming)
314}283}
315284
316order_msg_11_basic_food_began = {285order_msg_11_basic_food_began = {
317 title=_"Your loyal companion",286 title=_"Your Loyal Companion",
318 body=boldreth(_"Boldreth cheers up...", _287 body=boldreth(_"Boldreth cheers up...",
319[[ "Our hunters are out in the forests, Thron.<br> I promise you, before the sun sets today you will have a magnificent meal fit for the chieftain of all clans!" ]]288_([[Our hunters are out in the forests, Thron.]]) .. "<br><br>" ..
289_([[I promise you, before the sun sets today you will have a magnificent meal fit for the chieftain of all clans!]])
320 )290 )
321}291}
322292
323order_msg_12_farming_began = {293order_msg_12_farming_began = {
324 title=_"The advisor",294 title=_"The Advisor",
325 body=khantrukh(_ "Khantrukh gazes over the plains...", 295 body=khantrukh(_ "Khantrukh gazes over the plains...",
326_[[ "Isn't it lovely, the view of golden fields, growing peacefully, dancing to the wind? And I believe the baker is just on his way here, with his most delicious bread reserved for our chieftain alone!" ]]296_([[Isn’t it lovely, the view of golden fields, growing peacefully, dancing to the wind? ]] ..
297[[And I believe the baker is just on his way here, with his most delicious bread reserved for our chieftain alone!]])
327 )298 )
328}299}
329300
330order_msg_13_tavern = {301order_msg_13_tavern = {
331 title=_"A beautiful morning",302 title=_"A Beautiful Morning",
332 body=thron(_"Thron recognizes...", _303 body=thron(_"Thron recognizes...",
333[[ "A tavern opened for our people yesterday. While I am hardly in the mood for celebration, I noticed how much this tiny bit of home meant to my people. Their songs filled the air until the deep night, and they were in higher spirit still the day after.<br> Maybe we actually are slowly creating a place here which we can... call home." ]]304_([[A tavern opened for our people yesterday. While I am hardly in the mood for celebration, ]] ..
305[[I noticed how much this tiny bit of home means to my people. ]] ..
306[[Their songs filled the air until deep in the night, and they were in higher spirits still the day after.]]) .. "<br><br>" ..
307_([[Maybe we actually are slowly creating a place here which we can... call home.]])
334 )308 )
335}309}
336310
337order_msg_14_refine_ore = {311order_msg_14_refine_ore = {
338 title=_ "Your loyal companion",312 title=_ "Your Loyal Companion",
339 body= boldreth(_"Boldreth remarks...", _313 body= boldreth(_"Boldreth remarks...",
340[["So now that we have both the mines and the food to sustain them, we should314_([[So now that we have both the mines and the food to sustain them, ]] ..
341bring what our brave miners gain for us into a more useful state. The iron ore315[[we should bring what our brave miners gain for us into a more useful state. ]] ..
342has to be melted into iron so that it is ready to be forged into whatever we316[[The iron ore has to be melted into iron so that it is ready to be forged into whatever we want. ]] ..
343want. And we need the coal to keep the smelter's ovens burning."]]) ..317[[And we need the coal to keep the smelter’s ovens burning.]])
344 new_objectives(obj_refine_ores)318 ) .. new_objectives(obj_refine_ores)
345}319}
346320
347order_msg_15_mines_exhausted = {321order_msg_15_mines_exhausted = {
348 title=_ "The advisor", 322 title=_ "The Advisor",
349 body = khantrukh(_"Khantrukh speaks...", _ 323 body = khantrukh(_"Khantrukh speaks...",
350[["Our miners are digging up less and less by day! We have to go deeper,324_([[Our miners are digging up less and less by the day! We have to go deeper, closer to the mountain’s core, ]] ..
351closer to the mountain's core, if we want more of its treasures!<br> Of course,325[[if we want more of its treasures!]]) .. "<br><br>" ..
352it is dark and cold in such depths and only few venture voluntarily into these326_([[Of course, it is dark and cold in such depths and only a few venture voluntarily into these places. ]] ..
353places. We should reward this bravery with greater rations for them. And a pint327[[We should reward this bravery with greater rations for them. And a pint of beer or two will keep their spirits high.]])
354of beer or two will keep their spirits high."]]) .. 328 ) .. new_objectives(obj_enhance_buildings)
355 new_objectives(obj_enhance_buildings)
356}329}
357330
358order_msg_16_blackwood = {331order_msg_16_blackwood = {
359 title=_"Your loyal companion",332 title=_"Your Loyal Companion",
360 body= boldreth(_"Boldreth seems concerned...", _333 body= boldreth(_"Boldreth seems concerned...",
361[["As I just discovered, we are running short on blackwood! We cannot put our334_([[As I just discovered, we are running short on blackwood! We cannot put our warriors into some crumbling huts, ]] ..
362warriors into some crumbling huts, and even less so in times as dangerous as335[[and even less so in times as dangerous as ours!]]) .. "<br><br>" ..
363ours!<br> We need a wood hardener, and we need one now!"]]) .. 336_([[We need a wood hardener, and we need one now!]])
364 new_objectives(obj_better_material_1)337 ) .. new_objectives(obj_better_material_1)
365}338}
366339
367order_msg_17_grindstone = {340order_msg_17_grindstone = {
368 title=_"Your loyal companion",341 title=_"Your Loyal Companion",
369 body= boldreth(_"Boldreth smiles...", _342 body= boldreth(_"Boldreth smiles...",
370[["Well, old friend, this should ensure that our fortifications do not break343_([[Well, old friend, this should ensure that our fortifications do not break down with our foes’ first battle cry! ]] ..
371down with our foes' first battle cry! Now we can expand safely!<br> Still, it344[[Now we can expand safely!]]) .. "<br><br>" ..
372would not hurt to assemble some grout for our further campaign; thus we could,345_([[Still, it would not hurt to accumulate some grout for our further campaign; ]] ..
373in times of need, build a fortress as the world has not seen before!"]]) .. 346[[thus we could, in times of need, build a fortress such as the world has never seen before!]])
374 new_objectives(obj_better_material_2)347 ) .. new_objectives(obj_better_material_2)
375}348}
376349
377order_msg_18_fernery = {350order_msg_18_fernery = {
378 title=_"The advisor", 351 title=_"The Advisor",
379 body= khantrukh(_"Khantrukh steps in...", _352 body= khantrukh(_"Khantrukh steps in...",
380[["Chieftain, this is a disgrace! It is well that we can produce grout for353_([[Chieftain, this is a disgrace! ]] ..
381mighty fortifications and great buildings now - only this does not prevent our354[[It is well that we can produce grout for mighty fortifications and great buildings now]] ..
382roofs from becoming leaky! Maybe the young ones like spending their nights in355[[ – only this does not prevent our roofs from becoming leaky! ]] ..
383the rain, but I just can't find any sleep with these raindrops dripping on my356[[Maybe the young ones like spending their nights in the rain, ]] ..
384face!<br> Now this is a problem we should do something about!"]]) .. 357[[but I just can’t find any sleep with these raindrops dripping on my face!]]) .. "<br><br>" ..
385 new_objectives(obj_better_material_3)358_([[Now this is a problem we should do something about!]])
359 ) .. new_objectives(obj_better_material_3)
386}360}
387361
388order_msg_19_all_material = {362order_msg_19_all_material = {
389 title=_"The advisor",363 title=_"The Advisor",
390 body=khantrukh(_"Khantrukh seems relieved...", _364 body=khantrukh(_"Khantrukh seems relieved...",
391[[ "Wonderful! Our roofs are not dripping anymore, and we have all the material we need for, well, whichever monumental building we see fit!" ]]365_([[Wonderful! Our roofs are not dripping anymore, and we have all the material we need for, ]] ..
366[[well, whichever monumental building we see fit!]])
392 )367 )
393}368}
394369
395msg_mission_complete = {370msg_mission_complete = {
396 title=_"Mission Complete",371 title=_"Mission Complete",
397 body= thron( _372 body= thron(
398[["The other day Boldreth asked me to accompany him to the new inn. It would373_([[The other day Boldreth asked me to accompany him to the new inn. It would cheer me up, he said.]]) .. "<br><br>" ..
399cheer me up, he said.<br> When I looked around, I saw faithful faces, trusting374_([[When I looked around, I saw faithful faces, trusting that I could guide them through these dark days. ]] ..
400that I could guide them through these dark days. Yet before I could speak any375[[Yet before I could speak any words of gratitude or encouragement, one of my warriors ran into the inn. ]] ..
401words of gratitude or encouragement, one of my warriors ran into the inn. He376[[He had been far out in the forest for the past days and I could see how weary he was.]]) .. "<br><br>" ..
402had been far out in the forest for the past days and I could see how weary he377_([[The news he brought changed everything...]])
403was.<br> The news he brought changed everything..."]]) .. rt(378 ).. objective_text(_"Victory",
404 h1(_"Victory") .. p(_379 _[[You have completed this mission. You may continue playing if you wish, otherwise move on to the next mission.]]
405[[You have completed this mission. You may continue playing if you wish,
406otherwise move on to the next mission.]]
407 )
408 )380 )
409}381}
410382
411msg_cattlefarm_00 = {383msg_cattlefarm_00 = {
412 title = _ "We need oxen!",384 title = _ "We Need Oxen!",
413 body = khantrukh(_ "Khantrukh speaks", _385 body = khantrukh(_ "Khantrukh speaks...",
414[["As our realm gets bigger and bigger, the traffic on the roads gets386_([[As our realm is getting bigger and bigger, the traffic on the roads is overwhelming. ]] ..
415overwhelming. Our poor carriers are no longer able to transport the goods as387[[Our poor carriers are no longer able to transport the goods as fast as we need them to. ]] ..
416fast as we need them to. I suggest we give them some support by breeding388[[I suggest we give them some support by breeding oxen.]]) .. "<br><br>" ..
417oxen.<br> They are amazing animals: The ox is as swift as a human being while389_([[They are amazing animals: The ox is as swift as a human being while being much stronger and very frugal: ]] ..
418being much stronger and very frugal: all we need is wheat and water to breed390[[all we need is wheat and water to breed them and they will do their work on the roads loyally and reliably.]])
419them and they will do their work on the roads loyally and reliably."]]) .. 391 ) .. new_objectives(obj_build_cattlefarm)
420 new_objectives(obj_build_cattlefarm)
421}392}
422393
423msg_story_1 = {394msg_story_1 = {
424 title=_"One fullmoon night",395 title=_"One Full Moon Night",
425 body=thron(_"Thron speaks...", _396 body=thron(_"Thron speaks...",
426[[ "One night, when the moon shone brightly, I climbed to the peak of Kal'mavrath.<br> When I gazed at the horizon, I still saw crimson lights flicker in the distance. It is incredible how much passion my brethren fight this war with. I fear the moment I see Al'thunran again - will there be anything but ashes and wasted ruins left of our once beautiful capital when we get there?" ]]397_([[One night, when the moon shone brightly, I climbed to the peak of Kal’mavrath.]]) .. "<br><br>" ..
398_([[When I gazed at the horizon, I still saw crimson lights flicker in the distance. ]] ..
399[[It is incredible with how much passion my brethren fight this war. ]] ..
400[[I fear the moment I will see Al’thunran again]] ..
401[[ – will there be anything but ashes and wasted ruins left of our once beautiful capital when we get there?]])
427 )402 )
428}403}
429404
430msg_story_2 = {405msg_story_2 = {
431 title= _"Another cold day",406 title= _"Another Cold Day",
432 body=thron(_"Thron looks worried...", _407 body=thron(_"Thron looks worried...",
433[[ "The winter is upon us. Many of us are suffering from the cold, yet we must endure. The day we may return cannot be far anymore - it must not be far anymore.<br> I prayed it might get warmer again, as I prayed the war would finally come to an end.<br> So far, it seems that neither prayer was fulfilled." ]]408_([[The winter is upon us. Many of us are suffering from the cold, yet we must endure. ]] ..
409[[The day we may return cannot be far anymore – it must not be far anymore.]]) .. "<br><br>" ..
410_([[I prayed that it might get warmer again, as I prayed that the war would finally come to an end.]]) .. "<br><br>" ..
411_([[So far, it seems that neither prayer was fulfilled.]])
434 )412 )
435}413}
436414
437msg_village = {415msg_village = {
438 title=_"A friendly village joined us!",416 title=_"A friendly village has joined us!",
439 body= thron(_"Thron speaks...",_417 body= thron(_"Thron speaks...",
440[[ "We have found a village with friendly and productive people, impressed by our wealth, technology and strength.<br> They have decided to join us!" ]]418_([[We have found a village with friendly and productive people, impressed by our wealth, technology and strength.]]) .. "<br><br>" ..
419_([[They have decided to join us!]])
441 )420 )
442}421}
443422
444423
=== modified file 'campaigns/t03.wmf/elemental'
--- campaigns/t03.wmf/elemental 2010-11-18 10:39:43 +0000
+++ campaigns/t03.wmf/elemental 2014-03-05 18:47:45 +0000
@@ -4,7 +4,7 @@
4map_h="112"4map_h="112"
5nr_players="4"5nr_players="4"
6world="winterland"6world="winterland"
7name=_"03 - This Land is our Land"7name=_"03 – This Land is Our Land"
8author="Wolfpac & Nasenbaer"8author="Wolfpac & Nasenbaer"
9descr=_"This tutorial explains the handling of military and training site buildings and will introduce fighting."9descr=_"This tutorial explains the handling of military and training site buildings and will introduce fighting."
10background="tribes/barbarians/pics/campmap-tut3.jpg"10background="tribes/barbarians/pics/campmap-tut3.jpg"
1111
=== modified file 'campaigns/t03.wmf/scripting/texts.lua'
--- campaigns/t03.wmf/scripting/texts.lua 2012-12-16 19:08:16 +0000
+++ campaigns/t03.wmf/scripting/texts.lua 2014-03-05 18:47:45 +0000
@@ -1,141 +1,153 @@
1-- =========================1use("aux", "formatting")
2-- Some formating functions2use("aux", "format_scenario")
3-- =========================3
4-- Rich Text4function thron(title, text)
5function rt(text_or_opts, text)5 return speech("map:chieftain.png", "2F9131", title, text)
6 k = "<rt>"6end
7 if text then7function khantrukh(title, text)
8 k = ("<rt %s>"):format(text_or_opts)8 return speech("map:khantrukh.png", "8080FF", title, text)
9 else9end
10 text = text_or_opts10function boldreth(title, text)
11 end11 return speech("map:boldreth.png", "FF0000", title, text)
1212end
13 return k .. text .. "</rt>"
14end
15
16-- Headings
17function h1(s)
18 return "<p font=DejaVuSerif font-size=18 font-weight=bold font-color=D1D1D1>"
19 .. s .. "<br></p><p font-size=8> <br></p>"
20end
21
22function direct_speech(heading, text)
23 return "<p font-size=24 font-face=DejaVuSerif font-weight=bold " ..
24 "font-color=2F9131>" .. heading .. "</p><p font-size=8> <br></p>" .. text
25end
26
27-- Simple flowing text. One Paragraph
28function p(s)
29 return "<p line-spacing=3 font-size=12>" .. s .. "<br></p>" ..
30 "<p font-size=8> <br></p>"
31end
32
33-- No logic below
3413
35-- =======================================================================14-- =======================================================================
36-- Objective messages15-- Objective messages
37-- =======================================================================16-- =======================================================================
17
18
38obj_build_small_food_economy = {19obj_build_small_food_economy = {
39 name = "build_small_food_economy",20 name = "build_small_food_economy",
40 title=_"Build up a small food economy",21 title=_"Build up a small food economy",
41 body = "<rt><p line-spacing=3 font-size=12>" ..22 number = 5,
42_[[* Build up a basic food economy - a fisher's hut, a hunter's hut, a well, a farm and a bakery, to provide your people with food.]] ..23 body = objective_text(_"Build up a small food economy",
43"</p></rt>",24[[• ]] .. _([[Build up a basic food economy to provide your people with food]] ..
25[[ – a fisher’s hut, a hunter’s hut, a well, a farm and a bakery.]])),
44}26}
4527
46obj_build_cattlefarm = {28obj_build_cattlefarm = {
47 name = "obj_build_cattlefarm",29 name = "obj_build_cattlefarm",
48 title = _ "Remember to build a cattle farm",30 title = _ "Build a cattle farm",
49 body = rt(p(_31 number = 1,
50[[As your roads grow longer and your economy bigger you should make good use32 body = objective_text(_"Remember to build a cattle farm",
51 of your oxen to help transport wares quicker. Remember to build a cattle33_([[As your roads grow longer and your economy bigger, you should make good use of your oxen ]] ..
52 farm!]]))34[[to help transport wares more quickly. Remember to build a cattle farm!]])),
53}35}
5436
55obj_build_a_donjon = {37obj_build_a_donjon = {
56 name = "build_a_donjon",38 name = "build_a_donjon",
57 title=_"Build a donjon",39 title=_"Build a donjon",
58 body= "<rt><p line-spacing=3 font-size=12>" ..40 number = 1,
59_"* Build a donjon at the northeast of your territory to get a farther visual range and to protect your people from sudden attacks of enemies." ..41 body = objective_text(_"Build a donjon",
60"</p></rt>",42[[• ]] .. _([[Build a donjon at the north-east of your territory to get greater visual range ]] ..
43[[and to protect your people from sudden attacks of enemies.]])),
61}44}
6245
63obj_explore_further = {46obj_explore_further = {
64 name = "explore_further",47 name = "explore_further",
65 title=_"Explore further",48 title=_"Explore further",
66 body= "<rt><p line-spacing=3 font-size=12>" ..49 number = 1,
67_"* Build more military buildings to explore the area around the headquarters and to ensure the safety of your people." ..50 body = objective_text(_"Explore further",
68"</p></rt>",51[[• ]] .. _([[Build more military buildings to explore the area around the headquarters ]] ..
52[[and to ensure the safety of your people.]])),
69}53}
7054
71obj_build_mining_economy = {55obj_build_mining_economy = {
72 name = "build_mining_economy",56 name = "build_mining_economy",
73 title=_"Build mines",57 title=_"Build a mining infrastructure",
74 body= "<rt><p line-spacing=3 font-size=12>" ..58 number = 6,
75_"* Expand your territory to the mountains, send geologists to search for ore and coal and build a mining economy with mines, taverns, smelting works and metalworks." ..59 body = objective_text(_"Build a mining infrastructure",
76"</p></rt>",60[[• ]] .. _([[Expand your territory to the mountains, send geologists to search for ore and coal ]] ..
61[[and build a mining economy with mines, taverns, smelting works and metalworks.]])),
77}62}
7863
79obj_build_a_fortress = {64obj_build_a_fortress = {
80 name = "build_a_fortress",65 name = "build_a_fortress",
81 title=_"Build a fortress",66 title=_"Build a fortress",
82 body= "<rt><p line-spacing=3 font-size=12>" ..67 number = 1,
83_"* Build a fortress to the east of the mountains." ..68 body = objective_text(_"Build a fortress",
84"</p></rt>",69[[• ]] .. _"Build a fortress to the east of the mountains."),
85}70}
71
72obj_build_training_infrastructure = {
73 name = "build_training_infrastructure",
74 title=_"Build a training infrastructure",
75 number = 4,
76 body = objective_text(_"Build a training infrastructure",
77[[• ]] .. _"Build a battle arena and a training camp to the west of the mountains." ..
78"<br>" ..
79[[• ]] .. _([[Enhance your metal workshop to an axfactory in order to produce weapons, ]] ..
80[[and build up a second metal workshop to ensure the production of tools. ]] ..
81[[When the blacksmith reaches his next level (master blacksmith), ]] ..
82[[you can even enhance the axfactory to a war mill, which will produce additional weapons.]]) ..
83"<br>" ..
84[[• ]] .. _"Build a helmsmithy to the west of the mountains to provide your soldiers with better armor."),
85}
86
8687
87obj_build_a_warehouse = {88obj_build_a_warehouse = {
88 name = "build_a_warehouse",89 name = "build_a_warehouse",
89 title=_"Build a warehouse",90 title=_"Build a warehouse",
90 body= "<rt><p line-spacing=3 font-size=12>" ..91 number = 1,
91_"* Build a warehouse to the west of the mountains." ..92 body = objective_text(_"Build a warehouse",
92"<br>" ..93[[• ]] .. _"Build a warehouse to the west of the mountains." ..
93_"-> Warehouses are similar to your headquarters, with the only difference that it is not defended by soldiers. It is often wise to build a warehouse when your territory is growing and the paths to your headquarters get longer and longer." ..94"<br><br>" ..
94"</p></rt>",95[[→ ]] .. _([[Warehouses are similar to your headquarters, ]] ..
96[[with the only difference that they aren’t defended by soldiers. ]] ..
97[[It is often wise to build a warehouse when your territory is growing ]] ..
98[[and the paths to your headquarters get longer and longer.]])),
95}99}
96100
97obj_build_trainingssites = {101obj_build_trainingssites = {
98 name = "build_trainingssites",102 name = "build_trainingssites",
99 title=_"Build trainingssites",103 title=_"Build training sites",
100 body= "<rt><p line-spacing=3 font-size=12>" ..104 number = 2,
101_"* Build a battle arena and a trainings camp to the west of the mountains." ..105 body = objective_text(_"Build training sites",
106[[• ]] .. _"Build a battle arena and a training camp to the west of the mountains." ..
102"<br>" ..107"<br>" ..
103_"-> Trainingssites like a training camp or a battle arena are used for training soldiers in their different attributes. Those attributes are important in fights and the better a soldier is, the higher is the chance to win a fight.<br>Attributes are: health points, attack, defense and evade." ..108[[→ ]] .. _([[Training sites like a training camp or a battle arena are used ]] ..
104"</p></rt>",109[[for training soldiers in their different attributes. ]] ..
110[[These attributes are important in fights and the better a soldier is, the higher is the chance to win a fight.]]) .. "<br>" ..
111_"The attributes are: health points, attack, defense and evade."),
105}112}
106113
107obj_build_weapon_productions = {114obj_build_weapon_productions = {
108 name = "build_weapon_productions",115 name = "build_weapon_productions",
109 title=_"Build weapon productions",116 title=_"Build weapons production",
110 body= "<rt><p line-spacing=3 font-size=12>" ..117 number = 3,
111_"* Enhance your metalworks to an axefactory to start producing weapons, and build up another metalworks to ensure the production of tools. When the blacksmith reaches his next level (master blacksmith), you can even enhance your axefactory to a war mill." ..118 body = objective_text(_"Build weapons production",
112"</p></rt>",119[[• ]] .. _([[Enhance your metal workshop to an axfactory in order to produce weapons, ]] ..
120[[and build up a second metal workshop to ensure the production of tools. ]] ..
121[[When the blacksmith reaches his next level (master blacksmith), ]] ..
122[[you can even enhance the axfactory to a war mill, which will produce additional weapons.]])),
113}123}
114124
115obj_build_a_helmsmithy = {125obj_build_a_helmsmithy = {
116 name = "build_a_helmsmithy",126 name = "build_a_helmsmithy",
117 title=_"Build a helmsmithy",127 title=_"Build a helmsmithy",
118 body= "<rt><p line-spacing=3 font-size=12>" ..128 number = 1,
119_"* Build a helmsmithy to the west of the mountains to provide your soldiers with better armor." ..129 body = objective_text(_"Build a helmsmithy",
120"</p></rt>",130[[• ]] .. _"Build a helmsmithy to the west of the mountains to provide your soldiers with better armor."),
121}131}
122132
123obj_destroy_kalitaths_army = {133obj_destroy_kalitaths_army = {
124 name = "destroy_kalitaths_army",134 name = "destroy_kalitaths_army",
125 title=_"Destroy Kalitaths army",135 title=_"Destroy Kalitath’s army",
126 body= "<rt><p line-spacing=3 font-size=12>" ..136 number = 2,
127_"* Destroy Kalitaths army and expand your territory to the east." ..137 body = objective_text(_"Destroy Kalitath’s army",
128"<br>" ..138[[• ]] .. _"Destroy Kalitath’s army and expand your territory to the east." ..
129_"-> To attack an enemy you must click on the door of an adversary's military building. A menu will pop up allowing you to select the number of soldiers that should attack. When you are ready with setting the number, click on the cross ('start attack')" ..139"<br><br>" ..
130"</p></rt>",140[[→ ]] .. _([[To attack an enemy, you must click on the door of an adversary’s military building. ]] ..
141[[A menu will pop up allowing you to select the number of soldiers that should attack. ]] ..
142[[When you are ready with setting the number, click on the cross (‘Start Attack’).]])),
131}143}
132144
133obj_military_assault_on_althunran = {145obj_military_assault_on_althunran = {
134 name = "military_assault_on_althunran",146 name = "military_assault_on_althunran",
135 title=_"Military assault on Al’thunran",147 title=_"Military assault on Al’thunran",
136 body= "<rt><p line-spacing=3 font-size=12>" ..148 number = 1,
137_"* Destroy all enforcements of Thron’s two brothers to liberate the throne-circle." ..149 body = objective_text(_"Military assault on Al’thunran",
138"</p></rt>",150[[• ]] .. _"Destroy all forces of Thron’s two brothers to liberate the throne-circle."),
139}151}
140152
141-- =======================================================================153-- =======================================================================
@@ -143,237 +155,252 @@
143-- =======================================================================155-- =======================================================================
144story_msg_1 = {156story_msg_1 = {
145 posy=1,157 posy=1,
146 title=_"Close to home",158 title=_"Close to Home",
147 body ="<rt><p font-size=24 font-face=DejaVuSerif font-weight=bold font-color=2F9131>" ..159 body =thron(_"Thron looks worried...",
148_"Thron looks worried..." ..160_([[These last days, we came closer to our capital. ]] ..
149"</p></rt><rt image=map:chieftain.png><p line-spacing=3 font-size=12>" ..161[[Many people have already joined us on our march and set their hopes on me. ]] ..
150162[[However, I fear that we are not strong enough to take up the battle against my brothers.]]) ..
151_[[ "These last days we came closer to our capital. Many people have already joined us on our march and set their hopes on me. However, I fear that we are not strong enough to take up the battle with my brothers.<br>For now we rest at the borders of the old forest and prepare for the coming days." ]] ..163"<br><br>" ..
152"</p></rt>",164_([[For now, we are resting at the borders of the old forest and preparing for the coming days.]])),
153}165}
154166
155story_msg_2 = {167story_msg_2 = {
156 posy=1,168 posy=1,
157 title=_"Another cold day",169 title=_"Another Cold Day",
158 body ="<rt><p font-size=24 font-face=DejaVuSerif font-weight=bold font-color=2F9131>" ..170 body =thron(_"Thron looks worried...",
159_"Thron looks worried." ..171_([[The news that a patrol brought is not good to hear. ]] ..
160"</p></rt><rt image=map:chieftain.png><p line-spacing=3 font-size=12>" ..172[[Our spies tell us that the war tribes still rage in battle, ]] ..
161_[[ "The news that a patrol brought is not good to hear. Our spies tell us, that the wartribes still rage in battle but some of the elder soldiers and tribe leaders seem to grow tired of this senseless war. Kalitath, son of Kun is the first warleader to leave Al’thunran, thus leaving his side weak and vulnerable. As my scouts report, he has set foot on the lower grounds around the capitol, securing the outer fortification rings." ]] ..173[[but some of the elder soldiers and tribe leaders seem to grow tired of this senseless war. ]] ..
162"</p></rt>",174[[Kalitath, son of Kun is the first war leader to leave Al’thunran, thus leaving his side weak and vulnerable. ]] ..
175[[As my scouts report, he has set foot on the lower grounds around the capital, ]] ..
176[[securing the outer fortification rings.]])),
163}177}
164178
165story_msg_3 = {179story_msg_3 = {
166 title=_"Doubts",180 title=_"Doubts",
167 posy=1,181 posy=1,
168 body ="<rt><p font-size=24 font-face=DejaVuSerif font-weight=bold font-color=2F9131>" ..182 body = boldreth(_"Boldreth is shaking his head...",
169_"Boldreth shakes his head." ..183_([[Thron seeks to believe that Kalitath is tired of fighting and would be willing to join us ]] ..
170"</p></rt><rt image=map:boldreth.png><p line-spacing=3 font-size=12>" ..184[[once we march to re-establish law and order in Al’thunran. But I don’t think so. ]] ..
171_[[ "Thron seeks to believe that Kalitath is tired of fighting and will be willing to join us, once we march to re-establish law and order in Al’thunran. But I don’t think so. Kalitath is son to one of the mightiest generals of our forces and his family never quite liked the thought to bow before the banner of Chat’Karuth. Why should he march with his son to reclaim his heritage and the throne?" ]] ..185[[Kalitath is son to one of the mightiest generals of our forces ]] ..
172"</p></rt>",186[[and his family never quite liked the thought of bowing before the banner of Chat’Karuth. ]] ..
187[[Why should he march with Chat’Karuth’s son to reclaim his heritage and the throne?]])),
173}188}
174189
175story_msg_4 = {190story_msg_4 = {
176 posy=1,191 posy=1,
177 title=_"The story continues",192 title=_"The Story Continues",
178 body= "<rt image=map:boldreth.png><p line-spacing=3 font-size=12>" ..193 body= boldreth(
179_[[ "However, Thron is not willing to listen to my doubts. He seeks to expand our fortifications to the borders of Kalitath’s territory and reunite with his forces. I have to keep an eye on everything that happens here." ]] ..194_([[However, Thron is not willing to listen to my doubts. ]] ..
180"</p></rt>",195[[He seeks to expand our fortifications to the borders of Kalitath’s territory and to reunite with his forces. ]] ..
196[[I have to keep an eye on everything that happens here.]])),
181}197}
182198
183story_msg_5 = {199story_msg_5 = {
184 posy=1,200 posy=1,
185 title=_"Another cold day",201 title=_"Another Cold Day",
186 body= "<rt><p font-size=24 font-face=DejaVuSerif font-weight=bold font-color=2F9131>" ..202 body= thron(_"Thron is speaking confidently.",
187_"Thron speaks confidently." ..203_([[The frontier line of my forces has expanded to the edge of the forests. ]] ..
188"</p></rt><rt image=map:chieftain.png><p line-spacing=3 font-size=12>" ..204[[We have a long and cold winter and so many miles behind us. ]] ..
189_[[ "The frontier line of my forces has expanded to the edge of the forests. We have a long and cold winter and so many miles behind us. The fortification that we erected around Ondun will guarantee us a fast supply of men and goods and once Al’thunran is in my hands, the two cities will be linked by a good and defendable infrastructure. Still I hope I will not walk alone on this mission, I hope Kalitath son of Kun will follow my call." ]] ..205[[The fortification that we erected around Ondun will guarantee us a fast supply of men and goods, ]] ..
190"</p></rt>",206[[and once Al’thunran is in my hands, the two cities will be linked by a good and defensible infrastructure. ]] ..
207[[Still, I hope I will not walk alone on this mission, I hope Kalitath son of Kun will follow my call.]])),
191}208}
192209
193story_msg_6 = {210story_msg_6 = {
194 posy=1,211 posy=1,
195 title=_"The story continues",212 title=_"The Story Continues",
196 body= "<rt image=map:chieftain.png><p line-spacing=3 font-size=12>" ..213 body= thron(
197_[[ "I have sent men to meet with Kalitath in his fortress. He has barricaded the former main entrance to the capital and is trying to set up a siege ring around Al’thunran. He will not let anyone enter or leave the city while the ring is intact. Until now, he has not answered any of my messages. But the time I wait won't be lost. I will further upgrade my soldiers and prepare for battle." ]] ..214_([[I have sent men to meet with Kalitath in his fortress. ]] ..
198"</p></rt>",215[[He has barricaded the former main entrance to the capital and is trying to set up a siege ring around Al’thunran. ]] ..
216[[He will not let anyone enter or leave the city while the ring is intact. ]] ..
217[[Until now, he has not answered any of my messages. But the time I spend waiting won’t be lost. ]] ..
218[[I will further upgrade my soldiers and prepare for battle.]])),
199}219}
200220
201order_msg_7_destroy_kalitaths_army = {221order_msg_7_destroy_kalitaths_army = {
202 title=_"Your loyal companion",222 title=_"Your Loyal Companion",
203 body= "<rt><p font-size=24 font-face=DejaVuSerif font-weight=bold font-color=FF0000>" ..223 body= boldreth(_"Boldreth shouts out!",
204_"Boldreth shouts out!" ..224_([[The BASTARD! Only one man of our frontier patrol came back alive. ]] ..
205"</p></rt><rt image=map:boldreth.png><p line-spacing=3 font-size=12>" ..225[[He carried a message from Kalitath, telling us that he will punish every move of our troops with their own blood! ]] ..
206_[[ "This BASTARD! Only one man of our frontier patrol came back alive. He carried a message from Kalitath telling us that he will punish every move of our troops with their own blood! We cannot accept this behaviour. From now on there is war between Kalitath and us!" ]] ..226[[We cannot accept this behavior. From now on, there is war between Kalitath and us!]]))
207"<br><br>" ..227.. new_objectives(obj_destroy_kalitaths_army),
208_"-- NEW OBJECTIVE --" ..
209"<br>" ..
210_"* Destroy Kalitath's army and expand your territory to the east." ..
211"<br>" ..
212_"-> To attack an enemy you must click on the door of an adversary's military building. A menu will pop up allowing you to select the number of soldiers that should attack. When you are ready with setting the number, click on the cross ('start attack')" ..
213"</p></rt>",
214}228}
215229
230
231
216order_msg_7_renegade_fortification = {232order_msg_7_renegade_fortification = {
217 posy = 1,233 posy = 1,
218 title=_"Renegade fortification",234 title=_"Renegade Fortification",
219 body= "<rt><p font-size=24 font-face=DejaVuSerif font-weight=bold font-color=2F9131>" ..235 body= thron(_"Thron says:",
220_"Thron speaks:" ..236_([[The traitor left his armies dying where they lay when he saw that he would not keep my forces back. ]] ..
221"</p></rt><rt image=map:chieftain.png><p line-spacing=3 font-size=12>" ..237[[Kalitath disappeared in the confusion of the war, but I don’t care now. ]] ..
222_[[ "The traitor has left his armies dying where they lay as he saw that he would not keep my forces back. Kalitath disappeared in the mess of the war, but I don’t care now. Shall he flee and be forgotten for all times as a tribeleader that would not bow before the wooden throne, that is mine to take now. Even more his flight brought us a big benefit: All year Kalitath was so busy fighting that he did not even care to store enough food for all his men. Now that he has fled, their hunger has brought some of his younger followers to desert. This group holds a strong fortification on the main ring. But there is more news: My scouts reported, that the two raging tribes of my brothers are in chaos and have barely noticed the new danger that is about to strike them. However they would not care if they noticed I guess, blinded by rage and hate, there is no sense left in them at all I believe." ]] ..238[[Shall he flee and be forgotten for all times as a tribal leader that would not bow before the wooden throne, ]] ..
223"</p></rt>",239[[that is mine to take now.]]) .. "<br><br>" ..
240_([[Furthermore, his flight brought us a great benefit: ]] ..
241[[all year, Kalitath was so busy fighting that he did not even care to store enough food for all his men. ]] ..
242[[Now that he has fled, their hunger has caused some of his younger followers to desert. ]] ..
243[[This group holds a strong fortification on the main ring.]]) ..
244_([[But there is more news: ]] ..
245[[My scouts have reported that the two raging tribes of my brothers are in chaos ]] ..
246[[and have barely noticed the new danger that is about to strike them. ]] ..
247[[However, they would not care if they noticed I guess, blinded by rage and hate, ]] ..
248[[there is no sense left in them at all I believe.]])),
224}249}
225250
226briefing_msg_1 = {251briefing_msg_1 = {
227 posy=1,252 posy=1,
228 title=_"Winter ahead",253 title=_"Winter Ahead",
229 body= "<rt><p font-size=24 font-weight=bold font-face=DejaVuSerif font-color=2F9131>" ..254 body= boldreth(_"Boldreth says:",
230_"Boldreth speaks:" ..255_([[This morning, I found Thron’s mind troubled. He returned from his patrol late last night ]] ..
231"</p></rt><rt image=map:boldreth.png><p line-spacing=3 font-size=12>" ..256[[and sat back against a tree, watching over the encampment. ]] ..
232_[[ "This morning I found Thron trouble-minded. He returned from his patrol late last night and sat back against a tree watching over the encampment. The number of quarrels and disputes keeps growing and the winter has us firmly in its grip. We should put food in our storage to survive the long, cold winter!" ]] ..257[[The number of quarrels and disputes keeps growing, and the winter has us firmly in its grip. ]] ..
233"</p></rt>",258[[We should put food in our storage to survive the long, cold winter!]])),
234}259}
235260
236order_msg_1_small_food_economy = {261order_msg_1_small_food_economy = {
237 posy=1,262 posy=1,
238 title=_"The advisor",263 title=_"The Advisor",
239 body= "<rt><p font-size=24 font-face=DejaVuSerif font-weight=bold font-color=8080FF>" ..264 body= khantrukh(_"Khantrukh nods.",
240_"Khantrukh nods" ..265_([[Boldreth is right! We don’t have enough food to survive a long, cold winter. ]] ..
241"</p></rt><rt image=map:khantrukh.png><p line-spacing=3 font-size=12>" ..266[[We should start to build a well, a fisher’s and a hunter’s hut. ]] ..
242_[[ "Boldreth is right! We don't have enough food to survive a long, cold winter. We should start to build a well, a fisher's and a hunter's hut. And if we find enough space, we should as well build up a farm and a bakery! One of our farmers seems to be very clever he already got some crops to grow in this cold soil." ]] ..267[[And if we find enough space, we should as well build up a farm and a bakery! ]] ..
243"<br><br>" ..268[[One of our farmers seems to be very clever – he already got some crops to grow in this cold soil.]]))
244_"-- NEW OBJECTIVE --" ..269.. new_objectives(obj_build_small_food_economy),
245"<br>" ..
246_"* Build up a basic food economy - a fisher's hut, a hunter's hut, a well, a farm and a bakery, to provide your people with food." ..
247"</p></rt>",
248}270}
249271
250story_note_1 = {272story_note_1 = {
251 posy=1,273 posy=1,
252 title=_"Food economy completed",274 title=_"Food Economy Completed",
253 body= "<rt image=map:chieftain.png><p line-spacing=3 font-size=12>" ..275 body= thron(
254_[[ "Khantrukh just informed me, that our basic food economy was built up successfully. Finally none of us has to fear starvation anymore.]] ..276_([[Khantrukh has just informed me that our basic food economy was built up successfully. ]] ..
255"</p></rt>",277[[Finally, none of us has to fear starvation anymore.]])),
256}278}
257279
258order_msg_2_build_a_donjon = {280order_msg_2_build_a_donjon = {
259 posy=1,281 posy=1,
260 title=_"Tracks",282 title=_"Tracks",
261 body= "<rt image=map:boldreth.png><p line-spacing=3 font-size=12>" ..283 body= boldreth(
262 _[[ "Thron told me that he discovered tracks in the snow to the northeast of our settlement. He instructed us to build a Donjon, to have a greater visual range on the area around our hall to protect our people from sudden attacks." ]] ..284 _([[Thron told me that he discovered tracks in the snow to the northeast of our settlement. ]] ..
263 "<br><br>" ..285[[He has instructed us to build a Donjon, to have a greater visual range over the area around our hall ]] ..
264_"-- NEW OBJECTIVE --" ..286[[to protect our people from sudden attacks.]]))
265"<br>" ..287.. new_objectives(obj_build_a_donjon),
266_"* Build a donjon at the northeast of your territory." ..
267"</p></rt>",
268}288}
269289
270order_msg_3_explore_further = {290order_msg_3_explore_further = {
271 posy=1,291 posy=1,
272 title=_"Further explorations",292 title=_"Further Exploration",
273 body= "<rt image=map:boldreth.png><p line-spacing=3 font-size=12>" ..293 body= boldreth(
274_[[ "The first fortification Thron ordered has just been completed. At the moment he seeks to bring trust and belief to those who live inside the walls of our new habitat, that we named 'Ondun', which means 'those who wait' in the old tongue. But Thron is not yet satisfied - and I fully understand his fears: The forests are deep and the frontier to Al’thunran is near. I am sure that there are a thousand greater dangers out there than the unknown tracks.<br>To overlook more of the area around our hall we should explore further and set up more guards and scouts to observe the frontier and keep an eye on the raging wars on our doorsteps. THEN we will be prepared once trouble seeks to capture our woods." ]] ..294_([[The first fortification Thron ordered has just been completed. ]] ..
295[[At the moment, he seeks to bring trust and belief to those who live inside the walls of our new habitat, ]] ..
296[[that we named ‘Ondun’, which means ‘those who wait’ in the old tongue. ]] ..
297[[But Thron is not yet satisfied – and I fully understand his fears: ]] ..
298[[the forests are deep, and the frontier to Al’thunran is near. ]] ..
299[[I am sure that there are a thousand greater dangers out there than the unknown tracks.]]) ..
275"<br><br>" ..300"<br><br>" ..
276_"-- NEW OBJECTIVE --" ..301_([[To overlook more of the area around our hall, we should explore further ]] ..
277"<br>" ..302[[and set up more guards and scouts to observe the frontier ]] ..
278_"* Build more military buildings to explore the area around the headquarters and to ensure the safety of your people." ..303[[and keep an eye on the raging wars on our doorstep. ]] ..
279"</p></rt>",304[[THEN we will be prepared once trouble seeks to capture our woods.]]))
305.. new_objectives(obj_explore_further),
280}306}
281307
282order_msg_4_build_mining_economy = {308order_msg_4_build_mining_economy = {
283 posy=1,309 posy=1,
284 title=_"Mountains found",310 title=_"Mountains Found",
285 body= "<rt image=map:khantrukh.png><p line-spacing=3 font-size=12>" ..311 body= khantrukh(
286_[[ "I just talked to the leader of our patrol. He told me, that they found some mountains to the north east and the east of our territory. With a bit of luck this opens us a new chance for rearming our men, because as far as I remember, most of the mountains west to Al'thunran hold coal and some metal ores." ]] ..312_([[I have just spoken to the leader of our patrol. ]] ..
287"<br><br>" ..313[[He told me that they found some mountains to the north-east and east of our territory. ]] ..
288_"-- NEW OBJECTIVE --" ..314[[With a bit of luck this will open up a new chance for rearming our men, ]] ..
289"<br>" ..315[[because as far as I remember, most of the mountains west to Al’thunran hold coal and some metal ores.]]))
290_"* Expand your territory to the mountains, send geologists to search for ore and coal and build a mining economy with mines, taverns, smelting works and metalworks." ..316.. new_objectives(obj_build_mining_economy),
291"</p></rt>",
292}317}
293318
294story_note_2 = {319story_note_2 = {
295 posy=1,320 posy=1,
296 title=_"Mining economy completed",321 title=_"Mining Economy Completed",
297 body= "<rt image=map:chieftain.png><p line-spacing=3 font-size=12>" ..322 body= thron(
298_[[ "I just got informed, that our mining economy started its work. This news brought a smile to my face - even if the hardest part is still waiting to be done, now our smiths will give their best to further ease our lives." ]] ..323_([[I just got informed that our mining economy has started its work. ]] ..
299"</p></rt>",324[[This news brought a smile to my face – even if the hardest part is still waiting to be done, ]] ..
325[[now that our smiths will give their best to further ease our lives.]])),
300}326}
301327
302order_msg_5_build_a_fortress = {328order_msg_5_build_a_fortress = {
303 posy=1,329 posy=1,
304 title=_"Fortress needed",330 title=_"Fortress Needed",
305 body= "<rt image=map:chieftain.png><p line-spacing=3 font-size=12>" ..331 body= thron(
306_[[ "Boldreth and I just explored the area around the three mountains. One major strategic problem of that area seems to be, that there are two bigger passages - one north and one south to the middle mountain. Those passages are quite hard to control and so it seems to me, like we have only one chance to secure the mountains from enemy hands: We must build a fortress to the east of the mountains!" ]] ..332_([[Boldreth and I just explored the area around the three mountains. ]] ..
307"<br><br>" ..333[[One major strategic problem of that area seems to be that there are two bigger passages]] ..
308_"-- NEW OBJECTIVE --" ..334[[ – one north and one south of the central mountain. Those passages are quite hard to control, ]] ..
309"<br>" ..335[[and so it seems to me like we have only one chance to secure the mountains from enemy hands: ]] ..
310_"* Build a fortress to the east of the mountains." ..336[[We must build a fortress to the east of the mountains!]]))
311"</p></rt>",337.. new_objectives(obj_build_a_fortress),
312}338}
313339
314story_note_3 = {340story_note_3 = {
315 posy=1,341 posy=1,
316 title=_"Fortress completed",342 title=_"Fortress Completed",
317 body= "<rt image=map:chieftain.png><p line-spacing=3 font-size=12>" ..343 body=thron(
318_[[ "Finally!<br>The fortress was just completed, so the entrance to our settlement should be safe for now. For the future we might think on building some more fortifications like barriers and donjons at the passages, but for now we can take a deep breath." ]] ..344_([[Finally! The fortress has just been completed, so the entrance to our settlement should be safe for now. ]] ..
319"</p></rt>",345[[For the future, we might think on building some more fortifications like barriers and donjons at the passages, ]] ..
346[[but for now we can take a deep breath.]])),
320}347}
321348
322order_msg_6_build_enhanced_economy_and_training = {349order_msg_6_build_enhanced_economy_and_training = {
323 posy=1,350 posy=1,
324 title=_"Enhanced economy and training",351 title=_"Enhanced Economy and Training",
325 body= "<rt image=map:boldreth.png><p line-spacing=3 font-size=12>" ..352 body= boldreth(
326_[[ "Our mining economy seems to work fine, that is already good news! Anyway there are still a lot of men and women waiting in our hall to get a task, so they can help our soldiers to prepare for the future fights.]] ..353_([[Our mining economy seems to work fine, that is already good news! ]] ..
327"<br>" ..354[[Anyway, there are still a lot of men and women waiting in our hall to get a task, ]] ..
328_[[Our geologists found a lot more deposits of iron ore, coal and even gold. We should enhance our current mines as soon as our miners are more experienced. We should build up some more mines, a bigger food infrastructure to always supply our men with sufficient food and a further processing economy. But that's still not everything - most of our soldiers are quite young and neither have a good weapon nor are they well trained. We should build up trainingssites to prepare them for their future tasks." ]] ..355[[so they can help our soldiers to prepare for the future fights.]]) ..
329"<br><br>" ..356"<br><br>" ..
330_"-- NEW OBJECTIVES --" ..357_([[Our geologists found a lot more deposits of iron ore, coal and even gold. ]] ..
331"<br>" ..358[[We should enhance our current mines as soon as our miners are more experienced. ]] ..
332_"* Build a warehouse to the west of the mountains." ..359[[We should build up some more mines, a bigger food infrastructure ]] ..
333"<br>" ..360[[to always supply our men with sufficient food and a further processing economy. ]] ..
334_"* Build a battle arena and a trainings camp to the west of the mountains." ..361[[But that’s still not everything – most of our soldiers are quite young ]] ..
335"<br>" ..362[[and neither have a good weapon nor are they well trained. ]] ..
336_"* Enhance your metalworks to an axefactory in order to produce weapons and build up another metalworks to ensure the production of tools. When the blacksmith reaches his next level (master blacksmith), you can even enhance it to a war mill which produces additional weapons." ..363[[We should build up training sites to prepare them for their future tasks.]]))
337"<br>" ..364.. new_objectives(obj_build_training_infrastructure),
338_"* Build a helmsmithy to the west of the mountains to provide your soldiers with better armor." ..
339"</p></rt>",
340}365}
341366
342story_msg_7 = {367story_msg_7 = {
343 posy=1,368 posy=1,
344 title=_"Another cold day",369 title=_"Another Cold Day",
345 body= "<rt><p font-size=24 font-face=DejaVuSerif font-weight=bold font-color=2F9131>" ..370 body= thron(_"Thron looks worried...",
346_"Thron looks worried." ..371_([[My brothers and their soldiers are dead and left fire and destruction behind. ]] ..
347"</p></rt><rt image=map:chieftain.png><p line-spacing=3 font-size=12>" ..372[[In none of all the ruins could I find any man or woman of the normal folk, ]] ..
348_[[ "My brothers and their soldiers are dead and left fire and destruction behind. In none of all the ruins could I find any man or woman of the normal folk and so I just may hope that they fled from this cruel battleground and started a better life somewhere else. Nothing is left from that beauty I remember, only ruins remain from the old capital. I am sorrowful but also relieved. I never hoped to ever see Al'thunran's old beauty again - it was only a few months ago that I wondered whether I would ever be able to set my feet in Al'thunran again. Now the old town is back in my hands and I will not hesitate to rebuild it with all the strength my people have. I can't wait to see it again in it's old beauty." ]] ..373[[and so I just may hope that they fled from this cruel battleground and started a better life somewhere else.]]) .. "<br><br>" ..
349"<br><br>" ..374_([[Nothing is left of that beauty I remember, only ruins remain of the old capital. ]] ..
350_"--------------------- VICTORY! ----------------------" ..375[[I am sorrowful but also relieved. I never hoped to ever see Al’thunran’s old beauty again]] ..
351"<br><br>" ..376[[ – it was only a few months ago that I wondered whether I would ever be able to set my feet in Al’thunran again. ]] ..
352_"You have completed the last mission of the barbarian tutorial campaign. You may continue playing if you wish, otherwise move on to the next campaign." ..377[[Now the old town is back in my hands, and I will not hesitate to rebuild it with all the strength my people have. ]] ..
353"</p></rt>",378[[I can’t wait to see it again in its old beauty.]]))
379.. objective_text(_"Victory",
380 _([[You have completed the last mission of the barbarian tutorial campaign. ]] ..
381[[You may continue playing if you wish, otherwise move on to the next campaign.]]))
354}382}
355383
356order_msg_7_free_althunran = {384order_msg_7_free_althunran = {
357 posy = 1,385 posy = 1,
358 title=_"Military assault",386 title=_"Military Assault",
359 body= "<rt image=map:chieftain.png><p line-spacing=3 font-size=12>" ..387 body= thron(
360_[[ "So be it, the generals are out to set up my troops and Boldreth himself will lead the first strike. I will ride by his side, to free Al’thunran of this war and bring peace back to our capital. When the young sun rises above the trees tomorrow morning, I will order the assault. By dusk, I will celebrate my victory in the wooden halls of the warlord and sacrifice a newborn lamb in the honour of my father whose eyes are set upon me today.<br>So be it!" ]] ..388_([[So be it, the generals are out and about arranging my troops, and Boldreth himself will lead the first strike. ]] ..
389[[I will ride by his side, to free Al’thunran of this war and return peace to our capital.]]) .. "<br><br>" ..
390_([[When the young sun rises above the trees tomorrow morning, I will order the assault. ]] ..
391[[By dusk, I will celebrate my victory in the wooden halls of the warlord ]] ..
392[[and sacrifice a newborn lamb in the honor of my father, whose eyes are set upon me today.]]) ..
361"<br><br>" ..393"<br><br>" ..
362_"-- NEW OBJECTIVE --" ..394_([[So be it!]]))
363"<br>" ..395.. new_objectives(obj_military_assault_on_althunran),
364_"* Destroy all enforcements of Thron’s two brothers to liberate the throne-circle." ..
365"</p></rt>",
366}396}
367397
368cattlefarm_01 = {398cattlefarm_01 = {
369 title = _ "Khantrukh speaks",399 title = _"Khantrukh says:",
370 body = rt("image=map:khantrukh.png", direct_speech(400 body= khantrukh(
371_"Khantrukh approaches", p(_401_([[Chieftain, remember the poor carriers: Our roads get longer and longer ]] ..
372[[ "Chieftain, remember the poor carriers: Our roads get longer and longer and402[[and the burden on their shoulders never gets lighter. ]] ..
373 the burden on their shoulders never gets lighter. We should breed more oxen to403[[We should breed more oxen to make their work lighter and our transportation more efficient.]]))
374 make their work lighter and our transportation more efficient." ]]404.. new_objectives(obj_build_cattlefarm),
375
376 ))) .. rt(p(_"-- NEW OBJECTIVE --")) .. obj_build_cattlefarm.body
377}405}
378
379406
380407
=== modified file 'campaigns/tutorial01.wmf/elemental'
--- campaigns/tutorial01.wmf/elemental 2010-04-29 15:48:50 +0000
+++ campaigns/tutorial01.wmf/elemental 2014-03-05 18:47:45 +0000
@@ -4,7 +4,7 @@
4map_h=644map_h=64
5nr_players=25nr_players=2
6world=greenland6world=greenland
7name=_"Tutorial01"7name=_"Tutorial 1"
8author="Winterwind, SirVer, Nasenbaer"8author="Winterwind, SirVer, Nasenbaer"
9descr=_"Basic tutorial - map based on Winterwind's tutorial 1 for Barbarians"9descr=_"Basic Tutorial – a map based on Winterwind’s tutorial 1 for the Barbarians"
10background="tribes/barbarians/pics/campmap-tut1+2.jpg"10background="tribes/barbarians/pics/campmap-tut1+2.jpg"
1111
=== modified file 'campaigns/tutorial01.wmf/scripting/texts.lua'
--- campaigns/tutorial01.wmf/scripting/texts.lua 2012-12-16 19:08:16 +0000
+++ campaigns/tutorial01.wmf/scripting/texts.lua 2014-03-05 18:47:45 +0000
@@ -5,228 +5,202 @@
5-- =========================5-- =========================
6-- Some formating functions6-- Some formating functions
7-- =========================7-- =========================
8-- Rich Text8
9function rt(text_or_opts, text)9use("aux", "formatting")
10 k = "<rt>"
11 if text then
12 k = ("<rt %s>"):format(text_or_opts)
13 else
14 text = text_or_opts
15 end
16
17 return k .. text .. "</rt>"
18end
19
20-- Headings
21function h1(s)
22 return "<p font=DejaVuSerif font-size=18 font-weight=bold font-color=D1D1D1>"
23 .. s .. "<br></p><p font-size=8> <br></p>"
24end
25
26function h2(s)
27 return "<p font=DejaVuSerif font-size=12 font-weight=bold font-color=D1D1D1>"
28 .. s .. "<br></p><p font-size=4> <br></p>"
29end
30
31-- Simple flowing text. One Paragraph
32function p(s)
33 return "<p line-spacing=3 font-size=12>" .. s .. "<br></p>" ..
34 "<p font-size=8> <br></p>"
35end
3610
37-- =============11-- =============
38-- Texts below12-- Texts below
39-- =============13-- =============
40scould_player = {14scould_player = {
41 title = _ "Nice and easy does it all the time",15 title = _ "Nice And Easy Does It All the Time",
42 body = rt(p(_16 body = rt(p(_
43[[I am sorry, but I have to rip this again. We might need the space here later17[[I am sorry, but will I have to tear this down again. ]] ..
44on. If I am too slow for you, you might want to play a real game and just find18[[We might need the space here later on. ]] ..
45everything out for yourself. Otherwise, please bear with me, I am not the19[[If I am too slow for you, you might want to play a real game and just find everything out for yourself. ]] ..
46youngest and quickest anymore.]]20[[Otherwise, please bear with me, I am not the youngest and quickest anymore.]]
47 )21 )
48 )22 )
49}23}
5024
51initial_message_01 = {25initial_message_01 = {
52 title = _ "Welcome to the Widelands tutorial!",26 title = _ "Welcome to the Widelands Tutorial!",
53 body = rt(27 body = rt(
54 h1(_"Welcome to Widelands!") ..28 h1(_"Welcome to Widelands!") ..
55 p(_29 p(_(
56[[Widelands is a slow-paced build-up strategy with an emphasis on construction,30[[Widelands is a slow-paced build-up strategy game with an emphasis on construction, not destruction. ]] ..
57not destruction. This tutorial will get you through the basics of the game.]]31[[This tutorial will guide you through the basics of the game.]])
58 ) .. p(_32 ) .. p([[• ]] .. _[[Dismiss this box by left-clicking on the button below.]]
59[[You can dismiss this box by left-clicking on the button below.]]
60 )33 )
61 ),34 ),
62}35}
63initial_message_02 = {36initial_message_02 = {
64 title = _ "Diving in",37 title = _ "Diving In",
65 pos = "topright",38 pos = "topright",
66 field = wl.Game().map.player_slots[1].starting_field,39 field = wl.Game().map.player_slots[1].starting_field,
67 body = rt(40 body = rt(
68 h1(_"Let's dive right in!") ..41 h1(_"Let’s dive right in!") ..
69 p(_42 p(_(
70[[There are three different tribes in Widelands: the barbarians, the empire and43[[There are three different tribes in Widelands: the Barbarians, the Empire and the Atlanteans. ]] ..
71the atlanteans. All tribes have a different economy, strength and weaknesses,44[[All tribes have a different economy, strength and weaknesses, ]] ..
72but the general gameplay is the same for all. We play the barbarians for now.]]45[[but the general gameplay is the same for all. We will play the barbarians for now.]])
73 ) .. p(_46 ) .. p(_(
74[[You usually start the game with one headquarters. This is the big building47[[You will usually start the game with one headquarters. ]] ..
75with the blue flag in front of it. The headquarters is a warehouse that stores48[[This is the big building with the blue flag in front of it. ]] ..
76wares, workers and soldiers. Some wares are needed for building houses, others49[[The headquarters is a warehouse that stores wares, workers and soldiers. ]] ..
77for making other wares. Obviously, the wares in the headquarters will not last50[[Some wares are needed for building houses, others for making other wares. ]] ..
78forever, so you must make sure to reproduce them. The most important wares in51[[Obviously, the wares in the headquarters will not last forever, so you must make sure to replace them. ]] ..
79the early game are the basic build wares: trunks and raw stone. Let's make sure52[[The most important wares in the early game are the basic construction wares: logs and raw stone. ]] ..
80that we do not run out of trunks. For this, we need a lumberjack and a hut for53[[Let’s make sure that we do not run out of logs. ]] ..
81him to stay in.]]54[[For this, we need a lumberjack and a hut for him to stay in.]])
82 ) .. p(_55 ) .. p(_(
83[[We need to find a nice place for the lumberjack's hut. To make this easier,56[[We need to find a nice place for the lumberjack’s hut. ]] ..
84we can activate the build help. There are two ways you can do this, either by57[[To make this easier, we can activate ‘Show Building Spaces’. ]] ..
85clicking on the build help button at the bottom of the screen which is the58[[There are two ways you can do this, either by clicking on the ‘Show Building Spaces’ button at the bottom of the screen, ]] ..
86fourth one from the left. Or you can use the SPACE key to toggle it.]]59[[which is the fourth one from the left. Or you can use the SPACE key to toggle it.]])
87 ) .. p(_60 ) .. p([[• ]] .. _[[Left-click the ‘OK’ button to close this box and then try it.]]
88[[Left-click the "OK" button to close this box and then try it.]]
89 )61 )
90 ),62 ),
91 obj_name = "enable_buildhelp",63 obj_name = "enable_buildhelp",
92 obj_title = _ "Enable the build help",64 obj_title = _ "Enable the showing of building spaces",
93 obj_body = rt(h1(_"Enable the build help") ..65 obj_body = rt(h1(_"Show Building Spaces") ..
94 p(_66 p(_(
95[[It is easier to understand what is allowed to be built on which field when67[[It is easier to understand what type of buildings can be built on which field ]] ..
96the build help symbols are enabled. Do so now either by pressing SPACE or by68[[when the symbols for the building spaces are enabled.]]) )..
97clicking the fourth button from the left at the very bottom of the screen.69 p([[• ]] ..
98Click the "OK" button and then give it a try.]]70_([[Do so now either by pressing SPACE or by clicking the fourth button from the left at the very bottom of the screen. ]] ..
71[[Right-click on this window and then give it a try.]])
99 )72 )
100 )73 )
101}74}
10275
103lumberjack_message_01 = {76lumberjack_message_01 = {
104 title = _ "Lumberjack's spot",77 title = _ "Lumberjack’s Spot",
105 pos = "topright",78 pos = "topright",
106 field = first_lumberjack_field,79 field = first_lumberjack_field,
107 body = rt(p(_80 body = rt(p(_(
108[[There you go. I will explain about all those symbols in a minute. First, let81[[There you go. I will explain about all those symbols in a minute. ]] ..
109me show you how to make a lumberjack's hut and how to connect it with a road.82[[First, let me show you how to make a lumberjack’s hut and how to connect it with a road. ]] ..
110There is a sweet spot for a lumberjack right next to those trees. I'll describe83[[There is a sweet spot for a lumberjack right next to those trees. ]] ..
111the steps I will take and then ask you to click on the "OK" button for me to84[[I’ll describe the steps I will take and then ask you to click on the ‘OK’ button for me to demonstrate.]])
112demonstrate.]]
113 )85 )
114 )86 )
115}87}
11688
117lumberjack_message_02 = {89lumberjack_message_02 = {
118 title = _ "Building the lumberjack",90 title = _ "Building the Lumberjack",
119 pos = "topright",91 pos = "topright",
120 body = rt(p(_92 body = rt(p(_(
121[[First, I'll left-click on the symbol where I want the lumberjack's hut to be93[[First, I’ll left-click on the symbol where I want the lumberjack’s hut to be built. ]] ..
122built. A window will appear where I can choose between buildings. Because I'll94[[A window will appear where I can choose between buildings. ]] ..
123click a yellow house symbol - which means that its field can house medium and small95[[Because I’ll click a yellow house symbol – which means that its field can house medium and small buildings]] ..
124buildings - I am presented with all the medium buildings that I can build. The96[[ – I am presented with all the medium buildings that I can build. ]] ..
125lumberjack's hut is a small building so I will go on to select the small buildings97[[The lumberjack’s hut is a small building, so I will go on to select the small buildings tab. ]] ..
126tab. Then I'll choose the lumberjack's hut.98[[Then I’ll choose the lumberjack’s hut.]])) ..
127Click the "OK" button to watch me. I'll go really slow: I will click - then select99 p([[• ]] ..
128the tab - and finally I'll choose the building.]]100_([[Click the ‘OK’ button to watch me. ]] ..
101[[I’ll go really slowly: I will click – then select the tab – and finally I’ll choose the building.]])
129 )102 )
130 )103 )
131}104}
132105
133lumberjack_message_03 = {106lumberjack_message_03 = {
134 title = _ "Building a connecting road",107 title = _ "Building a Connecting Road",
135 pos = "topright",108 pos = "topright",
136 body = rt(p(_109 body = rt(p(_(
137[[That won't do yet. I still need to connect the lumberjack's hut to the110[[That won’t do yet. I still need to connect the lumberjack’s hut to the rest of my road network. ]] ..
138rest of my road network. After I ordered a construction site, I was111[[After ordering the construction site, I was automatically put into road building mode, ]] ..
139automatically put in road building mode, so all I have to do is click on the112[[so all I have to do is click on the blue flag in front of my headquarters.]])
140blue flag in front of my headquarters.]]
141 )113 )
142 )114 )
143}115}
144116
145lumberjack_message_04 = {117lumberjack_message_04 = {
146 title = _ "Waiting for the lumberjack to go up",118 title = _ "Waiting for the Lumberjack to Go Up",
147 pos = "topright",119 pos = "topright",
148 body = rt(p(_120 body = rt(p(_(
149[[Now watch closely as a builder leaves the headquarters and goes to the121[[Now watch closely while a builder leaves the headquarters and goes to the construction site. ]] ..
150construction site. Also a carrier will take position in between the two blue122[[Also, a carrier will take position in between the two blue flags and carry wares from one blue flag to the other.]])
151flags and carry wares from one blue flag to the other.]]
152 )123 )
153 )124 )
154}125}
155126
156lumberjack_message_05 = {127lumberjack_message_05 = {
157 title = _ "Placing another flag",128 title = _ "Placing Another Flag",
158 pos = "topright",129 pos = "topright",
159 body = rt(p(_130 body = rt(p(_(
160[[Nice how they work, isn't it? But the poor carrier has a very long way to go.131[[Nice how they are working, isn’t it? But the poor carrier has a very long way to go. ]] ..
161We can make it easier for him (and more efficient for us) when we place another132[[We can make it easier for him (and more efficient for us) when we place another blue flag on the road.]])
162blue flag on the road. You try it this time: click on the yellow flag symbol133 ) .. p([[• ]] ..
163in between the two blue flags we just placed and then click on the]]134_([[You try it this time: click on the yellow flag symbol in between the two blue flags we just placed and then click on the]])
164 )) .. rt("image=pics/menu_build_flag.png", p(_ "build flag symbol.")135 )) .. rt("image=pics/menu_build_flag.png", p(_ "build flag symbol.")
165 ),136 ),
166 obj_name = "build_flag_on_road_to_lumberjack",137 obj_name = "build_flag_on_road_to_lumberjack",
167 obj_title = _ "Build a flag to divide the road to the lumberjack",138 obj_title = _ "Build a flag to divide the road to the lumberjack",
168 obj_body = rt(h1(_"Build a flag on the road") .. p(_139 obj_body = rt(h1(_"Build a Flag on the Road") .. p(_(
169[[The shorter your road segments are, the faster your wares will be transported.140[[The shorter your road segments are, the faster your wares will be transported. ]] ..
170You should therefore make sure that your roads have as many flags as possible.141[[You should therefore make sure that your roads have as many flags as possible.]])) ..
171Build a blue flag now in the middle of the road that connects your headquarters142 p([[• ]] ..
172to your lumberjack's hut.]])143_[[Build a blue flag now in the middle of the road that connects your headquarters to your lumberjack’s hut.]])
173 )144 )
174}145}
175146
176lumberjack_message_06 = {147lumberjack_message_06 = {
177 title = _ "Waiting for the hut to be finished",148 title = _ "Waiting For the Hut to be Finished",
178 pos = "topright",149 pos = "topright",
179 body = rt(p(_150 body = rt(p(_
180[[Well done! Let's wait till the hut is finished. If you want things to151[[Well done! Let’s wait till the hut is finished.]]) ..
181go faster, simply use the PAGE UP key on your keyboard to increase the game152 p(_(
182speed. You can use PAGE DOWN to make the game slower again.]]153[[If you want things to go faster, simply use the PAGE UP key on your keyboard to increase the game speed. ]] ..
154[[You can use PAGE DOWN to make the game slower again.]])
183 )155 )
184 )156 )
185}157}
186158
187lumberjack_message_07 = {159lumberjack_message_07 = {
188 title = _ "Lumberjack is done",160 title = _ "Lumberjack is Done",
189 pos = "topright",161 pos = "topright",
190 body = rt(p(_162 body = rt(p(_(
191[[Excellent. The lumberjack's hut is done. A lumberjack will now move in and163[[Excellent. The lumberjack’s hut is done. ]] ..
192start chopping down trees, so our trunks income is secured for now. Now on to164[[A lumberjack will now move in and start chopping down trees, so our logs income is secured for now. ]] ..
193the raw stone.]]165[[Now on to the raw stone.]])
194 )166 )
195 )167 )
196}168}
197169
198inform_about_stones = {170inform_about_stones = {
199 title = _ "Some stones were found",171 title = _ "Some Stones Were Found",
200 body = rt(h1(_ "Getting a quarry up.")) ..172 body = rt(h1(_"Getting a Quarry Up.")) ..
201 rt(p(_173 rt(p(_(
202[[Stones can be mined in granite mines, but the easier way is to build a quarry174[[Stones can be mined in granite mines, but the easier way is to build a quarry next to some stones lying around. ]] ..
203next to some stones laying around. As it happens, there is a pile of them175[[As it happens, there is a pile of them just to the west (left) of your headquarters. ]] ..
204laying just to the west (left) of your headquarters. I will teach you now how to176[[I will teach you now how to move your view over there.]])
205move your view over there.]]177 ) .. p([[→ ]] ..
206 ) .. p(_178_([[There are two ways to move your view. The first one is using the cursor keys on your keyboard. ]] ..
207[[There are two ways to move your view. The first one is using the cursor keys179[[Go ahead and try this out.]])) ..
208on your keyboard. Go ahead and try this out. Click the "OK" button and then move180 p([[• ]] ..
209the view using the cursor keys]]181_[[Click the ‘OK’ button and then move the view using the cursor keys]]
210 )182 )
211 ),183 ),
212 obj_name = "move_view_with_cursor_keys",184 obj_name = "move_view_with_cursor_keys",
213 obj_title = _ "Move your view with the cursor keys",185 obj_title = _ "Move your view with the cursor keys",
214 obj_body = rt(h1(_"Moving your view") .. p(_186 obj_body = rt(h1(_"Moving Your View") .. p(_(
215[[Moving your view is essential to get a complete overview of your whole187[[Moving your view is essential to get a complete overview of your whole economy. ]] ..
216economy. There are two ways to move your view in Widelands. The first one is188[[There are two ways to move your view in Widelands.]])) .. p(
217to use the cursor keys on your keyboard. The second one is the more common and189[[→ ]] .. _[[The first one is to use the cursor keys on your keyboard.]])
218faster one: press-and-hold the right mouse button anywhere on the map, then move190 .. p(
219your mouse around and you'll see the view scroll.]]191[[→ ]] .. _([[The second one is the more common and faster one: press-and-hold the right mouse button anywhere on the map, ]] ..
192[[then move your mouse around and you’ll see the view scroll.]])
220 )193 )
221 )194 )
222}195}
223196
224tell_about_right_drag_move = {197tell_about_right_drag_move = {
225 title = _ "Other ways to move the view",198 title = _ "Other Ways to Move the View",
226 body = rt(p(_199 body = rt(p(_
227[[Excellent. Now there is a faster way to move, using the mouse instead: Simply200[[Excellent. Now there is a faster way to move, using the mouse instead:]]
228right-click-and-hold anywhere on the map, then drag the mouse and instead201 ) .. p([[• ]] ..
229of the cursor, the view will be moved. Try it.]]202_([[Simply right-click-and-hold anywhere on the map, ]] ..
203[[then drag the mouse and instead of the cursor, the view will be moved. Try it.]])
230 )204 )
231 ),205 ),
232 obj_name = "move_view_with_mouse",206 obj_name = "move_view_with_mouse",
@@ -235,7 +209,7 @@
235}209}
236210
237congratulate_and_on_to_quarry = {211congratulate_and_on_to_quarry = {
238 title = _ "Onward to the quarry",212 title = _ "Onward to the Quarry",
239 body = rt(p(_213 body = rt(p(_
240[[Great. Now about that quarry...]]214[[Great. Now about that quarry...]]
241 )215 )
@@ -245,17 +219,16 @@
245order_quarry_recap_how_to_build = {219order_quarry_recap_how_to_build = {
246 field = first_quarry_field,220 field = first_quarry_field,
247 pos = "topright",221 pos = "topright",
248 title = _ "How to build a quarry",222 title = _ "How to Build a Quarry",
249 body = rt(p(_223 body = rt(p(_
250[[Build a quarry next to those stones here. Remember how I did it earlier?224[[Build a quarry next to those stones here. Remember how I did it earlier?]]
251Make sure that build help is on, then just click the place were you want the225) .. p(_(
252building to be, choose it from the window that appears and it is placed. Maybe226[[Make sure that you are showing the building spaces, then just click on the space were you want the building to be, ]] ..
253it is a good time to explain about all those build help symbols we activated227[[choose it from the window that appears and it is placed. ]] ..
254earlier.]]228[[Maybe this is a good time to explain about all those building space symbols we activated earlier.]])
255 ) .. p(_229 ) .. p(_(
256[[You can build four things on fields in Widelands: Flags, small houses, medium230[[You can build four things on fields in Widelands: Flags, small houses, medium houses and big houses. ]] ..
257houses and big houses. But not every field can hold anything. The build help231[[But not every field can hold everything. The build space symbols ease recognition:]])
258eases recognition:]]
259 )) .. rt("image=pics/big.png", p(_232 )) .. rt("image=pics/big.png", p(_
260[[Everything can be built on the green house symbol.]]233[[Everything can be built on the green house symbol.]]
261 )) .. rt("image=pics/medium.png", p(_234 )) .. rt("image=pics/medium.png", p(_
@@ -264,24 +237,25 @@
264[[Red building symbols can only hold small buildings and flags.]]237[[Red building symbols can only hold small buildings and flags.]]
265 )) .. rt("image=pics/set_flag.png", p(_238 )) .. rt("image=pics/set_flag.png", p(_
266[[And finally the yellow flag symbol only allows for flags.]]239[[And finally the yellow flag symbol only allows for flags.]]
267 )) .. rt(p(_240 )) .. rt(p(_(
268[[If you place something on a field, the surrounding fields might have less241[[If you place something on a field, the surrounding fields might have less space for holding buildings, ]] ..
269 space for holding buildings, so choose your fields wisely.]]242[[so choose your fields wisely.]])
270 )) .. rt(p(_243 )) .. rt(p([[• ]] ..
271[[Now go ahead, try it. The quarry is a small building, so if you click on a244_([[Now go ahead, try it. ]] ..
272medium or big building symbol, you will have to select the small buildings245[[The quarry is a small building, so if you click on a medium or big building symbol, ]] ..
273tab first to find it. Go on, check it out!]]246[[you will have to select the small buildings tab first to find it. Go on, check it out!]])
274 )247 )
275 ),248 ),
276 obj_name = "build_a_quarry",249 obj_name = "build_a_quarry",
277 obj_title = _ "Build a quarry next to the stones",250 obj_title = _ "Build a quarry next to the stones",
278 obj_body = rt(h1(_ "Build a quarry") .. p(_251 obj_body = rt(h1(_ "Build a Quarry") .. p([[• ]] ..
279[[There are some stones to the west of your headquarters. Build a quarry right252_[[There are some stones to the west of your headquarters. Build a quarry right next to them.]]) .. p(
280next to them. The quarry is a small building like the lumberjack's hut. You253[[→ ]] .. _([[The quarry is a small building like the lumberjack’s hut. ]] ..
281can therefore build it on any field that shows a red, yellow or green house254[[You can therefore build it on any field that shows a red, ]] ..
282when the build help is enabled (Press SPACE for that).]]) .. p(_255[[yellow or green house when the building spaces symbols are enabled (Press SPACE for that).]]
283[[Just click on any house symbol next to the stones, select the small buildings256 )) .. p([[→ ]] ..
284tab in the window that opens up, then click on the quarry symbol.]]257_([[Just click on any house symbol next to the stones, select the small buildings tab in the window ]] ..
258[[that opens up, then click on the quarry symbol.]])
285 )259 )
286 )260 )
287}261}
@@ -289,134 +263,131 @@
289talk_about_roadbuilding_00 = {263talk_about_roadbuilding_00 = {
290 pos = "topright",264 pos = "topright",
291 field = wl.Game().map:get_field(9,12),265 field = wl.Game().map:get_field(9,12),
292 title = _ "Road building",266 title = _ "Road Building",
293 body = rt(p(_267 body = rt(p(_(
294[[Excellent! Directly after you placed a building, you are in road building268[[Excellent! Directly after placing the building, you have been switched into road building mode. ]] ..
295mode. The new road will start at the flag in front of your newly placed269[[The new road will start at the flag in front of your newly placed construction site. ]] ..
296construction site. You can enter road building mode for any flag by270[[You can enter road building mode for any flag by left-clicking on a flag and selecting]])
297left-clicking on a flag and selecting]]
298 )) .. rt("image=pics/menu_build_way.png", p(_271 )) .. rt("image=pics/menu_build_way.png", p(_
299[[the road building symbol.]]272[[the road building symbol.]]
300 )) .. rt(p(_273 )) .. rt(p(_(
301[[If you decide you do not want to build a road at this time, you can cancel274[[If you decide you do not want to build a road at this time, you can cancel road building ]] ..
302road building by clicking on the starting flag of the road and selecting]]275[[by clicking on the starting flag of the road and selecting]])
303 )) .. rt("image=pics/menu_abort.png", p(_276 )) .. rt("image=pics/menu_abort.png", p(_
304[[the abort symbol.]]277[[the abort symbol.]]
305 )) .. rt(p(_278 )) .. rt(p(_(
306[[Now, about this road. Remember: we are already in road building mode since you279[[Now, about this road. Remember: we are already in road building mode since you just ordered the quarry. ]] ..
307just ordered the quarry. You can either make it longer by one field at a time280[[You can either make it longer by one field at a time by left-clicking multiple times on neighboring fields ]] ..
308by left-clicking multiple times on neighbouring fields for perfect control over281[[for perfect control over the route the road takes like so:]])
309the route the road takes like so:]]
310 ))282 ))
311}283}
312284
313talk_about_roadbuilding_01 = {285talk_about_roadbuilding_01 = {
314 pos = "topright",286 pos = "topright",
315 field = wl.Game().map:get_field(9,12),287 field = wl.Game().map:get_field(9,12),
316 title = _ "Road building",288 title = _ "Road Building",
317 body = rt(p(_289 body = rt(p(_
318[[Alternatively, you can directly click the flag where290[[Or, you can directly click the flag where the road should end like so:]]
319the road should end like so.]]
320 ))291 ))
321}292}
322293
323talk_about_roadbuilding_02 = {294talk_about_roadbuilding_02 = {
324 pos = "topright",295 pos = "topright",
325 title = _ "Road building",296 title = _ "Road Building",
326 body = rt(p(_297 body = rt(p(_(
327[[One more thing: around the field where your road would end you can see298[[One more thing: around the field where your road would end, you can see different markers. ]] ..
328different markers. They have the following meaning:]]299[[They have the following meaning:]])
329 )) .. rt("image=pics/roadb_green.png", p(_300 )) .. rt("image=pics/roadb_green.png", p(_
330[[The terrain is flat here. Your carriers will be very swift on this terrain.]]301[[The terrain is flat here. Your carriers will be very swift on this terrain.]]
331 )) .. rt("image=pics/roadb_yellow.png", p(_302 )) .. rt("image=pics/roadb_yellow.png", p(_(
332[[There is a small slope to climb to reach this field. This means your303[[There is a small slope to climb to reach this field. ]] ..
333workers are faster walking downwards than they are walking upwards.]]304[[This means that your workers will be faster walking downhill than they will be walking uphill.]])
334 )) .. rt("image=pics/roadb_red.png", p(_305 )) .. rt("image=pics/roadb_red.png", p(_(
335[[The connection between the fields is extremely steep. The speed increase in306[[The connection between the fields is extremely steep. ]] ..
336one direction is huge while the slowdown in the other is also substantial.]]307[[The speed increase in one direction is huge while the slowdown in the other is also substantial.]])
337 )) .. rt(p(_308 )) .. rt(p(_(
338[[Keep the slopes in mind while placing roads and use them to your advantage.309[[Keep the slopes in mind while placing roads and use them to your advantage. ]] ..
339Also try to keep roads as short as possible and always remember to place as310[[Also, try to keep roads as short as possible and always remember to place ]] ..
340many flags as you can on road segments to share the load better.]]311[[as many flags as you can on road segments to share the load better.]])
341 )) .. rt(p(_312 )) .. rt(p([[• ]] ..
342[[Now please rebuild the road between your quarry and your headquarters.313_([[Now please rebuild the road between your quarry and your headquarters. ]] ..
343We'll wait until the quarry is completed.]]314[[We’ll wait until the quarry is completed.]])
344 )),315 )),
345 obj_name = "build_road_to_quarry",316 obj_name = "build_road_to_quarry",
346 obj_title = _ "Connect the quarry to the headquarters",317 obj_title = _ "Connect the quarry to the headquarters",
347 obj_body = rt(h1(_"Connect your construction site") .. p(_318 obj_body = rt(h1(_"Connect Your Construction Site") .. p(_(
348[[Connect your quarry construction site to your headquarters with a road. You319[[Connect your quarry construction site to your headquarters with a road. ]] ..
349are directly in road building mode when you ordered a new site. But now, you320[[You would have been put directly into road building mode after ordering a new site. But now, you aren’t.]])) ..
350aren't. To build a completely new road just click on the flag in front of your321 p([[→ ]] ..
351construction site, click on the build road icon then click on the flag in front322_([[To build a completely new road, just click on the flag in front of your construction site, ]] ..
352of your headquarters. Wait for the completion of the stonemason's hut.]]323[[click on the build road icon and then click on the flag in front of your headquarters. ]] ..
324[[Wait for the completion of the quarry.]])
353 )325 )
354 )326 )
355}327}
356328
357census_and_statistics_00 = {329census_and_statistics_00 = {
358 title = _ "Census and statistics",330 title = _ "Census and Statistics",
359 body = rt(p(_331 body = rt(p(_(
360[[While we wait, I'll quickly show you another useful feature. All construction332[[While we wait, I’ll quickly show you another useful feature. ]] ..
361sites look the same and some buildings look alike. It is sometimes hard to tell333[[All construction sites look the same, and some buildings look alike. It is sometimes hard to tell them apart. ]] ..
362them apart. Widelands offers a feature to show label texts over the buildings.334[[Widelands offers a feature to show label texts over the buildings. ]] ..
363They are called the census and you can toggle them via the 'c' key or via335[[They are called the ‘census’ and you can toggle them via the ‘c’ key or via the button on the ‘Watch’ tab of any field.]])
364the button on the watch tab of any field.]]336 ) .. p(_(
365 ) .. p(_337[[Similar to this are the building statistics, which are also toggled via a button on the ‘Watch’ tab of any field. ]] ..
366[[Similar to this are building statistics which are also toggled via a338[[The hotkey for it is ‘s’. This will display information about the productivity of buildings ]] ..
367button on the watch tab of any field. The hotkey for it is 's'. This will339[[or the progress of construction sites.]])
368display an information string about the productivity of buildings or the340 ) .. p(_(
369progress of construction sites.]]341[[Let me quickly enable these two for you. Remember: ‘c’ and ‘s’ are the keys. ]] ..
370 ) .. p(_342[[Alternatively, you can click on any field without a building on it, ]] ..
371[[Let me quickly enable those two for you. Remember: 'c' and 's' are the keys.343[[select the watch tab and then click on the corresponding buttons.]])
372Alternatively you can click on any field without a building on it, select the
373watch tab and then click on the corresponding buttons.]]
374 )344 )
375)345)
376}346}
377347
378census_and_statistics_01 = {348census_and_statistics_01 = {
379 title = _ "Census and statistics",349 title = _ "Census and Statistics",
380 body = rt(p(_350 body = rt(p(_
381[[Now we know what's going on. Let's wait for this quarry to finish.]]351[[Now we know what’s going on. Let’s wait for this quarry to finish.]]
382 )352 )
383)353)
384}354}
385355
386teaching_about_messages = {356teaching_about_messages = {
387 popup = true,357 popup = true,
388 title = _ "Introducing messages",358 title = _ "Introducing Messages",
389 body = rt(h1(_"Messages") ..359 body = rt(h1(_"Messages") ..
390 p(_360 p(_(
391[[Hi, it's me again! This time, I sent you a message. Messages are sent to you361[[Hi, it’s me again! This time, I have sent you a message. ]] ..
392by Widelands to inform you about important events: empty mines, attacks on your362[[Messages are sent to you by Widelands to inform you about important events: empty mines, attacks on your tribe, ]] ..
393tribe, won or lost military buildings, resources found...]]363[[won or lost military buildings, resources found...]]
394 ) .. p(_364 )) .. p(_(
395[[The message window can be toggled by the button on the very right at the365[[The message window can be toggled by the button on the very right at the bottom of the screen. ]] ..
396bottom of the screen. This button also changes appearance if new messages are366[[This button will also change appearance whenever new messages are available, ]] ..
397available, but there is also a bell sound played whenever you receive a new367[[but there is also a bell sound played whenever you receive a new message.]]
398message.]]368 )) .. p(_(
399 ) .. p(_369[[You have two messages at the moment. ]] ..
400[[Currently, you have two messages. This one which you are currently reading and370[[This one, which you are currently reading, and the one that informed you that a new headquarters ]] ..
401the one that informed you that a new headquarters was added to your economy.371[[was added to your economy. Let’s learn how to archive messages: ]] ..
402Let's learn how to archive messages: You can check them off in your inbox so372[[You can check them off in your inbox so that they get a tick-symbol in front of them. ]] ..
403that they get a tick-symbol in front of them. Then, you can click the]]373[[Then, you can click the]]
404 )) .. rt("image=pics/message_archive.png", p(_374 ))) .. rt("image=pics/message_archive.png", p(_
405[[archive message button to move them into your archive.]]375[[archive message button to move them into your archive.]]
406 )) .. rt(p(_376 )) .. rt(p([[• ]] ..
407[[Archive all messages, including this one, that you currently have in your377_[[Archive all messages that you currently have in your inbox, including this one.]]
408 inbox.]]
409 )378 )
410 ),379 ),
411 obj_name = "archive_all_messages",380 obj_name = "archive_all_messages",
412 obj_title = _"Archive all messages in your inbox",381 obj_title = _"Archive all messages in your inbox",
413 obj_body = rt(h1(_"Archive our inbox messages") .. p(_382 obj_body = rt(h1(_"Archive Your Inbox Messages") .. p(_(
414[[The message window is central to fully controlling your tribe's fortune. But383[[The message window is central to fully controlling your tribe’s fortune. ]] ..
415you get a lot of messages in a real game. To keep your head straight, you should384[[However, you will get a lot of messages in a real game. ]] ..
416try to keep the inbox empty. Archive all your messages in the inbox now. To do385[[To keep your head straight, you should try to keep the inbox empty. ]])
417so, open the messages window by pressing 'n' or clicking the right most button386 ) .. p([[• ]] ..
418at the very bottom of the screen. Then mark all messages by checking the check387_[[Archive all your messages in your inbox now.]]
419box in front of them. Then, click the archive all button]]388 ) .. p([[→ ]] ..
389_([[To do so, open the message window by pressing ‘n’ or clicking the rightmost button at the very bottom of the screen. ]] ..
390[[Then mark all messages by checking the check box in front of them. Then, click the ‘Archive All’ button.]])
420 )391 )
421 )392 )
422}393}
@@ -424,20 +395,21 @@
424closing_msg_window_00 = {395closing_msg_window_00 = {
425 pos = "topright",396 pos = "topright",
426 field = first_quarry_field,397 field = first_quarry_field,
427 title = _"Closing windows",398 title = _"Closing Windows",
428 body = rt(p(_399 body = rt(p(_(
429[[Excellent. By the way: closing windows in Widelands is as easy as400[[Excellent. By the way: closing windows in Widelands is as easy as right-clicking on them. ]] ..
430right-clicking on them. This works with all windows except for story message401[[This will work with all windows except for story message windows like this one. Go ahead and try it.]])
431windows like this one. Go ahead and try it. First, close this window by pressing402 ) .. p([[• ]] ..
432the button below, then right click into the messages window to close it.]]403_[[First, close this window by pressing the button below, then right-click into the messages window to close it.]]
433 )404 )
434 ),405 ),
435 obj_name = "close_message_window",406 obj_name = "close_message_window",
436 obj_title = _ "Close the messages window",407 obj_title = _ "Close the messages window",
437 obj_body = rt(h1(_"Close the messages window") .. p(_408 obj_body = rt(h1(_"Close the Messages Window") .. p(_(
438[[All windows in Widelands can be closed by right clicking into them. Some409[[All windows in Widelands can be closed by right-clicking into them. ]] ..
439windows can also be toggled with the buttons at the very bottom of the screen.410[[Some windows can also be toggled with the buttons at the very bottom of the screen.]])
440Close the messages window now by right clicking into it.]]411 ) .. p([[• ]] ..
412_[[Close the messages window now by right-clicking into it.]]
441 )413 )
442 )414 )
443}415}
@@ -445,92 +417,87 @@
445closing_msg_window_01 = {417closing_msg_window_01 = {
446 pos = "topright",418 pos = "topright",
447 field = first_quarry_field,419 field = first_quarry_field,
448 title = _ "Closing windows",420 title = _ "Closing Windows",
449 body = rt(p(_421 body = rt(p(_(
450[[Well done! Let's see how messages work in the real game, shall we? For this,422[[Well done! Let’s see how messages work in a real game, shall we? ]] ..
451I'll take all stones away from the poor stonemason in the quarry. He will then423[[For this, I’ll take all stones away from the poor stonemason in the quarry. ]] ..
452send a message that he can't find any in his working area the next time he424[[He will then send a message that he can’t find any in his working area the next time he tries to do some work.]])
453tries to do some work.]]
454 )425 )
455 )426 )
456}427}
457428
458conclude_messages = {429conclude_messages = {
459 pos = "topright",430 pos = "topright",
460 title = _ "Message arrived!",431 title = _ "Message Arrived!",
461 body = rt(p(_432 body = rt(p(_(
462[[A message has been sent to you. See how the button at the bottom of the433[[A message has been sent to you. See how the button at the bottom of the screen has changed appearance? ]] ..
463screen has changed appearance? You might now burn this quarry down as it is434[[You can burn this quarry down now as it is no longer of any use and just blocking space.]])
464no longer of any use and is just blocking space. To do that, click on the435 ) .. p([[• ]] ..
465quarry and select the destroy button.]]436_[[To do that, click on the quarry and select the destroy button.]]
466 ))437 ))
467}438}
468439
469introduce_expansion = {440introduce_expansion = {
470 title = _ "Expanding your territory!",441 title = _ "Expanding Your Territory!",
471 body = rt(p(_442 body = rt(p(_(
472[[There is one more thing I'd like to teach you now: Expanding your territory.443[[There is one more thing I’d like to teach you now: Expanding your territory. ]] ..
473The place that we start with around our headquarters is barely enough for a444[[The place that we started with around our headquarters is barely enough for a basic building infrastructure, ]] ..
474basic build infrastructure and we do not have access to mountains which we445[[and we do not have access to mountains, which we need to mine minerals and coal. So, we have to expand our territory.]])
475need to mine minerals and coal. So we have to expand our territory.]]446 ) .. p(_(
476 ) .. p(_447[[Expanding is as simple as building a military building at the edge of your territory. ]] ..
477[[Expanding is as simple as building a military building at the corner of448[[The barbarians have a selection of different military buildings: ]] ..
478your territory. The barbarians have a few different military buildings:449[[sentries, barriers, donjons, fortresses and citadels. ]] ..
479sentries, barriers, donjons, fortresses and citadels. The bigger450[[The bigger the building, the more expensive it is to build, but the more land it will conquer around itself ]] ..
480the building, the more expensive it is to build, the more land it conquers451[[and the more soldiers can be stationed there. ]] ..
481around itself and the more soldiers can be stationed there. The buildings also452[[The buildings also vary in their vision range: buildings with a tower see farther than others.]])
482vary in their vision range: buildings with a tower see farther than others.]]453 ) .. p(_(
483 ) .. p(_454[[As soon as a military building is manned, it will extend your land. ]] ..
484[[As soon as a military building is manned, it extends your land. You can then455[[You can then burn it down again if you need the space. ]] ..
485burn it down again if you need the place. But note that your land is then456[[But note that your land is then vulnerable: any military site from another player could conquer the land. ]] ..
486vulnerable: any military site from another player can conquer the land. You457[[You therefore need military sites to keep military influence over your land.]])
487therefore need military sites to keep military influence over your land.]]458 ) .. p([[• ]] ..
488 ) .. p(_459_[[Let’s try it out now: build a few military buildings on your south-western border.]]
489[[Let's try it out now: Build a few military buildings on your south western460 ) .. p([[→ ]] ..
490border. We want to capture some of this mountain, so we can search for461_([[We want to capture some of this mountain so we can search for resources there. ]] ..
491resources there. Bigger buildings will conquer more land which can be beneficial462[[Bigger buildings will conquer more land, which can be beneficial close to mountains, ]] ..
492close to mountains because you can't build houses in mountains.]]463[[because you can’t build houses on mountains.]])
493 )464 )
494 ),465 ),
495 obj_name = "conquer_mountain",466 obj_name = "conquer_mountain",
496 obj_title = _ "Conquer an area were we can build mines",467 obj_title = _ "Conquer an area were we can build mines",
497 obj_body = rt(h1(_"Conquer the mountain to the south west") .. p(_468 obj_body = rt(h1(_"Conquer the Mountain to the South-West") .. p(_(
498[[For a full-fledged economy, we need coal, iron and gold. These can be found469[[For a full-fledged economy, we need coal, iron and gold. These can be found in mountains. ]] ..
499in mountains. Conquer some area on the mountains to the south-west of your470[[Conquer some area on the mountains to the south-west of your headquarters ]] ..
500headquarters by building some military buildings close to your border.]]471[[by building some military buildings close to your border.]])
501 ) .. p(_472 ) .. p([[→ ]] ..
502[[You can choose from the following military buildings: sentry, 473_([[You can choose from the following military buildings: sentry, donjon, barrier and fortress. ]] ..
503donjon, barrier and fortress. The bigger the building, the more expensive it is474[[The bigger the building, the more expensive it is to build it, but it will also conquer a bigger region. ]] ..
504to be built. But it will also conquer a bigger region. Sometimes, it is useful475[[Sometimes, it is useful to build a big military building next to a mountain ]] ..
505to build a big military building next to a mountain so that you can reach476[[so that you can reach building sites farther up.]])
506fields farther up.]]
507 )477 )
508 )478 )
509}479}
510480
511mining_00 = {481mining_00 = {
512 pos = "topright",482 pos = "topright",
513 title = _ "Searching for resources",483 title = _ "Searching for Resources",
514 body = rt(p(_484 body = rt(p(_(
515[[Okay, now we own some of the area on this mountain. Mountains are very485[[Okay, now we own some of the area on this mountain. ]] ..
516important, because they contain resources: coal, iron ore, gold ore and486[[Mountains are very important, because they contain resources: coal, iron ore, gold ore and granite. ]] ..
517granite. Each tribe uses the resources differently, but all need mines to get487[[Each tribe uses the resources differently, but all need mines to extract the resources from the ground.]])
518the resources out of the ground.]]488 ) .. p(_(
519 ) .. p(_489[[Let’s search for resources in this mountain. First, we’ll build a road onto the mountain and place a flag. ]] ..
520[[Let's search for resources in this mountain. First, we'll build a road into490[[Then, we will click on the flag and call a geologist to it. I’ll show you how it’s done.]])
521the mountains and place a flag. Then, we click on the flag and call a geologist
522to it. I'll show you how it's done.]]
523 )491 )
524)492)
525}493}
526494
527mining_01 = {495mining_01 = {
528 pos = "topright",496 pos = "topright",
529 title = _"Waiting for the geologist",497 title = _"Waiting for the Geologist",
530 body = rt(p(_498 body = rt(p(_(
531[[The geologist will arrive shortly to the flag and start investigating the499[[The geologist will arrive at the flag shortly and start investigating the area in his surroundings. ]] ..
532area in his surroundings. He will place the following markers for the various500[[He will place the following markers for the various resources:]])
533resources:]]
534 )) ..501 )) ..
535 rt("image=tribes/barbarians/resi_coal1/resi_00.png", p(_ "a bit of coal")) ..502 rt("image=tribes/barbarians/resi_coal1/resi_00.png", p(_ "a bit of coal")) ..
536 rt("image=tribes/barbarians/resi_coal2/resi_00.png", p(_ "a lot of coal")) ..503 rt("image=tribes/barbarians/resi_coal2/resi_00.png", p(_ "a lot of coal")) ..
@@ -546,52 +513,54 @@
546 rt("image=tribes/barbarians/resi_none/resi_00.png",513 rt("image=tribes/barbarians/resi_none/resi_00.png",
547 p(_ "nothing was found here"))514 p(_ "nothing was found here"))
548 .. rt(p(_515 .. rt(p(_
549[[Let's wait and see what the geologist finds on the mountain.]]516[[Let’s wait and see what the geologist finds on the mountain.]]
550 )517 )
551)518)
552}519}
553520
554mining_02 = {521mining_02 = {
555 pos = "topright",522 pos = "topright",
556 title = _ "Mining conclusion",523 title = _ "Mining Conclusion",
557 body = rt(p(_524 body = rt(p(_(
558[[So our geologist found a lot of coal on this mountain. You should therefore525[[So our geologist found a lot of coal on this mountain. ]] ..
559build a coal mine here. Building a mine is like building a house. The build help526[[You should therefore build a coal mine here. Building a mine is like building a house. ]] ..
560symbol for where a mine can be built is]]527[[The building space symbol for where a mine can be built is]])
561 )) .. rt("image=pics/mine.png", p(_"this one.")) ..528 )) .. rt("image=pics/mine.png", p(_"this one.")) ..
562 rt(p(_529 rt(p(_(
563[[Note that a mine needs rations to work. Rations are530[[Note that a mine needs rations to work. ]] ..
564produced in taverns and taverns need meat, pitta bread, and fish to produce531[[Rations are produced in taverns, and taverns need meat, pitta bread, and fish to produce them. ]] ..
565them. You will need a lot more infrastructure to get your mines working532[[You will need a lot more infrastructure to get your mines working well. ]] ..
566well. This infrastructure also varies from tribe to tribe. You'll get them533[[This infrastructure also varies from tribe to tribe. ]] ..
567explained in the introduction campaigns for the three tribes.]]534[[We will explain them to you in the introduction campaigns for the three tribes.]])
568 )535 )
569)536)
570}537}
571538
572warfare_and_training_00 = {539warfare_and_training_00 = {
573 title = _ "Warfare and Training",540 title = _ "Warfare and Training",
574 body = rt(h1(_ "Soldiers and Warfare") .. p(_541 body = rt(h1(_ "Soldiers and Warfare") .. p(_(
575[[On to the last topic now. We are going to talk about soldiers, their training542[[On to the last topic now. We are going to talk about soldiers, their training and their profession: warfare. ]] ..
576and their profession: warfare. As mentioned, Widelands is about building up,543[[As I mentioned, Widelands is about building up, not burning down: ]] ..
577not burning down: therefore warfare is also more focused on the economics than544[[therefore, warfare is also more focused on economics than on military strategies.]]
578the military strategies. Nevertheless, warfare offers one way to challenge545 )) .. p(_(
579other players and it has some game mechanics that deserve explanation. The546[[Nevertheless, warfare offers one way of challenging other players, ]] ..
580economies of the tribes are explained in their individual tutorial campaigns.547[[and it has some game mechanics that deserve explanation. ]] ..
581Ok, I am going to create us a little training ground with a training camp and a548[[The economies of the tribes are explained in their individual tutorial campaigns. ]]
582warehouse to the north east of here.]]) .. p(_549 )) .. p(_(
583[[If you want to come back to this south-western part of your realm, just scroll here550[[Ok, I am going to create a little training ground for us with a training camp and a warehouse to the north east of here.]]))
584via right-button scrolling or open the minimap by clicking on the]]551 .. p(_(
585 )) .. rt("image=pics/menu_toggle_minimap.png", p(_552[[If you want to come back to this south-western part of your realm, ]] ..
586[[minimap button at the bottom of the screen. Alternatively you could also press553[[just scroll here via right-button scrolling or open the minimap by clicking on the]])
587'm' on your keyboard]]554 )) .. rt("image=pics/menu_toggle_minimap.png", p(_(
588 )) .. (rt(p(_555[[minimap button at the bottom of the screen.]]
589[[The minimap shows you the complete map in miniature. You can directly jump to556 )) .. p(_(
590any field by left-clicking on it. You can also toggle buildings, roads, flags557[[Alternatively, you could also press ‘m’ on your keyboard.]])
591and player indicators on and off inside the minimap.]]558 )) .. (rt(p(_(
592 ) .. p(_559[[The minimap shows the complete map in miniature. You can directly jump to any field by left-clicking on it. ]] ..
593[[But I digress. Back to soldiers. What was I about to do? Oh yes, I wanted to560[[You can also toggle buildings, roads, flags and player indicators on and off inside the minimap.]])
594build a small training scenario for you. Let's do that now.]]561 ) .. p(_(
562[[But I digress. Back to soldiers. What was I about to do? ]] ..
563[[Oh yes, I wanted to build a small training scenario for you. Let’s do that now.]])
595 )564 )
596 )565 )
597 )566 )
@@ -599,71 +568,73 @@
599568
600warfare_and_training_01 = {569warfare_and_training_01 = {
601 pos = "topright",570 pos = "topright",
602 title = _ "Trainings camp and soldier stats",571 title = _ "Trainings Camp and Soldier Stats",
603 body = rt(p(_572 body = rt(p(_(
604[[There we go. Take a look at the soldiers that are on their way into our573[[Here we go. Take a look at the soldiers that are on their way into our training camp. ]] ..
605trainings camp. They look different than normal workers: they have a health bar574[[They look different from normal workers: they have a health bar over their head ]] ..
606over their head that displays their remaining hitpoints and they have four575[[that displays their remaining health, and they have four symbols, ]] ..
607symbols which symbolize the individual soldier's current levels in the four576[[which symbolize the individual soldier’s current levels in the four different categories ]] ..
608different categories hitpoints, attack, defense and evade.]]577[[health, attack, defense and evade.]])
609 ) .. p(_578 ) .. p(_(
610[[A soldier is created as any normal worker: a carrier grabs a tool in a579[[A soldier is created like any normal worker: ]] ..
611warehouse as soon as a request for a certain profession is not fulfilled. The580[[a carrier grabs a tool in a warehouse as soon as a request for a certain profession is not fulfilled. ]] ..
612tool to create a barbarian soldier is an axe. The newly created soldier is of581[[The tool to create a barbarian soldier is an ax. Newly created soldiers are of level 0. ]] ..
613level 0. To make the soldier better in any of the four categories, training is582[[To make soldiers better in any of the four categories, training is needed.]])
614needed. Training happens in training sites like the trainings camp or the583 ) .. p(_(
615battle arena: soldiers go there (as our little fellows are currently doing),584[[Training happens in training sites like the training camp or the battle arena: ]] ..
616consume some wares and advance a level in one category. If a barbarian soldier585[[soldiers go there (as our little fellows are currently doing), ]] ..
617is fully trained, he has level 3 hitpoints, level 5 attack, level 0 defense and586[[consume some wares and advance a level in one category. If a barbarian soldier is fully trained, ]] ..
618level 2 evade. This is one fearsome warrior then! The individual statistics587[[he has level 3 health, level 5 attack, level 0 defense and level 2 evade. This is one fearsome warrior then!]] ..
619have the following meaning:]]588[[The individual statistics have the following meaning:]])
620 ) .. h2(_"Hitpoints:") .. p(_589 ) .. h2(_"Health:") .. p(_(
621[[The total life of a soldier. A barbarian soldier starts with ~130 hitpoints,590[[The total life of a soldier. A barbarian soldier starts with ~130 health points, ]] ..
622with each hitpoint level he gains 28 hitpoints.]]591[[and with each health level he gains 28 health points.]])
623 ) .. h2(_"Attack:") .. p(_592 ) .. h2(_"Attack:") .. p(_(
624[[The amount of damage a soldier inflicts upon a successful attack on the593[[The amount of damage a soldier will inflict on the enemy when an attack is successful. ]] ..
625enemy. A barbarian soldier with attack level 0 inflicts ~14 hitpoints damage594[[A barbarian soldier with attack level 0 inflicts ~14 points of health damage when he succeeds in hitting an enemy. ]] ..
626when he succeeds to hit an enemy. For each attack level, he gains 7 damage.]]595[[For each attack level, he gains 7 damage points.]])
627 ) .. h2(_"Defense:") .. p(_596 ) .. h2(_"Defense:") .. p(_(
628[[Defense is the value that is subtracted from the attack value. The barbarians597[[Defense is the value that is subtracted from the attack value. ]] ..
629can not train in this skill and therefore have always defense level 0 which598[[The barbarians cannot train in this skill and therefore have always defense level 0, ]] ..
630means that they always get 3 hitpoints subtracted from the damage inflicted. If599[[which means that they always get 3 points subtracted from the damage inflicted. ]] ..
631an attacker with an attack value of 15 hitpoints hits a barbarian soldier, the600[[If an attacker with an attack value of 15 points hits a barbarian soldier, the barbarian will lose 15 - 3 = 12 health. ]] ..
632barbarian would lose 15 - 3 = 12 hitpoints. The 3 hitpoints that are subtracted601[[The 3 points are subtracted because of the defense ability.]])
633are because of the defense ability.]]602 ) .. h2(_"Evade:") .. p(_(
634 ) .. h2(_"Evade:") .. p(_603[[Evade is the chance that the soldier is able to dodge an attack. ]] ..
635[[Evade is the chance that the soldier is able to dodge an attack. It is 25% for604[[It is 25% for a level 0 evade barbarian and increases in steps of 15% for each level.]])
636a level 0 evade barbarian and increases in steps of 15% for each level.]]
637 )605 )
638 )606 )
639}607}
640608
641enhance_fortress = {609enhance_fortress = {
642 pos = "topright",610 pos = "topright",
643 title = _ "Enhance this fortress",611 title = _ "Enhance This Fortress",
644 body = rt(h1(_ "Enhancing buildings") .. p(_612 body = rt(h1(_ "Enhancing Buildings") .. p(_(
645[[I will create an enemy for you soon, but let's make sure you are prepared.613[[I will create an enemy for you soon, but first let’s make sure you are prepared. ]] ..
646This fortress is already quite strong and conquers a lot of space. But there is614[[This fortress is already quite strong and conquers a lot of space. ]] ..
647an even bigger building: the citadel.]]615[[But there is an even bigger building: the citadel.]])
648 ) .. p(_616 ) .. p(_(
649[[Citadels can not be built directly. Instead, you have to construct a fortress617[[Citadels cannot be built directly. ]] ..
650first and then enhance it to a citadel. To do so, click on the fortress, then618[[Instead, you will have to construct a fortress first and then enhance it to a citadel. ]] ..
651choose the enhance to citadel button. Your soldiers will leave the citadel619[[To do so, click on the fortress, then choose the ‘Enhance to Citadel’ button. ]] ..
652while the construction is going on. This means that your fortress has no620[[Your soldiers will leave the fortress while the construction is going on. ]] ..
653military influence any more. If an enemy builds a military building nearby,621[[This means that your fortress will lose its military influence. If an enemy occupies a military building nearby, ]] ..
654your construction site could burn down. No sweat, that won't happen here.]]622[[your construction site will burn down. No sweat, that won’t happen here.]])
655 ) .. p(_623 ) .. p([[• ]] ..
656[[Enhance your fortress to a citadel now. Remember that you can speed time up624_[[Enhance your fortress to a citadel now.]]
657by using PAGE_UP, building a citadel takes a while.]]625 ) .. p([[→ ]] ..
626_([[Remember that you can speed time up by using PAGE_UP. ]] ..
627[[Building a citadel takes a while.]])
658 )628 )
659 ),629 ),
660 obj_name = "enhance_fortress",630 obj_name = "enhance_fortress",
661 obj_title = _"Enhance your fortress to a citadel",631 obj_title = _"Enhance your fortress to a citadel",
662 obj_body = rt(h1(_ "Enhance your fortress") .. p(_632 obj_body = rt(h1(_ "Enhance Your Fortress") .. p([[• ]] ..
663[[Enhance your fortress to a mighty citadel. The citadel can house 12 soldiers633_[[Enhance your fortress to a mighty citadel.]]
664and is the biggest military building the barbarians can build. It also costs a634 ) .. p([[→ ]] ..
665lot and takes a long time to build. It is most suited to guard strategically635_([[The citadel can house 12 soldiers and is the biggest military building the barbarians can build. ]] ..
666important points like constricted points or mountains.]]636[[It also costs a lot of resources and takes a long time to build. ]] ..
637[[It is most suited to guard strategically important points like constricted points or mountains.]])
667 )638 )
668 )639 )
669}640}
@@ -671,23 +642,23 @@
671attack_enemey = {642attack_enemey = {
672 pos = "topright",643 pos = "topright",
673 title = _ "Defeat your enemy",644 title = _ "Defeat your enemy",
674 body = rt(h1(_ "Defeat the enemy") .. p(_645 body = rt(h1(_ "Defeat the Enemy") .. p(_(
675[[I created a sparring partner for you: It is an empire tribe close to your646[[I have created a sparring partner for you: It is an empire tribe close to your citadel. ]] ..
676citadel. To attack its buildings, click on the door of your target building,647[[To attack its buildings, click on the door of a target building, ]] ..
677choose the number of soldiers that you wish to send and click on the attack648[[choose the number of soldiers that you wish to send and click on the attack button. ]] ..
678button. Your soldiers will come from all nearby military buildings. Likewise,649[[Your soldiers will come from all nearby military buildings. ]] ..
679the defenders will come from all nearby military buildings of the enemy and650[[Likewise, the defenders will come from all nearby military buildings of the enemy and intercept your forces.]])
680intercept your forces.]]651 ) .. p([[• ]] ..
681 ) .. p(_652_[[Attack and conquer all military buildings of the enemy and destroy their headquarters.]]
682[[Attack and conquer all military buildings of the enemy and destroy its
683headquarters.]]
684 )653 )
685 ),654 ),
686 obj_name = "defeated_the_empire",655 obj_name = "defeated_the_empire",
687 obj_title = _ "Defeat the enemy tribe",656 obj_title = _ "Defeat the enemy tribe",
688 obj_body = rt(h1(_"Defeat your enemy") .. p(_657 obj_body = rt(h1(_"Defeat Your Enemy") .. p([[• ]] ..
689[[Defeat the nearby enemy. To attack a building, click on its doors, choose the658_[[Defeat the nearby enemy.]]
690number of attacking soldiers, then send them via the attack button.]]659 ) .. p([[→ ]] ..
660_([[To attack a building, click on its doors, choose the number of attacking soldiers, ]] ..
661[[then send them via the ‘Attack’ button.]])
691 )662 )
692 )663 )
693}664}
@@ -695,29 +666,26 @@
695conclude_tutorial = {666conclude_tutorial = {
696 title = _ "Conclusion",667 title = _ "Conclusion",
697 body = rt(h1(_"Conclusion") ..668 body = rt(h1(_"Conclusion") ..
698 p(_669 p(_(
699[[This concludes the tutorial. There is some stuff we have not covered here --670[[This concludes the tutorial. ]] ..
700we have not even built a single producing building even though producing wares671[[There is some stuff we have not covered here – we have not even built a single production building ]] ..
701is the most important thing in Widelands -- but you've learned the ropes. You672[[even though producing wares is the most important thing in Widelands – but you’ve learned the ropes.]])
702can learn about the remaining stuff while you go through the individual tribe's673 ) .. p(_(
703introduction campaigns. Each consists of some scenarios explaining the tribes674[[You can learn about the remaining stuff while you go through the individual tribes’ introduction campaigns. ]] ..
704and their economy while introducing the background story of Widelands. Have fun675[[Each consists of some scenarios explaining the tribe and its economy while introducing the background story of Widelands. ]] ..
705playing!]]676[[Have fun playing!]])
706 ) .. p(_677 ) .. p(_(
707[[You can continue playing this map or you can end this game whenever you like.678[[You can continue playing this map or you can end this game whenever you like. ]] ..
708To leave this game and return to the main menu click on the]]679[[To leave this game and return to the main menu, click on the]])
709 )) .. rt("image=pics/menu_options_menu.png", p(_680 )) .. rt("image=pics/menu_options_menu.png", p(_(
710[[options menu button on the very left at the bottom of the screen.681[[‘Options’ menu button on the very left at the bottom of the screen. ]] ..
711Then click the]]682[[Then click the]])
712 )) .. rt("image=pics/menu_exit_game.png", p(_683 )) .. rt("image=pics/menu_exit_game.png", p(_
713[[exit game button.]]684[[‘Exit Game’ button.]]
714 )) .. rt(p(_685 )) .. rt(p(_
715[[Thanks for playing this tutorial. Enjoy Widelands and remember686[[Thanks for playing this tutorial. Enjoy Widelands and remember to visit us at]]
716to visit us at]]
717 )) .. rt("text-align=center",687 )) .. rt("text-align=center",
718 "<p font-size=24 font-decoration=underline>http://www.widelands.org</p>"688 "<p font-size=24 font-decoration=underline>http://www.widelands.org</p>"
719 )689 )
720}690}
721691
722
723
724692
=== modified file 'global/militarysites/barracks.empire/conf'
--- global/militarysites/barracks.empire/conf 2013-06-11 16:37:44 +0000
+++ global/militarysites/barracks.empire/conf 2014-03-05 18:47:45 +0000
@@ -4,6 +4,12 @@
4max_soldiers=14max_soldiers=1
5buildable=no5buildable=no
6prefer_heroes=false6prefer_heroes=false
7occupied_string=
8aggressor_string=_Your Barracks discovered an aggressor.
9attack_string=_Your Barracks is under attack.
10defeated_enemy_string=_The enemy defeated your soldiers at the Barracks
11defeated_you_string=_Your soldiers defeated the enemy at the Barracks
12
713
8[idle]14[idle]
9pics=../../../tribes/empire/barracks/barracks_i_??.png15pics=../../../tribes/empire/barracks/barracks_i_??.png
1016
=== modified file 'global/militarysites/barrier.barbarians/conf'
--- global/militarysites/barrier.barbarians/conf 2013-06-11 16:37:44 +0000
+++ global/militarysites/barrier.barbarians/conf 2014-03-05 18:47:45 +0000
@@ -4,6 +4,12 @@
4conquers=84conquers=8
5buildable=no5buildable=no
6prefer_heroes=true6prefer_heroes=true
7occupied_string=
8aggressor_string=_Your Barrier discovered an aggressor.
9attack_string=_Your Barrier is under attack.
10defeated_enemy_string=_The enemy defeated your soldiers at the Barrier
11defeated_you_string=_Your soldiers defeated the enemy at the Barrier
12
713
8[idle]14[idle]
9pics=../../../tribes/barbarians/barrier/barrier_i_??.png15pics=../../../tribes/barbarians/barrier/barrier_i_??.png
1016
=== modified file 'global/militarysites/barrier.empire/conf'
--- global/militarysites/barrier.empire/conf 2013-06-11 16:37:44 +0000
+++ global/militarysites/barrier.empire/conf 2014-03-05 18:47:45 +0000
@@ -4,6 +4,12 @@
4conquers=84conquers=8
5buildable=no5buildable=no
6prefer_heroes=true6prefer_heroes=true
7occupied_string=
8aggressor_string=_Your Barrier discovered an aggressor.
9attack_string=_Your Barrier is under attack.
10defeated_enemy_string=_The enemy defeated your soldiers at the Barrier
11defeated_you_string=_Your soldiers defeated the enemy at the Barrier
12
713
8[idle]14[idle]
9pics=../../../tribes/empire/barrier/barrier_i_??.png15pics=../../../tribes/empire/barrier/barrier_i_??.png
1016
=== modified file 'global/militarysites/castle.atlanteans/conf'
--- global/militarysites/castle.atlanteans/conf 2013-06-11 16:37:44 +0000
+++ global/militarysites/castle.atlanteans/conf 2014-03-05 18:47:45 +0000
@@ -4,6 +4,12 @@
4conquers=124conquers=12
5buildable=no5buildable=no
6prefer_heroes=true6prefer_heroes=true
7occupied_string=
8aggressor_string=_Your Castle discovered an aggressor.
9attack_string=_Your Castle is under attack.
10defeated_enemy_string=_The enemy defeated your soldiers at the Castle
11defeated_you_string=_Your soldiers defeated the enemy at the Castle
12
713
8[idle]14[idle]
9pics=../../../tribes/atlanteans/castle/castle_i_??.png15pics=../../../tribes/atlanteans/castle/castle_i_??.png
1016
=== modified file 'global/militarysites/castle.empire/conf'
--- global/militarysites/castle.empire/conf 2013-06-11 16:37:44 +0000
+++ global/militarysites/castle.empire/conf 2014-03-05 18:47:45 +0000
@@ -4,6 +4,12 @@
4conquers=124conquers=12
5buildable=no5buildable=no
6prefer_heroes=true6prefer_heroes=true
7occupied_string=
8aggressor_string=_Your Castle discovered an aggressor.
9attack_string=_Your Castle is under attack.
10defeated_enemy_string=_The enemy defeated your soldiers at the Castle
11defeated_you_string=_Your soldiers defeated the enemy at the Castle
12
713
8[idle]14[idle]
9pics=../../../tribes/empire/castle/castle_i_??.png15pics=../../../tribes/empire/castle/castle_i_??.png
1016
=== modified file 'global/militarysites/citadel.barbarians/conf'
--- global/militarysites/citadel.barbarians/conf 2013-06-11 16:37:44 +0000
+++ global/militarysites/citadel.barbarians/conf 2014-03-05 18:47:45 +0000
@@ -4,6 +4,12 @@
4conquers=124conquers=12
5buildable=no5buildable=no
6prefer_heroes=true6prefer_heroes=true
7occupied_string=
8aggressor_string=_Your Citadel discovered an aggressor.
9attack_string=_Your Citadel is under attack.
10defeated_enemy_string=_The enemy defeated your soldiers at the Citadel
11defeated_you_string=_Your soldiers defeated the enemy at the Citadel
12
713
8[idle]14[idle]
9pics=../../../tribes/barbarians/citadel/citadel_i_??.png15pics=../../../tribes/barbarians/citadel/citadel_i_??.png
1016
=== modified file 'global/militarysites/donjon.barbarians/conf'
--- global/militarysites/donjon.barbarians/conf 2013-06-11 16:37:44 +0000
+++ global/militarysites/donjon.barbarians/conf 2014-03-05 18:47:45 +0000
@@ -5,6 +5,12 @@
5vision_range=175vision_range=17
6buildable=no6buildable=no
7prefer_heroes=true7prefer_heroes=true
8occupied_string=
9aggressor_string=_Your Donjon discovered an aggressor.
10attack_string=_Your Donjon is under attack.
11defeated_enemy_string=_The enemy defeated your soldiers at the Donjon
12defeated_you_string=_Your soldiers defeated the enemy at the Donjon
13
814
9[idle]15[idle]
10pics=../../../tribes/barbarians/donjon/donjon_i_??.png16pics=../../../tribes/barbarians/donjon/donjon_i_??.png
1117
=== modified file 'global/militarysites/fortress.barbarians/conf'
--- global/militarysites/fortress.barbarians/conf 2013-06-11 16:37:44 +0000
+++ global/militarysites/fortress.barbarians/conf 2014-03-05 18:47:45 +0000
@@ -4,6 +4,12 @@
4conquers=114conquers=11
5buildable=no5buildable=no
6prefer_heroes=true6prefer_heroes=true
7occupied_string=
8aggressor_string=_Your Fortress discovered an aggressor.
9attack_string=_Your Fortress is under attack.
10defeated_enemy_string=_The enemy defeated your soldiers at the Fortress
11defeated_you_string=_Your soldiers defeated the enemy at the Fortress
12
713
8[idle]14[idle]
9pics=../../../tribes/barbarians/fortress/fortress_i_??.png15pics=../../../tribes/barbarians/fortress/fortress_i_??.png
1016
=== modified file 'global/militarysites/fortress.empire/conf'
--- global/militarysites/fortress.empire/conf 2013-06-11 16:37:44 +0000
+++ global/militarysites/fortress.empire/conf 2014-03-05 18:47:45 +0000
@@ -4,6 +4,12 @@
4conquers=114conquers=11
5buildable=no5buildable=no
6prefer_heroes=true6prefer_heroes=true
7occupied_string=
8aggressor_string=_Your Fortress discovered an aggressor.
9attack_string=_Your Fortress is under attack.
10defeated_enemy_string=_The enemy defeated your soldiers at the Fortress
11defeated_you_string=_Your soldiers defeated the enemy at the Fortress
12
713
8[idle]14[idle]
9pics=../../../tribes/empire/fortress/fortress_i_??.png15pics=../../../tribes/empire/fortress/fortress_i_??.png
1016
=== modified file 'global/militarysites/guardhall.atlanteans/conf'
--- global/militarysites/guardhall.atlanteans/conf 2013-06-11 16:37:44 +0000
+++ global/militarysites/guardhall.atlanteans/conf 2014-03-05 18:47:45 +0000
@@ -4,6 +4,12 @@
4conquers=74conquers=7
5buildable=no5buildable=no
6prefer_heroes=true6prefer_heroes=true
7occupied_string=
8aggressor_string=_Your Guardhall discovered an aggressor.
9attack_string=_Your Guardhall is under attack.
10defeated_enemy_string=_The enemy defeated your soldiers at the Guardhall
11defeated_you_string=_Your soldiers defeated the enemy at the Guardhall
12
713
8[idle]14[idle]
9pics=../../../tribes/atlanteans/guardhall/guardhall_i_??.png15pics=../../../tribes/atlanteans/guardhall/guardhall_i_??.png
1016
=== modified file 'global/militarysites/guardhouse.atlanteans/conf'
--- global/militarysites/guardhouse.atlanteans/conf 2013-06-11 16:37:44 +0000
+++ global/militarysites/guardhouse.atlanteans/conf 2014-03-05 18:47:45 +0000
@@ -4,6 +4,12 @@
4max_soldiers=24max_soldiers=2
5buildable=no5buildable=no
6prefer_heroes=false6prefer_heroes=false
7occupied_string=
8aggressor_string=_Your Guardhouse discovered an aggressor.
9attack_string=_Your Guardhouse is under attack.
10defeated_enemy_string=_The enemy defeated your soldiers at the Guardhouse
11defeated_you_string=_Your soldiers defeated the enemy at the Guardhouse
12
713
8[idle]14[idle]
9pics=../../../tribes/atlanteans/guardhouse/guardhouse_i_??.png15pics=../../../tribes/atlanteans/guardhouse/guardhouse_i_??.png
1016
=== modified file 'global/militarysites/high_tower.atlanteans/conf'
--- global/militarysites/high_tower.atlanteans/conf 2013-06-11 16:37:44 +0000
+++ global/militarysites/high_tower.atlanteans/conf 2014-03-05 18:47:45 +0000
@@ -5,6 +5,12 @@
5vision_range=215vision_range=21
6buildable=no6buildable=no
7prefer_heroes=true7prefer_heroes=true
8occupied_string=
9aggressor_string=_Your High Tower discovered an aggressor.
10attack_string=_Your High Tower is under attack.
11defeated_enemy_string=_The enemy defeated your soldiers at the High Tower
12defeated_you_string=_Your soldiers defeated the enemy at the High Tower
13
814
9[idle]15[idle]
10pics=../../../tribes/atlanteans/high_tower/high_tower_i_??.png16pics=../../../tribes/atlanteans/high_tower/high_tower_i_??.png
1117
=== modified file 'global/militarysites/outpost.empire/conf'
--- global/militarysites/outpost.empire/conf 2013-06-11 16:37:44 +0000
+++ global/militarysites/outpost.empire/conf 2014-03-05 18:47:45 +0000
@@ -4,6 +4,12 @@
4conquers=74conquers=7
5buildable=no5buildable=no
6prefer_heroes=false6prefer_heroes=false
7occupied_string=
8aggressor_string=_Your Outpost discovered an aggressor.
9attack_string=_Your Outpost is under attack.
10defeated_enemy_string=_The enemy defeated your soldiers at the Outpost
11defeated_you_string=_Your soldiers defeated the enemy at the Outpost
12
713
8[idle]14[idle]
9pics=../../../tribes/empire/outpost/outpost_i_??.png15pics=../../../tribes/empire/outpost/outpost_i_??.png
1016
=== modified file 'global/militarysites/sentry.barbarians/conf'
--- global/militarysites/sentry.barbarians/conf 2013-06-11 16:37:44 +0000
+++ global/militarysites/sentry.barbarians/conf 2014-03-05 18:47:45 +0000
@@ -4,6 +4,12 @@
4max_soldiers=24max_soldiers=2
5buildable=no5buildable=no
6prefer_heroes=false6prefer_heroes=false
7occupied_string=
8aggressor_string=_Your Sentry discovered an aggressor.
9attack_string=_Your Sentry is under attack.
10defeated_enemy_string=_The enemy defeated your soldiers at the Sentry
11defeated_you_string=_Your soldiers defeated the enemy at the Sentry
12
713
8[idle]14[idle]
9pics=../../../tribes/barbarians/sentry/sentry_i_??.png15pics=../../../tribes/barbarians/sentry/sentry_i_??.png
1016
=== modified file 'global/militarysites/sentry.empire/conf'
--- global/militarysites/sentry.empire/conf 2013-06-11 16:37:44 +0000
+++ global/militarysites/sentry.empire/conf 2014-03-05 18:47:45 +0000
@@ -4,6 +4,12 @@
4max_soldiers=24max_soldiers=2
5buildable=no5buildable=no
6prefer_heroes=false6prefer_heroes=false
7occupied_string=
8aggressor_string=_Your Sentry discovered an aggressor.
9attack_string=_Your Sentry is under attack.
10defeated_enemy_string=_The enemy defeated your soldiers at the Sentry
11defeated_you_string=_Your soldiers defeated the enemy at the Sentry
12
713
8[idle]14[idle]
9pics=../../../tribes/empire/sentry/sentry_i_??.png15pics=../../../tribes/empire/sentry/sentry_i_??.png
1016
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches

to status/vote changes: