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

Proposed by GunChleoc
Status: Merged
Merged at revision: 7582
Proposed branch: lp:~widelands-dev/widelands/one_tribe
Merge into: lp:widelands
Diff against target: 89243 lines (+37585/-27814)
1408 files modified
.tx/config (+3/-15)
CMakeLists.txt (+0/-1)
campaigns/atl01.wmf/allowed_worker_types (+0/-31)
campaigns/atl01.wmf/scripting/init.lua (+2/-2)
campaigns/atl01.wmf/scripting/mission_thread.lua (+30/-16)
campaigns/atl01.wmf/scripting/starting_conditions.lua (+10/-10)
campaigns/atl01.wmf/scripting/texts.lua (+234/-234)
campaigns/bar01.wmf/scripting/helper_functions.lua (+0/-1)
campaigns/bar01.wmf/scripting/init.lua (+0/-1)
campaigns/bar01.wmf/scripting/mission_thread.lua (+63/-49)
campaigns/bar01.wmf/scripting/secret_village.lua (+58/-58)
campaigns/bar01.wmf/scripting/starting_conditions.lua (+42/-43)
campaigns/bar01.wmf/scripting/texts.lua (+19/-20)
campaigns/bar02.wmf/scripting/mission_thread.lua (+78/-67)
campaigns/bar02.wmf/scripting/starting_conditions.lua (+87/-83)
campaigns/bar02.wmf/scripting/texts.lua (+61/-61)
campaigns/dummy.wmf/allowed_worker_types (+0/-5)
campaigns/emp01.wmf/scripting/mission_thread.lua (+16/-17)
campaigns/emp01.wmf/scripting/starting_conditions.lua (+24/-25)
campaigns/emp01.wmf/scripting/texts.lua (+81/-81)
campaigns/emp02.wmf/scripting/mission_thread.lua (+75/-75)
campaigns/emp02.wmf/scripting/starting_conditions.lua (+60/-61)
campaigns/emp02.wmf/scripting/texts.lua (+77/-77)
campaigns/tutorial01_basic_control.wmf/scripting/helper_functions.lua (+2/-3)
campaigns/tutorial01_basic_control.wmf/scripting/helper_functions_demonstration.lua (+8/-8)
campaigns/tutorial01_basic_control.wmf/scripting/init.lua (+0/-1)
campaigns/tutorial01_basic_control.wmf/scripting/mission_thread.lua (+13/-9)
campaigns/tutorial01_basic_control.wmf/scripting/starting_conditions.lua (+2/-3)
campaigns/tutorial01_basic_control.wmf/scripting/texts.lua (+6/-6)
campaigns/tutorial02_warfare.wmf/scripting/init.lua (+0/-1)
campaigns/tutorial02_warfare.wmf/scripting/mission_thread.lua (+104/-105)
campaigns/tutorial02_warfare.wmf/scripting/starting_conditions.lua (+21/-22)
campaigns/tutorial02_warfare.wmf/scripting/texts.lua (+214/-215)
campaigns/tutorial03_seafaring.wmf/scripting/helper_functions.lua (+0/-1)
campaigns/tutorial03_seafaring.wmf/scripting/init.lua (+0/-1)
campaigns/tutorial03_seafaring.wmf/scripting/mission_thread.lua (+91/-92)
campaigns/tutorial03_seafaring.wmf/scripting/starting_conditions.lua (+102/-103)
campaigns/tutorial03_seafaring.wmf/scripting/texts.lua (+192/-193)
campaigns/tutorial04_economy.wmf/scripting/helper_functions.lua (+0/-1)
campaigns/tutorial04_economy.wmf/scripting/init.lua (+0/-1)
campaigns/tutorial04_economy.wmf/scripting/mission_thread.lua (+156/-156)
campaigns/tutorial04_economy.wmf/scripting/starting_conditions.lua (+97/-98)
campaigns/tutorial04_economy.wmf/scripting/texts.lua (+456/-457)
doc/sphinx/source/introduction.rst (+14/-14)
global/militarysites/barracks.empire/conf (+0/-16)
global/militarysites/barrier.barbarians/conf (+0/-17)
global/militarysites/barrier.empire/conf (+0/-16)
global/militarysites/castle.atlanteans/conf (+0/-16)
global/militarysites/castle.empire/conf (+0/-16)
global/militarysites/citadel.barbarians/conf (+0/-17)
global/militarysites/donjon.barbarians/conf (+0/-18)
global/militarysites/fortress.barbarians/conf (+0/-17)
global/militarysites/fortress.empire/conf (+0/-16)
global/militarysites/guardhall.atlanteans/conf (+0/-16)
global/militarysites/guardhouse.atlanteans/conf (+0/-16)
global/militarysites/high_tower.atlanteans/conf (+0/-17)
global/militarysites/outpost.empire/conf (+0/-16)
global/militarysites/sentry.barbarians/conf (+0/-17)
global/militarysites/sentry.empire/conf (+0/-16)
global/militarysites/small_tower.atlanteans/conf (+0/-17)
global/militarysites/tower.atlanteans/conf (+0/-17)
global/militarysites/tower.empire/conf (+0/-17)
i18n/fonts.lua (+58/-58)
i18n/locales.lua (+365/-365)
maps/Desert Tournament.wmf/allowed_worker_types (+0/-110)
maps/MP Scenarios/Island Hopping.wmf/scripting/first_island.lua (+2/-3)
maps/MP Scenarios/Island Hopping.wmf/scripting/hop_island.lua (+2/-2)
maps/MP Scenarios/Island Hopping.wmf/scripting/multiplayer_init.lua (+35/-35)
maps/MP Scenarios/Island Hopping.wmf/scripting/texts.lua (+0/-4)
maps/MP Scenarios/Smugglers.wmf/scripting/multiplayer_init.lua (+19/-19)
maps/MP Scenarios/Smugglers.wmf/scripting/smuggling.lua (+5/-3)
maps/MP Scenarios/Smugglers.wmf/scripting/texts.lua (+17/-17)
maps/Plateau.wmf/scripting/init.lua (+1/-1)
maps/Plateau.wmf/scripting/initial_conditions.lua (+106/-108)
maps/Plateau.wmf/scripting/texts.lua (+23/-23)
maps/Swamp Monks.wmf/allowed_worker_types (+0/-82)
maps/Together we're strong.wmf/allowed_worker_types (+0/-64)
maps/Trident of Fire.wmf/scripting/initial_conditions.lua (+294/-297)
maps/Trident of Fire.wmf/scripting/map_editing.lua (+179/-180)
maps/Trident of Fire.wmf/scripting/multiplayer_init.lua (+127/-127)
scripting/format_scenario.lua (+4/-5)
scripting/formatting.lua (+38/-0)
scripting/infrastructure.lua (+6/-5)
scripting/lunit.lua (+8/-9)
scripting/messages.lua (+6/-6)
scripting/objective_utils.lua (+0/-4)
scripting/set.lua (+0/-2)
scripting/table.lua (+0/-1)
scripting/ui.lua (+18/-18)
scripting/win_condition_functions.lua (+2/-3)
scripting/win_condition_texts.lua (+0/-1)
scripting/win_conditions/collectors.lua (+50/-49)
scripting/win_conditions/defeat_all.lua (+23/-23)
scripting/win_conditions/endless_game.lua (+16/-16)
scripting/win_conditions/endless_game_fogless.lua (+31/-31)
scripting/win_conditions/init.lua (+7/-7)
scripting/win_conditions/territorial_lord.lua (+194/-194)
scripting/win_conditions/territorial_time.lua (+272/-272)
scripting/win_conditions/wood_gnome.lua (+130/-130)
src/ai/CMakeLists.txt (+3/-3)
src/ai/ai_help_structs.h (+4/-4)
src/ai/ai_hints.cc (+28/-33)
src/ai/ai_hints.h (+13/-7)
src/ai/defaultai.cc (+65/-69)
src/ai/defaultai.h (+1/-1)
src/base/md5.h (+1/-1)
src/economy/economy.cc (+31/-33)
src/economy/economy_data_packet.cc (+40/-44)
src/economy/flag.cc (+1/-1)
src/economy/idleworkersupply.cc (+2/-2)
src/economy/portdock.cc (+1/-2)
src/economy/request.cc (+19/-21)
src/economy/road.cc (+2/-2)
src/economy/ware_instance.cc (+13/-17)
src/economy/ware_instance.h (+3/-1)
src/economy/wares_queue.cc (+1/-1)
src/editor/CMakeLists.txt (+1/-1)
src/editor/editorinteractive.cc (+4/-9)
src/editor/map_generator.cc (+6/-9)
src/editor/tools/editor_place_immovable_tool.cc (+2/-2)
src/editor/ui_menus/categorized_item_selection_menu.h (+6/-6)
src/editor/ui_menus/editor_main_menu_map_options.cc (+0/-1)
src/editor/ui_menus/editor_main_menu_new_map.cc (+0/-1)
src/editor/ui_menus/editor_main_menu_random_map.cc (+1/-2)
src/editor/ui_menus/editor_main_menu_random_map.h (+1/-0)
src/editor/ui_menus/editor_main_menu_save_map.cc (+0/-1)
src/editor/ui_menus/editor_player_menu.cc (+18/-26)
src/editor/ui_menus/editor_player_menu.h (+0/-3)
src/editor/ui_menus/editor_tool_place_bob_options_menu.cc (+4/-8)
src/editor/ui_menus/editor_tool_place_immovable_options_menu.cc (+4/-6)
src/game_io/game_interactive_player_packet.cc (+1/-1)
src/game_io/game_player_info_packet.cc (+5/-4)
src/graphic/CMakeLists.txt (+0/-1)
src/graphic/animation.cc (+64/-153)
src/graphic/animation.h (+6/-16)
src/graphic/diranimations.h (+0/-11)
src/graphic/game_renderer.cc (+1/-1)
src/graphic/gl/dither_program.cc (+3/-3)
src/graphic/gl/terrain_program.cc (+3/-3)
src/graphic/rendertarget.cc (+1/-1)
src/graphic/text/CMakeLists.txt (+1/-0)
src/logic/CMakeLists.txt (+6/-5)
src/logic/bob.cc (+13/-16)
src/logic/bob.h (+9/-9)
src/logic/buildcost.cc (+27/-23)
src/logic/buildcost.h (+6/-2)
src/logic/building.cc (+103/-129)
src/logic/building.h (+16/-25)
src/logic/carrier.h (+6/-12)
src/logic/constructionsite.cc (+9/-20)
src/logic/constructionsite.h (+15/-8)
src/logic/critter.cc (+13/-99)
src/logic/critter.h (+3/-10)
src/logic/description_maintainer.h (+17/-23)
src/logic/dismantlesite.cc (+6/-9)
src/logic/dismantlesite.h (+4/-7)
src/logic/editor_game_base.cc (+93/-144)
src/logic/editor_game_base.h (+21/-23)
src/logic/expedition_bootstrap.cc (+1/-1)
src/logic/findimmovable.h (+1/-1)
src/logic/game.cc (+31/-28)
src/logic/game_settings.h (+1/-1)
src/logic/immovable.cc (+109/-195)
src/logic/immovable.h (+20/-15)
src/logic/immovable_program.h (+2/-12)
src/logic/instances.cc (+93/-26)
src/logic/instances.h (+36/-8)
src/logic/map.cc (+2/-2)
src/logic/message.h (+1/-1)
src/logic/militarysite.cc (+30/-42)
src/logic/militarysite.h (+4/-5)
src/logic/parse_map_object_types.h (+0/-51)
src/logic/partially_finished_building.cc (+4/-4)
src/logic/partially_finished_building.h (+1/-1)
src/logic/player.cc (+80/-70)
src/logic/player.h (+3/-11)
src/logic/playercommand.cc (+16/-25)
src/logic/playersmanager.cc (+1/-1)
src/logic/production_program.cc (+148/-140)
src/logic/production_program.h (+40/-40)
src/logic/productionsite.cc (+125/-88)
src/logic/productionsite.h (+11/-9)
src/logic/save_handler.cc (+0/-1)
src/logic/ship.cc (+36/-40)
src/logic/ship.h (+3/-8)
src/logic/single_player_game_settings_provider.cc (+2/-2)
src/logic/soldier.cc (+67/-139)
src/logic/soldier.h (+10/-11)
src/logic/terrain_affinity.cc (+1/-1)
src/logic/trainingsite.cc (+57/-28)
src/logic/trainingsite.h (+43/-6)
src/logic/tribes/tribe_basic_info.cc (+50/-0)
src/logic/tribes/tribe_basic_info.h (+29/-10)
src/logic/tribes/tribe_descr.cc (+311/-428)
src/logic/tribes/tribe_descr.h (+101/-135)
src/logic/tribes/tribes.cc (+404/-0)
src/logic/tribes/tribes.h (+163/-0)
src/logic/ware_descr.cc (+72/-29)
src/logic/ware_descr.h (+39/-41)
src/logic/warehouse.cc (+153/-132)
src/logic/warehouse.h (+8/-9)
src/logic/widelands.h (+2/-1)
src/logic/worker.cc (+54/-47)
src/logic/worker.h (+4/-2)
src/logic/worker_descr.cc (+99/-108)
src/logic/worker_descr.h (+33/-38)
src/logic/worker_program.cc (+80/-160)
src/logic/worker_program.h (+43/-116)
src/logic/world/map_gen.cc (+3/-4)
src/logic/world/resource_description.cc (+0/-1)
src/logic/world/terrain_description.cc (+2/-3)
src/logic/world/world.cc (+30/-26)
src/logic/world/world.h (+7/-7)
src/map_io/CMakeLists.txt (+4/-2)
src/map_io/map_allowed_building_types_packet.cc (+15/-13)
src/map_io/map_allowed_worker_types_packet.cc (+18/-12)
src/map_io/map_bob_packet.cc (+4/-4)
src/map_io/map_bob_packet.h (+3/-3)
src/map_io/map_building_packet.cc (+5/-5)
src/map_io/map_buildingdata_packet.cc (+34/-45)
src/map_io/map_object_packet.cc (+12/-7)
src/map_io/map_object_packet.h (+4/-2)
src/map_io/map_players_view_packet.cc (+42/-47)
src/map_io/map_resources_packet.cc (+3/-3)
src/map_io/map_resources_packet.h (+2/-2)
src/map_io/map_roaddata_packet.cc (+1/-1)
src/map_io/map_saver.cc (+3/-3)
src/map_io/map_scripting_packet.cc (+0/-1)
src/map_io/map_terrain_packet.cc (+3/-3)
src/map_io/map_terrain_packet.h (+2/-2)
src/map_io/s2map.cc (+19/-18)
src/map_io/tribes_legacy_lookup_table.cc (+277/-0)
src/map_io/tribes_legacy_lookup_table.h (+51/-0)
src/map_io/widelands_map_loader.cc (+10/-8)
src/map_io/world_legacy_lookup_table.cc (+94/-46)
src/map_io/world_legacy_lookup_table.h (+9/-9)
src/network/netclient.cc (+4/-4)
src/network/nethost.cc (+3/-4)
src/network/network_player_settings_backend.cc (+1/-2)
src/profile/profile.cc (+1/-1)
src/scripting/CMakeLists.txt (+0/-1)
src/scripting/lua_bases.cc (+75/-69)
src/scripting/lua_bases.h (+2/-1)
src/scripting/lua_coroutine.cc (+12/-0)
src/scripting/lua_coroutine.h (+4/-1)
src/scripting/lua_game.cc (+49/-33)
src/scripting/lua_game.h (+1/-0)
src/scripting/lua_map.cc (+587/-244)
src/scripting/lua_map.h (+77/-10)
src/scripting/lua_root.cc (+354/-1)
src/scripting/lua_root.h (+37/-0)
src/sound/CMakeLists.txt (+0/-1)
src/sound/sound_handler.cc (+16/-21)
src/sound/sound_handler.h (+2/-2)
src/ui_basic/helpwindow.cc (+5/-2)
src/ui_basic/helpwindow.h (+3/-1)
src/ui_fsmenu/CMakeLists.txt (+1/-0)
src/ui_fsmenu/base.cc (+0/-1)
src/ui_fsmenu/launch_mpg.cc (+8/-4)
src/ui_fsmenu/launch_spg.cc (+0/-1)
src/wlapplication.cc (+1/-1)
src/wui/CMakeLists.txt (+8/-0)
src/wui/building_statistics_menu.cc (+27/-16)
src/wui/buildingwindow.cc (+27/-30)
src/wui/encyclopedia_window.cc (+108/-108)
src/wui/encyclopedia_window.h (+3/-3)
src/wui/fieldaction.cc (+12/-19)
src/wui/game_debug_ui.cc (+4/-4)
src/wui/game_main_menu_save_game.cc (+0/-1)
src/wui/general_statistics_menu.cc (+1/-1)
src/wui/interactive_base.h (+1/-0)
src/wui/interactive_gamebase.h (+2/-1)
src/wui/interactive_player.cc (+1/-1)
src/wui/interactive_player.h (+2/-1)
src/wui/interactive_spectator.cc (+1/-0)
src/wui/interactive_spectator.h (+2/-1)
src/wui/itemwaresdisplay.cc (+2/-3)
src/wui/multiplayersetupgroup.cc (+8/-11)
src/wui/playerdescrgroup.cc (+11/-11)
src/wui/productionsitewindow.cc (+6/-7)
src/wui/soldierlist.cc (+1/-1)
src/wui/transport_ui.cc (+33/-59)
src/wui/ware_statistics_menu.cc (+2/-2)
src/wui/warehousewindow.cc (+8/-11)
src/wui/waresdisplay.cc (+48/-57)
src/wui/waresdisplay.h (+3/-2)
src/wui/watchwindow.cc (+2/-2)
test/maps/expedition.wmf/scripting/init.lua (+62/-61)
test/maps/expedition.wmf/scripting/test_cancel_when_port_space_was_reached_two_ships.lua (+4/-4)
test/maps/expedition.wmf/scripting/test_ship_movement_controls.lua (+112/-112)
test/maps/expedition.wmf/scripting/test_starting_and_immediately_canceling.lua (+1/-1)
test/maps/expedition.wmf/scripting/test_starting_wait_a_while_cancel.lua (+2/-2)
test/maps/lua_persistence.wmf/scripting/test_persistence.lua (+9/-7)
test/maps/lua_testsuite.wmf/scripting/baseimmovables.lua (+23/-22)
test/maps/lua_testsuite.wmf/scripting/cfield.lua (+8/-8)
test/maps/lua_testsuite.wmf/scripting/constructionsite.lua (+4/-4)
test/maps/lua_testsuite.wmf/scripting/cplayer.lua (+6/-6)
test/maps/lua_testsuite.wmf/scripting/cplr_access.lua (+0/-1)
test/maps/lua_testsuite.wmf/scripting/editor.lua (+1/-2)
test/maps/lua_testsuite.wmf/scripting/efield.lua (+8/-8)
test/maps/lua_testsuite.wmf/scripting/egbase.lua (+0/-1)
test/maps/lua_testsuite.wmf/scripting/eplr_access.lua (+0/-2)
test/maps/lua_testsuite.wmf/scripting/flag.lua (+8/-8)
test/maps/lua_testsuite.wmf/scripting/gplayer.lua (+30/-31)
test/maps/lua_testsuite.wmf/scripting/gplr_access.lua (+0/-2)
test/maps/lua_testsuite.wmf/scripting/immovables_descriptions.lua (+167/-137)
test/maps/lua_testsuite.wmf/scripting/init.lua (+1/-0)
test/maps/lua_testsuite.wmf/scripting/map.lua (+0/-2)
test/maps/lua_testsuite.wmf/scripting/math_random.lua (+1/-3)
test/maps/lua_testsuite.wmf/scripting/messages.lua (+0/-1)
test/maps/lua_testsuite.wmf/scripting/militarysite.lua (+2/-2)
test/maps/lua_testsuite.wmf/scripting/objectives.lua (+2/-3)
test/maps/lua_testsuite.wmf/scripting/productionsite.lua (+59/-59)
test/maps/lua_testsuite.wmf/scripting/road.lua (+13/-13)
test/maps/lua_testsuite.wmf/scripting/trainingsite.lua (+32/-32)
test/maps/lua_testsuite.wmf/scripting/tribes_descriptions.lua (+128/-0)
test/maps/lua_testsuite.wmf/scripting/ui.lua (+0/-2)
test/maps/lua_testsuite.wmf/scripting/warehouse.lua (+38/-38)
test/maps/plain.wmf/scripting/init.lua (+2/-1)
test/maps/plain.wmf/scripting/test_geologist_messages_do_not_crash.lua (+3/-3)
test/maps/ship_transportation.wmf/scripting/init.lua (+6/-5)
test/maps/ship_transportation.wmf/scripting/test_rip_farm_with_ware_and_worker_in_transit.lua (+3/-3)
test/maps/ship_transportation.wmf/scripting/test_rip_first_port_with_ware_in_portdock.lua (+1/-1)
test/maps/ship_transportation.wmf/scripting/test_rip_first_port_with_worker_in_portdock.lua (+4/-4)
test/maps/ship_transportation.wmf/scripting/test_rip_portdock_with_worker_and_ware_in_transit.lua (+16/-16)
test/maps/ship_transportation.wmf/scripting/test_rip_ports_with_worker_in_transit.lua (+8/-8)
test/maps/ship_transportation.wmf/scripting/test_rip_second_port_with_ware_in_portdock.lua (+7/-7)
test/maps/ship_transportation.wmf/scripting/test_rip_second_port_with_worker_in_portdock.lua (+8/-8)
test/maps/ship_transportation.wmf/scripting/test_rip_ship_before_picking_up_transporting_ware.lua (+2/-2)
test/maps/ship_transportation.wmf/scripting/test_rip_ship_while_transporting_ware.lua (+2/-2)
tribes/atlanteans.lua (+246/-211)
tribes/atlanteans/armorsmithy/help.lua (+0/-31)
tribes/atlanteans/ashes/conf (+0/-9)
tribes/atlanteans/bakery/help.lua (+0/-32)
tribes/atlanteans/blackroot_farm/help.lua (+0/-31)
tribes/atlanteans/bread_paddle/conf (+0/-7)
tribes/atlanteans/castle/help.lua (+0/-22)
tribes/atlanteans/charcoal_kiln/help.lua (+0/-31)
tribes/atlanteans/coal/conf (+0/-8)
tribes/atlanteans/coalmine/help.lua (+0/-31)
tribes/atlanteans/constructionsite/conf (+0/-15)
tribes/atlanteans/crystalmine/help.lua (+0/-31)
tribes/atlanteans/destroyed_building/conf (+0/-11)
tribes/atlanteans/dismantlesite/conf (+0/-8)
tribes/atlanteans/dungeon/help.lua (+0/-42)
tribes/atlanteans/farm/help.lua (+0/-31)
tribes/atlanteans/fire_tongs/conf (+0/-7)
tribes/atlanteans/fish/conf (+0/-8)
tribes/atlanteans/fish_breeders_house/help.lua (+0/-31)
tribes/atlanteans/fishers_house/help.lua (+0/-32)
tribes/atlanteans/foresters_house/help.lua (+0/-32)
tribes/atlanteans/gold-spinning-mill/help.lua (+0/-31)
tribes/atlanteans/gold/conf (+0/-8)
tribes/atlanteans/goldmine/help.lua (+0/-31)
tribes/atlanteans/goldore/conf (+0/-8)
tribes/atlanteans/guardhall/help.lua (+0/-22)
tribes/atlanteans/guardhouse/help.lua (+0/-22)
tribes/atlanteans/hammer/conf (+0/-8)
tribes/atlanteans/headquarters/help.lua (+0/-23)
tribes/atlanteans/high_tower/help.lua (+0/-22)
tribes/atlanteans/horsefarm/help.lua (+0/-31)
tribes/atlanteans/hunters_house/help.lua (+0/-32)
tribes/atlanteans/iron/conf (+0/-8)
tribes/atlanteans/ironmine/help.lua (+0/-31)
tribes/atlanteans/ironore/conf (+0/-8)
tribes/atlanteans/labyrinth/help.lua (+0/-50)
tribes/atlanteans/log/conf (+0/-9)
tribes/atlanteans/meat/conf (+0/-8)
tribes/atlanteans/mill/help.lua (+0/-32)
tribes/atlanteans/pick/conf (+0/-8)
tribes/atlanteans/port/help.lua (+0/-28)
tribes/atlanteans/quarry/help.lua (+0/-31)
tribes/atlanteans/resi_coal1/conf (+0/-10)
tribes/atlanteans/resi_coal2/conf (+0/-10)
tribes/atlanteans/resi_gold1/conf (+0/-10)
tribes/atlanteans/resi_gold2/conf (+0/-10)
tribes/atlanteans/resi_granite1/conf (+0/-10)
tribes/atlanteans/resi_granite2/conf (+0/-10)
tribes/atlanteans/resi_iron1/conf (+0/-10)
tribes/atlanteans/resi_iron2/conf (+0/-10)
tribes/atlanteans/resi_none/conf (+0/-10)
tribes/atlanteans/resi_water1/conf (+0/-10)
tribes/atlanteans/sawmill/help.lua (+0/-31)
tribes/atlanteans/scouts_house/help.lua (+0/-31)
tribes/atlanteans/scythe/conf (+0/-7)
tribes/atlanteans/shipyard/help.lua (+0/-31)
tribes/atlanteans/shovel/conf (+0/-7)
tribes/atlanteans/small_tower/help.lua (+0/-22)
tribes/atlanteans/smelting_works/help.lua (+0/-31)
tribes/atlanteans/smokery/help.lua (+0/-31)
tribes/atlanteans/spiderfarm/help.lua (+0/-31)
tribes/atlanteans/stone/conf (+0/-8)
tribes/atlanteans/toolsmithy/help.lua (+0/-31)
tribes/atlanteans/tower/help.lua (+0/-22)
tribes/atlanteans/warehouse/help.lua (+0/-21)
tribes/atlanteans/water/conf (+0/-8)
tribes/atlanteans/weaponsmithy/help.lua (+0/-31)
tribes/atlanteans/weaving-mill/help.lua (+0/-31)
tribes/atlanteans/well/help.lua (+0/-32)
tribes/atlanteans/woodcutters_house/help.lua (+0/-31)
tribes/barbarians.lua (+250/-215)
tribes/barbarians/axfactory/help.lua (+0/-36)
tribes/barbarians/bakery/help.lua (+0/-34)
tribes/barbarians/barrier/help.lua (+0/-22)
tribes/barbarians/battlearena/help.lua (+0/-43)
tribes/barbarians/big_inn/help.lua (+0/-31)
tribes/barbarians/brewery/help.lua (+0/-31)
tribes/barbarians/cattlefarm/help.lua (+0/-33)
tribes/barbarians/charcoal_kiln/help.lua (+0/-31)
tribes/barbarians/citadel/help.lua (+0/-22)
tribes/barbarians/coalmine/help.lua (+0/-35)
tribes/barbarians/deep_coalmine/help.lua (+0/-37)
tribes/barbarians/deep_goldmine/help.lua (+0/-35)
tribes/barbarians/deep_oremine/help.lua (+0/-35)
tribes/barbarians/deeper_coalmine/help.lua (+0/-36)
tribes/barbarians/deeper_goldmine/help.lua (+0/-35)
tribes/barbarians/deeper_oremine/help.lua (+0/-35)
tribes/barbarians/donjon/help.lua (+0/-22)
tribes/barbarians/farm/help.lua (+0/-31)
tribes/barbarians/fishers_hut/help.lua (+0/-34)
tribes/barbarians/fortress/help.lua (+0/-22)
tribes/barbarians/gamekeepers_hut/help.lua (+0/-36)
tribes/barbarians/goldmine/help.lua (+0/-34)
tribes/barbarians/granitemine/help.lua (+0/-34)
tribes/barbarians/hardener/help.lua (+0/-31)
tribes/barbarians/headquarters/help.lua (+0/-23)
tribes/barbarians/headquarters_interim/help.lua (+0/-23)
tribes/barbarians/helmsmithy/help.lua (+0/-31)
tribes/barbarians/hunters_hut/help.lua (+0/-34)
tribes/barbarians/inn/help.lua (+0/-31)
tribes/barbarians/lime_kiln/help.lua (+0/-34)
tribes/barbarians/lumberjacks_hut/help.lua (+0/-33)
tribes/barbarians/metalworks/help.lua (+0/-34)
tribes/barbarians/micro-brewery/help.lua (+0/-33)
tribes/barbarians/oremine/help.lua (+0/-34)
tribes/barbarians/port/help.lua (+0/-28)
tribes/barbarians/quarry/help.lua (+0/-33)
tribes/barbarians/rangers_hut/help.lua (+0/-35)
tribes/barbarians/reed_yard/help.lua (+0/-34)
tribes/barbarians/scouts_hut/help.lua (+0/-31)
tribes/barbarians/sentry/help.lua (+0/-22)
tribes/barbarians/shipyard/help.lua (+0/-31)
tribes/barbarians/smelting_works/help.lua (+0/-31)
tribes/barbarians/tavern/help.lua (+0/-31)
tribes/barbarians/trainingcamp/help.lua (+0/-51)
tribes/barbarians/warehouse/help.lua (+0/-21)
tribes/barbarians/warmill/help.lua (+0/-36)
tribes/barbarians/weaving-mill/help.lua (+0/-31)
tribes/barbarians/well/help.lua (+0/-34)
tribes/buildings/militarysites/atlanteans/castle/helptexts.lua (+27/-0)
tribes/buildings/militarysites/atlanteans/castle/init.lua (+57/-33)
tribes/buildings/militarysites/atlanteans/guardhall/helptexts.lua (+27/-0)
tribes/buildings/militarysites/atlanteans/guardhall/init.lua (+52/-28)
tribes/buildings/militarysites/atlanteans/guardhouse/helptexts.lua (+27/-0)
tribes/buildings/militarysites/atlanteans/guardhouse/init.lua (+51/-26)
tribes/buildings/militarysites/atlanteans/tower/helptexts.lua (+27/-0)
tribes/buildings/militarysites/atlanteans/tower/init.lua (+56/-32)
tribes/buildings/militarysites/atlanteans/tower_high/helptexts.lua (+27/-0)
tribes/buildings/militarysites/atlanteans/tower_high/init.lua (+48/-25)
tribes/buildings/militarysites/atlanteans/tower_small/helptexts.lua (+27/-0)
tribes/buildings/militarysites/atlanteans/tower_small/init.lua (+51/-27)
tribes/buildings/militarysites/barbarians/barrier/helptexts.lua (+27/-0)
tribes/buildings/militarysites/barbarians/barrier/init.lua (+58/-32)
tribes/buildings/militarysites/barbarians/citadel/helptexts.lua (+27/-0)
tribes/buildings/militarysites/barbarians/citadel/init.lua (+62/-37)
tribes/buildings/militarysites/barbarians/fortress/helptexts.lua (+27/-0)
tribes/buildings/militarysites/barbarians/fortress/init.lua (+68/-42)
tribes/buildings/militarysites/barbarians/sentry/helptexts.lua (+27/-0)
tribes/buildings/militarysites/barbarians/sentry/init.lua (+60/-34)
tribes/buildings/militarysites/barbarians/tower/helptexts.lua (+27/-0)
tribes/buildings/militarysites/barbarians/tower/init.lua (+65/-39)
tribes/buildings/militarysites/empire/barrier/helptexts.lua (+27/-0)
tribes/buildings/militarysites/empire/barrier/init.lua (+62/-39)
tribes/buildings/militarysites/empire/blockhouse/helptexts.lua (+27/-0)
tribes/buildings/militarysites/empire/blockhouse/init.lua (+47/-22)
tribes/buildings/militarysites/empire/castle/helptexts.lua (+27/-0)
tribes/buildings/militarysites/empire/castle/init.lua (+51/-28)
tribes/buildings/militarysites/empire/fortress/helptexts.lua (+27/-0)
tribes/buildings/militarysites/empire/fortress/init.lua (+64/-39)
tribes/buildings/militarysites/empire/outpost/helptexts.lua (+27/-0)
tribes/buildings/militarysites/empire/outpost/init.lua (+53/-29)
tribes/buildings/militarysites/empire/sentry/helptexts.lua (+27/-0)
tribes/buildings/militarysites/empire/sentry/init.lua (+59/-36)
tribes/buildings/militarysites/empire/tower/helptexts.lua (+27/-0)
tribes/buildings/militarysites/empire/tower/init.lua (+59/-34)
tribes/buildings/partially_finished/constructionsite/helptexts.lua (+27/-0)
tribes/buildings/partially_finished/constructionsite/init.lua (+28/-15)
tribes/buildings/partially_finished/dismantlesite/helptexts.lua (+27/-0)
tribes/buildings/partially_finished/dismantlesite/init.lua (+21/-8)
tribes/buildings/productionsites/atlanteans/armorsmithy/helptexts.lua (+27/-0)
tribes/buildings/productionsites/atlanteans/armorsmithy/init.lua (+88/-60)
tribes/buildings/productionsites/atlanteans/bakery/helptexts.lua (+27/-0)
tribes/buildings/productionsites/atlanteans/bakery/init.lua (+67/-43)
tribes/buildings/productionsites/atlanteans/blackroot_farm/helptexts.lua (+27/-0)
tribes/buildings/productionsites/atlanteans/blackroot_farm/init.lua (+77/-50)
tribes/buildings/productionsites/atlanteans/charcoal_kiln/helptexts.lua (+27/-0)
tribes/buildings/productionsites/atlanteans/charcoal_kiln/init.lua (+64/-39)
tribes/buildings/productionsites/atlanteans/coalmine/helptexts.lua (+27/-0)
tribes/buildings/productionsites/atlanteans/coalmine/init.lua (+83/-57)
tribes/buildings/productionsites/atlanteans/crystalmine/helptexts.lua (+27/-0)
tribes/buildings/productionsites/atlanteans/crystalmine/init.lua (+134/-102)
tribes/buildings/productionsites/atlanteans/farm/helptexts.lua (+27/-0)
tribes/buildings/productionsites/atlanteans/farm/init.lua (+81/-53)
tribes/buildings/productionsites/atlanteans/fishbreeders_house/helptexts.lua (+27/-0)
tribes/buildings/productionsites/atlanteans/fishbreeders_house/init.lua (+50/-30)
tribes/buildings/productionsites/atlanteans/fishers_house/helptexts.lua (+27/-0)
tribes/buildings/productionsites/atlanteans/fishers_house/init.lua (+56/-32)
tribes/buildings/productionsites/atlanteans/foresters_house/helptexts.lua (+27/-0)
tribes/buildings/productionsites/atlanteans/foresters_house/init.lua (+50/-30)
tribes/buildings/productionsites/atlanteans/gold_spinning_mill/helptexts.lua (+27/-0)
tribes/buildings/productionsites/atlanteans/gold_spinning_mill/init.lua (+63/-39)
tribes/buildings/productionsites/atlanteans/goldmine/helptexts.lua (+27/-0)
tribes/buildings/productionsites/atlanteans/goldmine/init.lua (+83/-57)
tribes/buildings/productionsites/atlanteans/horsefarm/helptexts.lua (+27/-0)
tribes/buildings/productionsites/atlanteans/horsefarm/init.lua (+66/-41)
tribes/buildings/productionsites/atlanteans/hunters_house/helptexts.lua (+27/-0)
tribes/buildings/productionsites/atlanteans/hunters_house/init.lua (+58/-34)
tribes/buildings/productionsites/atlanteans/ironmine/helptexts.lua (+27/-0)
tribes/buildings/productionsites/atlanteans/ironmine/init.lua (+83/-57)
tribes/buildings/productionsites/atlanteans/mill/helptexts.lua (+27/-0)
tribes/buildings/productionsites/atlanteans/mill/init.lua (+89/-61)
tribes/buildings/productionsites/atlanteans/quarry/helptexts.lua (+27/-0)
tribes/buildings/productionsites/atlanteans/quarry/init.lua (+68/-39)
tribes/buildings/productionsites/atlanteans/sawmill/helptexts.lua (+27/-0)
tribes/buildings/productionsites/atlanteans/sawmill/init.lua (+65/-41)
tribes/buildings/productionsites/atlanteans/scouts_house/helptexts.lua (+27/-0)
tribes/buildings/productionsites/atlanteans/scouts_house/init.lua (+58/-37)
tribes/buildings/productionsites/atlanteans/shipyard/helptexts.lua (+27/-0)
tribes/buildings/productionsites/atlanteans/shipyard/init.lua (+85/-58)
tribes/buildings/productionsites/atlanteans/smelting_works/helptexts.lua (+27/-0)
tribes/buildings/productionsites/atlanteans/smelting_works/init.lua (+87/-59)
tribes/buildings/productionsites/atlanteans/smokery/helptexts.lua (+27/-0)
tribes/buildings/productionsites/atlanteans/smokery/init.lua (+91/-63)
tribes/buildings/productionsites/atlanteans/spiderfarm/helptexts.lua (+27/-0)
tribes/buildings/productionsites/atlanteans/spiderfarm/init.lua (+65/-41)
tribes/buildings/productionsites/atlanteans/toolsmithy/helptexts.lua (+27/-0)
tribes/buildings/productionsites/atlanteans/toolsmithy/init.lua (+218/-170)
tribes/buildings/productionsites/atlanteans/weaponsmithy/helptexts.lua (+27/-0)
tribes/buildings/productionsites/atlanteans/weaponsmithy/init.lua (+139/-105)
tribes/buildings/productionsites/atlanteans/weaving_mill/helptexts.lua (+27/-0)
tribes/buildings/productionsites/atlanteans/weaving_mill/init.lua (+100/-71)
tribes/buildings/productionsites/atlanteans/well/helptexts.lua (+27/-0)
tribes/buildings/productionsites/atlanteans/well/init.lua (+66/-42)
tribes/buildings/productionsites/atlanteans/woodcutters_house/helptexts.lua (+27/-0)
tribes/buildings/productionsites/atlanteans/woodcutters_house/init.lua (+58/-35)
tribes/buildings/productionsites/barbarians/ax_workshop/helptexts.lua (+24/-0)
tribes/buildings/productionsites/barbarians/ax_workshop/init.lua (+117/-88)
tribes/buildings/productionsites/barbarians/bakery/helptexts.lua (+27/-0)
tribes/buildings/productionsites/barbarians/bakery/init.lua (+73/-48)
tribes/buildings/productionsites/barbarians/big_inn/helptexts.lua (+27/-0)
tribes/buildings/productionsites/barbarians/big_inn/init.lua (+102/-73)
tribes/buildings/productionsites/barbarians/brewery/helptexts.lua (+27/-0)
tribes/buildings/productionsites/barbarians/brewery/init.lua (+65/-40)
tribes/buildings/productionsites/barbarians/cattlefarm/helptexts.lua (+27/-0)
tribes/buildings/productionsites/barbarians/cattlefarm/init.lua (+65/-41)
tribes/buildings/productionsites/barbarians/charcoal_kiln/helptexts.lua (+27/-0)
tribes/buildings/productionsites/barbarians/charcoal_kiln/init.lua (+68/-47)
tribes/buildings/productionsites/barbarians/coalmine/helptexts.lua (+25/-0)
tribes/buildings/productionsites/barbarians/coalmine/init.lua (+81/-54)
tribes/buildings/productionsites/barbarians/coalmine_deep/helptexts.lua (+25/-0)
tribes/buildings/productionsites/barbarians/coalmine_deep/init.lua (+84/-59)
tribes/buildings/productionsites/barbarians/coalmine_deeper/helptexts.lua (+25/-0)
tribes/buildings/productionsites/barbarians/coalmine_deeper/init.lua (+83/-58)
tribes/buildings/productionsites/barbarians/farm/helptexts.lua (+27/-0)
tribes/buildings/productionsites/barbarians/farm/init.lua (+93/-64)
tribes/buildings/productionsites/barbarians/fishers_hut/helptexts.lua (+24/-0)
tribes/buildings/productionsites/barbarians/fishers_hut/init.lua (+64/-39)
tribes/buildings/productionsites/barbarians/gamekeepers_hut/helptexts.lua (+25/-0)
tribes/buildings/productionsites/barbarians/gamekeepers_hut/init.lua (+58/-36)
tribes/buildings/productionsites/barbarians/goldmine/helptexts.lua (+24/-0)
tribes/buildings/productionsites/barbarians/goldmine/init.lua (+81/-54)
tribes/buildings/productionsites/barbarians/goldmine_deep/helptexts.lua (+24/-0)
tribes/buildings/productionsites/barbarians/goldmine_deep/init.lua (+84/-59)
tribes/buildings/productionsites/barbarians/goldmine_deeper/helptexts.lua (+24/-0)
tribes/buildings/productionsites/barbarians/goldmine_deeper/init.lua (+83/-58)
tribes/buildings/productionsites/barbarians/granitemine/helptexts.lua (+27/-0)
tribes/buildings/productionsites/barbarians/granitemine/init.lua (+79/-52)
tribes/buildings/productionsites/barbarians/helmsmithy/helptexts.lua (+27/-0)
tribes/buildings/productionsites/barbarians/helmsmithy/init.lua (+114/-82)
tribes/buildings/productionsites/barbarians/hunters_hut/helptexts.lua (+24/-0)
tribes/buildings/productionsites/barbarians/hunters_hut/init.lua (+68/-42)
tribes/buildings/productionsites/barbarians/inn/helptexts.lua (+27/-0)
tribes/buildings/productionsites/barbarians/inn/init.lua (+91/-63)
tribes/buildings/productionsites/barbarians/ironmine/helptexts.lua (+24/-0)
tribes/buildings/productionsites/barbarians/ironmine/init.lua (+81/-54)
tribes/buildings/productionsites/barbarians/ironmine_deep/helptexts.lua (+24/-0)
tribes/buildings/productionsites/barbarians/ironmine_deep/init.lua (+84/-60)
tribes/buildings/productionsites/barbarians/ironmine_deeper/helptexts.lua (+24/-0)
tribes/buildings/productionsites/barbarians/ironmine_deeper/init.lua (+86/-61)
tribes/buildings/productionsites/barbarians/lime_kiln/helptexts.lua (+24/-0)
tribes/buildings/productionsites/barbarians/lime_kiln/init.lua (+65/-41)
tribes/buildings/productionsites/barbarians/lumberjacks_hut/helptexts.lua (+24/-0)
tribes/buildings/productionsites/barbarians/lumberjacks_hut/init.lua (+66/-41)
tribes/buildings/productionsites/barbarians/metal_workshop/helptexts.lua (+24/-0)
tribes/buildings/productionsites/barbarians/metal_workshop/init.lua (+215/-169)
tribes/buildings/productionsites/barbarians/micro_brewery/helptexts.lua (+24/-0)
tribes/buildings/productionsites/barbarians/micro_brewery/init.lua (+67/-43)
tribes/buildings/productionsites/barbarians/quarry/helptexts.lua (+27/-0)
tribes/buildings/productionsites/barbarians/quarry/init.lua (+77/-45)
tribes/buildings/productionsites/barbarians/rangers_hut/helptexts.lua (+25/-0)
tribes/buildings/productionsites/barbarians/rangers_hut/init.lua (+57/-35)
tribes/buildings/productionsites/barbarians/reed_yard/helptexts.lua (+24/-0)
tribes/buildings/productionsites/barbarians/reed_yard/init.lua (+75/-48)
tribes/buildings/productionsites/barbarians/scouts_hut/helptexts.lua (+27/-0)
tribes/buildings/productionsites/barbarians/scouts_hut/init.lua (+60/-39)
tribes/buildings/productionsites/barbarians/shipyard/helptexts.lua (+27/-0)
tribes/buildings/productionsites/barbarians/shipyard/init.lua (+84/-57)
tribes/buildings/productionsites/barbarians/smelting_works/helptexts.lua (+27/-0)
tribes/buildings/productionsites/barbarians/smelting_works/init.lua (+90/-62)
tribes/buildings/productionsites/barbarians/tavern/helptexts.lua (+27/-0)
tribes/buildings/productionsites/barbarians/tavern/init.lua (+73/-48)
tribes/buildings/productionsites/barbarians/warmill/helptexts.lua (+30/-0)
tribes/buildings/productionsites/barbarians/warmill/init.lua (+163/-128)
tribes/buildings/productionsites/barbarians/weaving_mill/helptexts.lua (+27/-0)
tribes/buildings/productionsites/barbarians/weaving_mill/init.lua (+68/-43)
tribes/buildings/productionsites/barbarians/well/helptexts.lua (+24/-0)
tribes/buildings/productionsites/barbarians/well/init.lua (+69/-43)
tribes/buildings/productionsites/barbarians/wood_hardener/helptexts.lua (+27/-0)
tribes/buildings/productionsites/barbarians/wood_hardener/init.lua (+73/-47)
tribes/buildings/productionsites/empire/armorsmithy/helptexts.lua (+27/-0)
tribes/buildings/productionsites/empire/armorsmithy/init.lua (+127/-93)
tribes/buildings/productionsites/empire/bakery/helptexts.lua (+27/-0)
tribes/buildings/productionsites/empire/bakery/init.lua (+71/-46)
tribes/buildings/productionsites/empire/brewery/helptexts.lua (+27/-0)
tribes/buildings/productionsites/empire/brewery/init.lua (+65/-41)
tribes/buildings/productionsites/empire/charcoal_kiln/helptexts.lua (+27/-0)
tribes/buildings/productionsites/empire/charcoal_kiln/init.lua (+64/-40)
tribes/buildings/productionsites/empire/coalmine/helptexts.lua (+27/-0)
tribes/buildings/productionsites/empire/coalmine/init.lua (+81/-55)
tribes/buildings/productionsites/empire/coalmine_deep/helptexts.lua (+27/-0)
tribes/buildings/productionsites/empire/coalmine_deep/init.lua (+79/-55)
tribes/buildings/productionsites/empire/donkeyfarm/helptexts.lua (+27/-0)
tribes/buildings/productionsites/empire/donkeyfarm/init.lua (+65/-41)
tribes/buildings/productionsites/empire/farm/helptexts.lua (+27/-0)
tribes/buildings/productionsites/empire/farm/init.lua (+79/-52)
tribes/buildings/productionsites/empire/fishers_house/helptexts.lua (+27/-0)
tribes/buildings/productionsites/empire/fishers_house/init.lua (+56/-33)
tribes/buildings/productionsites/empire/foresters_house/helptexts.lua (+27/-0)
tribes/buildings/productionsites/empire/foresters_house/init.lua (+50/-30)
tribes/buildings/productionsites/empire/goldmine/helptexts.lua (+27/-0)
tribes/buildings/productionsites/empire/goldmine/init.lua (+81/-55)
tribes/buildings/productionsites/empire/goldmine_deep/helptexts.lua (+27/-0)
tribes/buildings/productionsites/empire/goldmine_deep/init.lua (+79/-55)
tribes/buildings/productionsites/empire/hunters_house/helptexts.lua (+27/-0)
tribes/buildings/productionsites/empire/hunters_house/init.lua (+56/-33)
tribes/buildings/productionsites/empire/inn/helptexts.lua (+27/-0)
tribes/buildings/productionsites/empire/inn/init.lua (+87/-57)
tribes/buildings/productionsites/empire/ironmine/helptexts.lua (+27/-0)
tribes/buildings/productionsites/empire/ironmine/init.lua (+81/-55)
tribes/buildings/productionsites/empire/ironmine_deep/helptexts.lua (+27/-0)
tribes/buildings/productionsites/empire/ironmine_deep/init.lua (+79/-59)
tribes/buildings/productionsites/empire/lumberjacks_house/helptexts.lua (+27/-0)
tribes/buildings/productionsites/empire/lumberjacks_house/init.lua (+58/-35)
tribes/buildings/productionsites/empire/marblemine/helptexts.lua (+27/-0)
tribes/buildings/productionsites/empire/marblemine/init.lua (+106/-76)
tribes/buildings/productionsites/empire/marblemine_deep/helptexts.lua (+27/-0)
tribes/buildings/productionsites/empire/marblemine_deep/init.lua (+80/-56)
tribes/buildings/productionsites/empire/mill/helptexts.lua (+27/-0)
tribes/buildings/productionsites/empire/mill/init.lua (+66/-42)
tribes/buildings/productionsites/empire/piggery/helptexts.lua (+27/-0)
tribes/buildings/productionsites/empire/piggery/init.lua (+67/-42)
tribes/buildings/productionsites/empire/quarry/helptexts.lua (+27/-0)
tribes/buildings/productionsites/empire/quarry/init.lua (+83/-52)
tribes/buildings/productionsites/empire/sawmill/helptexts.lua (+27/-0)
tribes/buildings/productionsites/empire/sawmill/init.lua (+65/-41)
tribes/buildings/productionsites/empire/scouts_house/helptexts.lua (+27/-0)
tribes/buildings/productionsites/empire/scouts_house/init.lua (+55/-34)
tribes/buildings/productionsites/empire/sheepfarm/helptexts.lua (+27/-0)
tribes/buildings/productionsites/empire/sheepfarm/init.lua (+65/-42)
tribes/buildings/productionsites/empire/shipyard/helptexts.lua (+27/-0)
tribes/buildings/productionsites/empire/shipyard/init.lua (+84/-57)
tribes/buildings/productionsites/empire/smelting_works/helptexts.lua (+27/-0)
tribes/buildings/productionsites/empire/smelting_works/init.lua (+93/-64)
tribes/buildings/productionsites/empire/stonemasons_house/helptexts.lua (+27/-0)
tribes/buildings/productionsites/empire/stonemasons_house/init.lua (+66/-42)
tribes/buildings/productionsites/empire/tavern/helptexts.lua (+27/-0)
tribes/buildings/productionsites/empire/tavern/init.lua (+68/-44)
tribes/buildings/productionsites/empire/toolsmithy/helptexts.lua (+27/-0)
tribes/buildings/productionsites/empire/toolsmithy/init.lua (+229/-181)
tribes/buildings/productionsites/empire/vineyard/helptexts.lua (+27/-0)
tribes/buildings/productionsites/empire/vineyard/init.lua (+76/-49)
tribes/buildings/productionsites/empire/weaponsmithy/helptexts.lua (+27/-0)
tribes/buildings/productionsites/empire/weaponsmithy/init.lua (+145/-110)
tribes/buildings/productionsites/empire/weaving_mill/helptexts.lua (+27/-0)
tribes/buildings/productionsites/empire/weaving_mill/init.lua (+74/-48)
tribes/buildings/productionsites/empire/well/helptexts.lua (+27/-0)
tribes/buildings/productionsites/empire/well/init.lua (+66/-42)
tribes/buildings/productionsites/empire/winery/helptexts.lua (+27/-0)
tribes/buildings/productionsites/empire/winery/init.lua (+66/-42)
tribes/buildings/trainingsites/atlanteans/dungeon/helptexts.lua (+30/-0)
tribes/buildings/trainingsites/atlanteans/dungeon/init.lua (+131/-82)
tribes/buildings/trainingsites/atlanteans/labyrinth/helptexts.lua (+30/-0)
tribes/buildings/trainingsites/atlanteans/labyrinth/init.lua (+157/-103)
tribes/buildings/trainingsites/barbarians/battlearena/helptexts.lua (+27/-0)
tribes/buildings/trainingsites/barbarians/battlearena/init.lua (+119/-79)
tribes/buildings/trainingsites/barbarians/trainingcamp/helptexts.lua (+29/-0)
tribes/buildings/trainingsites/barbarians/trainingcamp/init.lua (+202/-137)
tribes/buildings/trainingsites/empire/arena/helptexts.lua (+30/-0)
tribes/buildings/trainingsites/empire/arena/init.lua (+93/-59)
tribes/buildings/trainingsites/empire/colosseum/helptexts.lua (+30/-0)
tribes/buildings/trainingsites/empire/colosseum/init.lua (+97/-65)
tribes/buildings/trainingsites/empire/trainingcamp/helptexts.lua (+30/-0)
tribes/buildings/trainingsites/empire/trainingcamp/init.lua (+193/-130)
tribes/buildings/warehouses/atlanteans/headquarters/helptexts.lua (+29/-0)
tribes/buildings/warehouses/atlanteans/headquarters/init.lua (+25/-9)
tribes/buildings/warehouses/atlanteans/port/helptexts.lua (+27/-0)
tribes/buildings/warehouses/atlanteans/port/init.lua (+50/-32)
tribes/buildings/warehouses/atlanteans/warehouse/helptexts.lua (+27/-0)
tribes/buildings/warehouses/atlanteans/warehouse/init.lua (+37/-19)
tribes/buildings/warehouses/barbarians/headquarters/helptexts.lua (+30/-0)
tribes/buildings/warehouses/barbarians/headquarters/init.lua (+29/-14)
tribes/buildings/warehouses/barbarians/headquarters_interim/helptexts.lua (+30/-0)
tribes/buildings/warehouses/barbarians/headquarters_interim/init.lua (+27/-12)
tribes/buildings/warehouses/barbarians/port/helptexts.lua (+27/-0)
tribes/buildings/warehouses/barbarians/port/init.lua (+52/-34)
tribes/buildings/warehouses/barbarians/warehouse/helptexts.lua (+27/-0)
tribes/buildings/warehouses/barbarians/warehouse/init.lua (+43/-23)
tribes/buildings/warehouses/empire/headquarters/helptexts.lua (+30/-0)
tribes/buildings/warehouses/empire/headquarters/init.lua (+25/-9)
tribes/buildings/warehouses/empire/headquarters_shipwreck/helptexts.lua (+30/-0)
tribes/buildings/warehouses/empire/headquarters_shipwreck/init.lua (+25/-9)
tribes/buildings/warehouses/empire/port/helptexts.lua (+27/-0)
tribes/buildings/warehouses/empire/port/init.lua (+51/-33)
tribes/buildings/warehouses/empire/warehouse/helptexts.lua (+27/-0)
tribes/buildings/warehouses/empire/warehouse/init.lua (+37/-19)
tribes/empire.lua (+259/-222)
tribes/empire/arena/help.lua (+0/-40)
tribes/empire/armorsmithy/help.lua (+0/-31)
tribes/empire/ashes/conf (+0/-9)
tribes/empire/ax/conf (+0/-8)
tribes/empire/bakery/help.lua (+0/-32)
tribes/empire/barracks/help.lua (+0/-22)
tribes/empire/barrier/help.lua (+0/-26)
tribes/empire/beer/conf (+0/-8)
tribes/empire/bread_paddle/conf (+0/-7)
tribes/empire/brewery/help.lua (+0/-31)
tribes/empire/castle/help.lua (+0/-22)
tribes/empire/charcoal_kiln/help.lua (+0/-31)
tribes/empire/cloth/conf (+0/-8)
tribes/empire/coal/conf (+0/-8)
tribes/empire/coalmine/help.lua (+0/-32)
tribes/empire/colosseum/help.lua (+0/-40)
tribes/empire/constructionsite/conf (+0/-15)
tribes/empire/deep_coalmine/help.lua (+0/-32)
tribes/empire/deep_goldmine/help.lua (+0/-31)
tribes/empire/deep_marblemine/help.lua (+0/-31)
tribes/empire/deep_oremine/help.lua (+0/-31)
tribes/empire/destroyed_building/conf (+0/-11)
tribes/empire/dismantlesite/conf (+0/-8)
tribes/empire/donkeyfarm/help.lua (+0/-31)
tribes/empire/farm/help.lua (+0/-31)
tribes/empire/field0/conf (+0/-11)
tribes/empire/field0s/conf (+0/-11)
tribes/empire/field0t/conf (+0/-11)
tribes/empire/field1/conf (+0/-15)
tribes/empire/field2/conf (+0/-9)
tribes/empire/fire_tongs/conf (+0/-7)
tribes/empire/fish/conf (+0/-8)
tribes/empire/fishers_house/help.lua (+0/-32)
tribes/empire/fishing_rod/conf (+0/-7)
tribes/empire/foresters_house/help.lua (+0/-32)
tribes/empire/fortress/help.lua (+0/-22)
tribes/empire/gold/conf (+0/-8)
tribes/empire/goldmine/help.lua (+0/-32)
tribes/empire/goldore/conf (+0/-8)
tribes/empire/hammer/conf (+0/-8)
tribes/empire/headquarters/help.lua (+0/-23)
tribes/empire/headquarters_shipwreck/help.lua (+0/-23)
tribes/empire/hunters_house/help.lua (+0/-32)
tribes/empire/hunting_spear/conf (+0/-7)
tribes/empire/inn/help.lua (+0/-31)
tribes/empire/iron/conf (+0/-8)
tribes/empire/ironore/conf (+0/-8)
tribes/empire/kitchen_tools/conf (+0/-7)
tribes/empire/log/conf (+0/-8)
tribes/empire/lumberjacks_house/help.lua (+0/-31)
tribes/empire/marblemine/help.lua (+0/-31)
tribes/empire/meal/conf (+0/-8)
tribes/empire/meat/conf (+0/-9)
tribes/empire/mill/help.lua (+0/-32)
tribes/empire/oremine/help.lua (+0/-32)
tribes/empire/outpost/help.lua (+0/-22)
tribes/empire/pick/conf (+0/-8)
tribes/empire/piggery/help.lua (+0/-31)
tribes/empire/port/help.lua (+0/-28)
tribes/empire/quarry/help.lua (+0/-31)
tribes/empire/ration/conf (+0/-8)
tribes/empire/resi_coal1/conf (+0/-10)
tribes/empire/resi_coal2/conf (+0/-10)
tribes/empire/resi_gold1/conf (+0/-10)
tribes/empire/resi_gold2/conf (+0/-10)
tribes/empire/resi_granite1/conf (+0/-10)
tribes/empire/resi_granite2/conf (+0/-10)
tribes/empire/resi_iron1/conf (+0/-10)
tribes/empire/resi_iron2/conf (+0/-10)
tribes/empire/resi_none/conf (+0/-10)
tribes/empire/resi_water1/conf (+0/-10)
tribes/empire/saw/conf (+0/-7)
tribes/empire/sawmill/help.lua (+0/-31)
tribes/empire/scouts_house/help.lua (+0/-31)
tribes/empire/scythe/conf (+0/-7)
tribes/empire/sentry/help.lua (+0/-25)
tribes/empire/sheepfarm/help.lua (+0/-31)
tribes/empire/shipyard/help.lua (+0/-31)
tribes/empire/shovel/conf (+0/-7)
tribes/empire/smelting_works/help.lua (+0/-31)
tribes/empire/stone/conf (+0/-10)
tribes/empire/stonemasons_house/help.lua (+0/-31)
tribes/empire/tavern/help.lua (+0/-31)
tribes/empire/toolsmithy/help.lua (+0/-31)
tribes/empire/tower/help.lua (+0/-22)
tribes/empire/trainingcamp/help.lua (+0/-48)
tribes/empire/vineyard/help.lua (+0/-31)
tribes/empire/warehouse/help.lua (+0/-21)
tribes/empire/water/conf (+0/-8)
tribes/empire/weaponsmithy/help.lua (+0/-31)
tribes/empire/weaving-mill/help.lua (+0/-31)
tribes/empire/well/help.lua (+0/-32)
tribes/empire/wheat/conf (+0/-8)
tribes/empire/winery/help.lua (+0/-31)
tribes/empire/wood/conf (+0/-8)
tribes/immovables/ashes/helptexts.lua (+15/-0)
tribes/immovables/ashes/init.lua (+22/-8)
tribes/immovables/blackrootfield_harvested/helptexts.lua (+15/-0)
tribes/immovables/blackrootfield_harvested/init.lua (+23/-9)
tribes/immovables/blackrootfield_medium/helptexts.lua (+15/-0)
tribes/immovables/blackrootfield_medium/init.lua (+24/-11)
tribes/immovables/blackrootfield_ripe/helptexts.lua (+15/-0)
tribes/immovables/blackrootfield_ripe/init.lua (+27/-15)
tribes/immovables/blackrootfield_small/helptexts.lua (+15/-0)
tribes/immovables/blackrootfield_small/init.lua (+24/-11)
tribes/immovables/blackrootfield_tiny/helptexts.lua (+15/-0)
tribes/immovables/blackrootfield_tiny/init.lua (+24/-11)
tribes/immovables/cornfield_harvested/helptexts.lua (+15/-0)
tribes/immovables/cornfield_harvested/init.lua (+23/-9)
tribes/immovables/cornfield_medium/helptexts.lua (+15/-0)
tribes/immovables/cornfield_medium/init.lua (+24/-11)
tribes/immovables/cornfield_ripe/helptexts.lua (+15/-0)
tribes/immovables/cornfield_ripe/init.lua (+27/-15)
tribes/immovables/cornfield_small/helptexts.lua (+15/-0)
tribes/immovables/cornfield_small/init.lua (+24/-11)
tribes/immovables/cornfield_tiny/helptexts.lua (+15/-0)
tribes/immovables/cornfield_tiny/init.lua (+24/-11)
tribes/immovables/destroyed_building/helptexts.lua (+15/-0)
tribes/immovables/destroyed_building/init.lua (+24/-11)
tribes/immovables/field_harvested/helptexts.lua (+15/-0)
tribes/immovables/field_harvested/init.lua (+23/-9)
tribes/immovables/field_medium/helptexts.lua (+15/-0)
tribes/immovables/field_medium/init.lua (+24/-11)
tribes/immovables/field_ripe/helptexts.lua (+15/-0)
tribes/immovables/field_ripe/init.lua (+27/-15)
tribes/immovables/field_small/helptexts.lua (+15/-0)
tribes/immovables/field_small/init.lua (+24/-11)
tribes/immovables/field_tiny/helptexts.lua (+15/-0)
tribes/immovables/field_tiny/init.lua (+24/-11)
tribes/immovables/grapevine_medium/helptexts.lua (+15/-0)
tribes/immovables/grapevine_medium/init.lua (+24/-11)
tribes/immovables/grapevine_ripe/helptexts.lua (+15/-0)
tribes/immovables/grapevine_ripe/init.lua (+27/-15)
tribes/immovables/grapevine_small/helptexts.lua (+15/-0)
tribes/immovables/grapevine_small/init.lua (+24/-11)
tribes/immovables/grapevine_tiny/helptexts.lua (+15/-0)
tribes/immovables/grapevine_tiny/init.lua (+24/-11)
tribes/immovables/reed_medium/helptexts.lua (+15/-0)
tribes/immovables/reed_medium/init.lua (+24/-11)
tribes/immovables/reed_ripe/helptexts.lua (+15/-0)
tribes/immovables/reed_ripe/init.lua (+27/-15)
tribes/immovables/reed_small/helptexts.lua (+15/-0)
tribes/immovables/reed_small/init.lua (+24/-11)
tribes/immovables/reed_tiny/helptexts.lua (+15/-0)
tribes/immovables/reed_tiny/init.lua (+24/-11)
tribes/immovables/resi_coal1/helptexts.lua (+16/-0)
tribes/immovables/resi_coal1/init.lua (+23/-10)
tribes/immovables/resi_coal2/helptexts.lua (+16/-0)
tribes/immovables/resi_coal2/init.lua (+23/-10)
tribes/immovables/resi_gold1/helptexts.lua (+16/-0)
tribes/immovables/resi_gold1/init.lua (+23/-10)
tribes/immovables/resi_gold2/helptexts.lua (+16/-0)
tribes/immovables/resi_gold2/init.lua (+23/-10)
tribes/immovables/resi_iron1/helptexts.lua (+16/-0)
tribes/immovables/resi_iron1/init.lua (+23/-10)
tribes/immovables/resi_iron2/helptexts.lua (+16/-0)
tribes/immovables/resi_iron2/init.lua (+23/-10)
tribes/immovables/resi_none/helptexts.lua (+16/-0)
tribes/immovables/resi_none/init.lua (+23/-10)
tribes/immovables/resi_stones1/helptexts.lua (+20/-0)
tribes/immovables/resi_stones1/init.lua (+23/-10)
tribes/immovables/resi_stones2/helptexts.lua (+20/-0)
tribes/immovables/resi_stones2/init.lua (+23/-10)
tribes/immovables/resi_water1/helptexts.lua (+16/-0)
tribes/immovables/resi_water1/init.lua (+23/-10)
tribes/immovables/shipconstruction_atlanteans/helptexts.lua (+15/-0)
tribes/immovables/shipconstruction_atlanteans/init.lua (+29/-15)
tribes/immovables/shipconstruction_barbarians/helptexts.lua (+15/-0)
tribes/immovables/shipconstruction_barbarians/init.lua (+29/-15)
tribes/immovables/shipconstruction_empire/helptexts.lua (+15/-0)
tribes/immovables/shipconstruction_empire/init.lua (+29/-15)
tribes/init.lua (+504/-0)
tribes/preload.lua (+53/-0)
tribes/scripting/help/building_help.lua (+681/-582)
tribes/scripting/help/global_helptexts.lua (+47/-0)
tribes/scripting/help/ware_help.lua (+68/-0)
tribes/scripting/help/worker_help.lua (+68/-66)
tribes/scripting/starting_conditions/atlanteans/fortified_village.lua (+36/-37)
tribes/scripting/starting_conditions/atlanteans/headquarters.lua (+26/-26)
tribes/scripting/starting_conditions/barbarians/fortified_village.lua (+32/-32)
tribes/scripting/starting_conditions/barbarians/headquarters.lua (+21/-21)
tribes/scripting/starting_conditions/empire/fortified_village.lua (+36/-36)
tribes/scripting/starting_conditions/empire/headquarters.lua (+24/-24)
tribes/ships/atlanteans/init.lua (+26/-19)
tribes/ships/barbarians/init.lua (+21/-14)
tribes/ships/empire/init.lua (+21/-14)
tribes/wares/armor/helptexts.lua (+14/-0)
tribes/wares/armor/init.lua (+23/-8)
tribes/wares/armor_chain/helptexts.lua (+14/-0)
tribes/wares/armor_chain/init.lua (+24/-8)
tribes/wares/armor_gilded/helptexts.lua (+14/-0)
tribes/wares/armor_gilded/init.lua (+24/-8)
tribes/wares/armor_helmet/helptexts.lua (+14/-0)
tribes/wares/armor_helmet/init.lua (+24/-8)
tribes/wares/ax/helptexts.lua (+14/-0)
tribes/wares/ax/init.lua (+24/-8)
tribes/wares/ax_battle/helptexts.lua (+14/-0)
tribes/wares/ax_battle/init.lua (+24/-8)
tribes/wares/ax_broad/helptexts.lua (+14/-0)
tribes/wares/ax_broad/init.lua (+24/-8)
tribes/wares/ax_bronze/helptexts.lua (+14/-0)
tribes/wares/ax_bronze/init.lua (+24/-8)
tribes/wares/ax_sharp/helptexts.lua (+14/-0)
tribes/wares/ax_sharp/init.lua (+24/-8)
tribes/wares/ax_warriors/helptexts.lua (+14/-0)
tribes/wares/ax_warriors/init.lua (+24/-8)
tribes/wares/basket/helptexts.lua (+14/-0)
tribes/wares/basket/init.lua (+23/-7)
tribes/wares/beer/helptexts.lua (+16/-0)
tribes/wares/beer/init.lua (+25/-8)
tribes/wares/beer_strong/helptexts.lua (+14/-0)
tribes/wares/beer_strong/init.lua (+24/-8)
tribes/wares/blackroot/helptexts.lua (+14/-0)
tribes/wares/blackroot/init.lua (+24/-8)
tribes/wares/blackroot_flour/helptexts.lua (+14/-0)
tribes/wares/blackroot_flour/init.lua (+24/-8)
tribes/wares/blackwood/helptexts.lua (+14/-0)
tribes/wares/blackwood/init.lua (+24/-11)
tribes/wares/bread_atlanteans/helptexts.lua (+14/-0)
tribes/wares/bread_atlanteans/init.lua (+24/-9)
tribes/wares/bread_barbarians/helptexts.lua (+14/-0)
tribes/wares/bread_barbarians/init.lua (+24/-8)
tribes/wares/bread_empire/helptexts.lua (+14/-0)
tribes/wares/bread_empire/init.lua (+24/-8)
tribes/wares/bread_paddle/helptexts.lua (+20/-0)
tribes/wares/bread_paddle/init.lua (+28/-7)
tribes/wares/buckets/helptexts.lua (+14/-0)
tribes/wares/buckets/init.lua (+24/-8)
tribes/wares/cloth/helptexts.lua (+16/-0)
tribes/wares/cloth/init.lua (+26/-7)
tribes/wares/coal/helptexts.lua (+20/-0)
tribes/wares/coal/init.lua (+28/-8)
tribes/wares/corn/helptexts.lua (+14/-0)
tribes/wares/corn/init.lua (+24/-9)
tribes/wares/cornmeal/helptexts.lua (+14/-0)
tribes/wares/cornmeal/init.lua (+24/-8)
tribes/wares/diamond/helptexts.lua (+14/-0)
tribes/wares/diamond/init.lua (+24/-8)
tribes/wares/felling_ax/helptexts.lua (+18/-0)
tribes/wares/felling_ax/init.lua (+26/-8)
tribes/wares/fire_tongs/helptexts.lua (+20/-0)
tribes/wares/fire_tongs/init.lua (+28/-7)
tribes/wares/fish/helptexts.lua (+18/-0)
tribes/wares/fish/init.lua (+28/-8)
tribes/wares/fishing_net/helptexts.lua (+14/-0)
tribes/wares/fishing_net/init.lua (+24/-8)
tribes/wares/fishing_rod/helptexts.lua (+18/-0)
tribes/wares/fishing_rod/init.lua (+26/-7)
tribes/wares/flour/helptexts.lua (+14/-0)
tribes/wares/flour/init.lua (+24/-8)
tribes/wares/gold/helptexts.lua (+20/-0)
tribes/wares/gold/init.lua (+28/-8)
tribes/wares/gold_ore/helptexts.lua (+14/-0)
tribes/wares/gold_ore/init.lua (+28/-8)
tribes/wares/gold_thread/helptexts.lua (+14/-0)
tribes/wares/gold_thread/init.lua (+24/-9)
tribes/wares/granite/helptexts.lua (+20/-0)
tribes/wares/granite/init.lua (+28/-12)
tribes/wares/grape/helptexts.lua (+14/-0)
tribes/wares/grape/init.lua (+24/-8)
tribes/wares/grout/helptexts.lua (+14/-0)
tribes/wares/grout/init.lua (+24/-11)
tribes/wares/hammer/helptexts.lua (+20/-0)
tribes/wares/hammer/init.lua (+28/-8)
tribes/wares/helmet/helptexts.lua (+14/-0)
tribes/wares/helmet/init.lua (+24/-8)
tribes/wares/helmet_mask/helptexts.lua (+14/-0)
tribes/wares/helmet_mask/init.lua (+24/-8)
tribes/wares/helmet_warhelm/helptexts.lua (+14/-0)
tribes/wares/helmet_warhelm/init.lua (+24/-8)
tribes/wares/hook_pole/helptexts.lua (+14/-0)
tribes/wares/hook_pole/init.lua (+24/-8)
tribes/wares/hunting_bow/helptexts.lua (+14/-0)
tribes/wares/hunting_bow/init.lua (+24/-7)
tribes/wares/hunting_spear/helptexts.lua (+18/-0)
tribes/wares/hunting_spear/init.lua (+26/-7)
tribes/wares/iron/helptexts.lua (+20/-0)
tribes/wares/iron/init.lua (+28/-8)
tribes/wares/iron_ore/helptexts.lua (+14/-0)
tribes/wares/iron_ore/init.lua (+28/-8)
tribes/wares/kitchen_tools/helptexts.lua (+16/-0)
tribes/wares/kitchen_tools/init.lua (+26/-7)
tribes/wares/log/helptexts.lua (+20/-0)
tribes/wares/log/init.lua (+28/-11)
tribes/wares/marble/helptexts.lua (+14/-0)
tribes/wares/marble/init.lua (+24/-8)
tribes/wares/marble_column/helptexts.lua (+14/-0)
tribes/wares/marble_column/init.lua (+24/-8)
tribes/wares/meal/helptexts.lua (+16/-0)
tribes/wares/meal/init.lua (+26/-8)
tribes/wares/meat/helptexts.lua (+20/-0)
tribes/wares/meat/init.lua (+28/-8)
tribes/wares/milking_tongs/helptexts.lua (+14/-0)
tribes/wares/milking_tongs/init.lua (+24/-7)
tribes/wares/pick/helptexts.lua (+18/-0)
tribes/wares/pick/init.lua (+28/-8)
tribes/wares/planks/helptexts.lua (+18/-0)
tribes/wares/planks/init.lua (+26/-8)
tribes/wares/quartz/helptexts.lua (+14/-0)
tribes/wares/quartz/init.lua (+24/-8)
tribes/wares/ration/helptexts.lua (+18/-0)
tribes/wares/ration/init.lua (+26/-8)
tribes/wares/saw/helptexts.lua (+16/-0)
tribes/wares/saw/init.lua (+26/-7)
tribes/wares/scythe/helptexts.lua (+20/-0)
tribes/wares/scythe/init.lua (+28/-7)
tribes/wares/shield_advanced/helptexts.lua (+14/-0)
tribes/wares/shield_advanced/init.lua (+24/-9)
tribes/wares/shield_steel/helptexts.lua (+14/-0)
tribes/wares/shield_steel/init.lua (+24/-9)
tribes/wares/shovel/helptexts.lua (+20/-0)
tribes/wares/shovel/init.lua (+28/-7)
tribes/wares/smoked_fish/helptexts.lua (+14/-0)
tribes/wares/smoked_fish/init.lua (+24/-8)
tribes/wares/smoked_meat/helptexts.lua (+14/-0)
tribes/wares/smoked_meat/init.lua (+24/-8)
tribes/wares/snack/helptexts.lua (+14/-0)
tribes/wares/snack/init.lua (+24/-8)
tribes/wares/spear/helptexts.lua (+14/-0)
tribes/wares/spear/init.lua (+24/-8)
tribes/wares/spear_advanced/helptexts.lua (+14/-0)
tribes/wares/spear_advanced/init.lua (+24/-8)
tribes/wares/spear_heavy/helptexts.lua (+14/-0)
tribes/wares/spear_heavy/init.lua (+24/-8)
tribes/wares/spear_war/helptexts.lua (+14/-0)
tribes/wares/spear_war/init.lua (+24/-8)
tribes/wares/spear_wooden/helptexts.lua (+14/-0)
tribes/wares/spear_wooden/init.lua (+24/-8)
tribes/wares/spider_silk/helptexts.lua (+14/-0)
tribes/wares/spider_silk/init.lua (+24/-8)
tribes/wares/spidercloth/helptexts.lua (+14/-0)
tribes/wares/spidercloth/init.lua (+24/-9)
tribes/wares/tabard/helptexts.lua (+14/-0)
tribes/wares/tabard/init.lua (+24/-8)
tribes/wares/tabard_golden/helptexts.lua (+14/-0)
tribes/wares/tabard_golden/init.lua (+24/-8)
tribes/wares/thatch_reed/helptexts.lua (+14/-0)
tribes/wares/thatch_reed/init.lua (+24/-8)
tribes/wares/trident_double/helptexts.lua (+14/-0)
tribes/wares/trident_double/init.lua (+24/-9)
tribes/wares/trident_heavy_double/helptexts.lua (+14/-0)
tribes/wares/trident_heavy_double/init.lua (+24/-9)
tribes/wares/trident_light/helptexts.lua (+14/-0)
tribes/wares/trident_light/init.lua (+24/-9)
tribes/wares/trident_long/helptexts.lua (+14/-0)
tribes/wares/trident_long/init.lua (+24/-9)
tribes/wares/trident_steel/helptexts.lua (+14/-0)
tribes/wares/trident_steel/init.lua (+24/-8)
tribes/wares/water/helptexts.lua (+20/-0)
tribes/wares/water/init.lua (+28/-8)
tribes/wares/wheat/helptexts.lua (+18/-0)
tribes/wares/wheat/init.lua (+26/-8)
tribes/wares/wine/helptexts.lua (+14/-0)
tribes/wares/wine/init.lua (+24/-8)
tribes/wares/wool/helptexts.lua (+14/-0)
tribes/wares/wool/init.lua (+24/-8)
tribes/workers/atlanteans/armorsmith/helptexts.lua (+4/-0)
tribes/workers/atlanteans/armorsmith/init.lua (+29/-19)
tribes/workers/atlanteans/baker/helptexts.lua (+4/-0)
tribes/workers/atlanteans/baker/init.lua (+29/-19)
tribes/workers/atlanteans/blackroot_farmer/helptexts.lua (+4/-0)
tribes/workers/atlanteans/blackroot_farmer/init.lua (+67/-53)
tribes/workers/atlanteans/builder/helptexts.lua (+4/-0)
tribes/workers/atlanteans/builder/init.lua (+39/-26)
tribes/workers/atlanteans/carrier/helptexts.lua (+4/-0)
tribes/workers/atlanteans/carrier/init.lua (+28/-18)
tribes/workers/atlanteans/charcoal_burner/helptexts.lua (+4/-0)
tribes/workers/atlanteans/charcoal_burner/init.lua (+28/-18)
tribes/workers/atlanteans/farmer/helptexts.lua (+4/-0)
tribes/workers/atlanteans/farmer/init.lua (+68/-54)
tribes/workers/atlanteans/fishbreeder/helptexts.lua (+4/-0)
tribes/workers/atlanteans/fishbreeder/init.lua (+43/-32)
tribes/workers/atlanteans/fisher/helptexts.lua (+4/-0)
tribes/workers/atlanteans/fisher/init.lua (+48/-35)
tribes/workers/atlanteans/forester/helptexts.lua (+4/-0)
tribes/workers/atlanteans/forester/init.lua (+59/-44)
tribes/workers/atlanteans/geologist/helptexts.lua (+4/-0)
tribes/workers/atlanteans/geologist/init.lua (+53/-41)
tribes/workers/atlanteans/horse/helptexts.lua (+4/-0)
tribes/workers/atlanteans/horse/init.lua (+28/-18)
tribes/workers/atlanteans/horsebreeder/helptexts.lua (+4/-0)
tribes/workers/atlanteans/horsebreeder/init.lua (+26/-19)
tribes/workers/atlanteans/hunter/helptexts.lua (+4/-0)
tribes/workers/atlanteans/hunter/init.lua (+41/-29)
tribes/workers/atlanteans/miller/helptexts.lua (+4/-0)
tribes/workers/atlanteans/miller/init.lua (+28/-18)
tribes/workers/atlanteans/miner/helptexts.lua (+4/-0)
tribes/workers/atlanteans/miner/init.lua (+29/-19)
tribes/workers/atlanteans/sawyer/helptexts.lua (+4/-0)
tribes/workers/atlanteans/sawyer/init.lua (+29/-19)
tribes/workers/atlanteans/scout/helptexts.lua (+4/-0)
tribes/workers/atlanteans/scout/init.lua (+33/-24)
tribes/workers/atlanteans/shipwright/helptexts.lua (+4/-0)
tribes/workers/atlanteans/shipwright/init.lua (+46/-31)
tribes/workers/atlanteans/smelter/helptexts.lua (+4/-0)
tribes/workers/atlanteans/smelter/init.lua (+29/-19)
tribes/workers/atlanteans/smoker/helptexts.lua (+4/-0)
tribes/workers/atlanteans/smoker/init.lua (+27/-19)
tribes/workers/atlanteans/soldier/helptexts.lua (+4/-0)
tribes/workers/atlanteans/soldier/init.lua (+155/-108)
tribes/workers/atlanteans/spiderbreeder/helptexts.lua (+4/-0)
tribes/workers/atlanteans/spiderbreeder/init.lua (+29/-19)
tribes/workers/atlanteans/stonecutter/helptexts.lua (+4/-0)
tribes/workers/atlanteans/stonecutter/init.lua (+47/-35)
tribes/workers/atlanteans/toolsmith/helptexts.lua (+4/-0)
tribes/workers/atlanteans/toolsmith/init.lua (+29/-19)
tribes/workers/atlanteans/trainer/helptexts.lua (+4/-0)
tribes/workers/atlanteans/trainer/init.lua (+30/-20)
tribes/workers/atlanteans/weaponsmith/helptexts.lua (+4/-0)
tribes/workers/atlanteans/weaponsmith/init.lua (+29/-19)
tribes/workers/atlanteans/weaver/helptexts.lua (+4/-0)
tribes/workers/atlanteans/weaver/init.lua (+28/-18)
tribes/workers/atlanteans/woodcutter/helptexts.lua (+4/-0)
tribes/workers/atlanteans/woodcutter/init.lua (+48/-35)
tribes/workers/barbarians/baker/helptexts.lua (+4/-0)
tribes/workers/barbarians/baker/init.lua (+29/-19)
tribes/workers/barbarians/blacksmith/helptexts.lua (+4/-0)
tribes/workers/barbarians/blacksmith/init.lua (+32/-21)
tribes/workers/barbarians/blacksmith_master/helptexts.lua (+4/-0)
tribes/workers/barbarians/blacksmith_master/init.lua (+24/-15)
tribes/workers/barbarians/brewer/helptexts.lua (+4/-0)
tribes/workers/barbarians/brewer/init.lua (+31/-20)
tribes/workers/barbarians/brewer_master/helptexts.lua (+4/-0)
tribes/workers/barbarians/brewer_master/init.lua (+24/-15)
tribes/workers/barbarians/builder/helptexts.lua (+4/-0)
tribes/workers/barbarians/builder/init.lua (+40/-26)
tribes/workers/barbarians/carrier/helptexts.lua (+4/-0)
tribes/workers/barbarians/carrier/init.lua (+27/-18)
tribes/workers/barbarians/cattlebreeder/helptexts.lua (+4/-0)
tribes/workers/barbarians/cattlebreeder/init.lua (+28/-19)
tribes/workers/barbarians/charcoal_burner/helptexts.lua (+4/-0)
tribes/workers/barbarians/charcoal_burner/init.lua (+28/-18)
tribes/workers/barbarians/farmer/helptexts.lua (+4/-0)
tribes/workers/barbarians/farmer/init.lua (+68/-54)
tribes/workers/barbarians/fisher/helptexts.lua (+4/-0)
tribes/workers/barbarians/fisher/init.lua (+48/-36)
tribes/workers/barbarians/gamekeeper/helptexts.lua (+4/-0)
tribes/workers/barbarians/gamekeeper/init.lua (+52/-37)
tribes/workers/barbarians/gardener/helptexts.lua (+4/-0)
tribes/workers/barbarians/gardener/init.lua (+61/-48)
tribes/workers/barbarians/geologist/helptexts.lua (+4/-0)
tribes/workers/barbarians/geologist/init.lua (+53/-41)
tribes/workers/barbarians/helmsmith/helptexts.lua (+4/-0)
tribes/workers/barbarians/helmsmith/init.lua (+29/-19)
tribes/workers/barbarians/hunter/helptexts.lua (+4/-0)
tribes/workers/barbarians/hunter/init.lua (+41/-29)
tribes/workers/barbarians/innkeeper/helptexts.lua (+4/-0)
tribes/workers/barbarians/innkeeper/init.lua (+29/-19)
tribes/workers/barbarians/lime_burner/helptexts.lua (+4/-0)
tribes/workers/barbarians/lime_burner/init.lua (+28/-19)
tribes/workers/barbarians/lumberjack/helptexts.lua (+4/-0)
tribes/workers/barbarians/lumberjack/init.lua (+50/-36)
tribes/workers/barbarians/miner/helptexts.lua (+4/-0)
tribes/workers/barbarians/miner/init.lua (+32/-21)
tribes/workers/barbarians/miner_chief/helptexts.lua (+4/-0)
tribes/workers/barbarians/miner_chief/init.lua (+27/-17)
tribes/workers/barbarians/miner_master/helptexts.lua (+4/-0)
tribes/workers/barbarians/miner_master/init.lua (+24/-15)
tribes/workers/barbarians/ox/helptexts.lua (+4/-0)
tribes/workers/barbarians/ox/init.lua (+29/-18)
tribes/workers/barbarians/ranger/helptexts.lua (+4/-0)
tribes/workers/barbarians/ranger/init.lua (+59/-44)
tribes/workers/barbarians/scout/helptexts.lua (+4/-0)
tribes/workers/barbarians/scout/init.lua (+35/-24)
tribes/workers/barbarians/shipwright/helptexts.lua (+4/-0)
tribes/workers/barbarians/shipwright/init.lua (+51/-36)
tribes/workers/barbarians/smelter/helptexts.lua (+4/-0)
tribes/workers/barbarians/smelter/init.lua (+29/-19)
tribes/workers/barbarians/soldier/helptexts.lua (+4/-0)
tribes/workers/barbarians/soldier/init.lua (+154/-110)
tribes/workers/barbarians/stonemason/helptexts.lua (+4/-0)
tribes/workers/barbarians/stonemason/init.lua (+48/-35)
tribes/workers/barbarians/trainer/helptexts.lua (+4/-0)
tribes/workers/barbarians/trainer/init.lua (+28/-19)
tribes/workers/barbarians/weaver/helptexts.lua (+4/-0)
tribes/workers/barbarians/weaver/init.lua (+28/-18)
tribes/workers/empire/armorsmith/helptexts.lua (+4/-0)
tribes/workers/empire/armorsmith/init.lua (+29/-19)
tribes/workers/empire/baker/helptexts.lua (+4/-0)
tribes/workers/empire/baker/init.lua (+29/-19)
tribes/workers/empire/brewer/helptexts.lua (+4/-0)
tribes/workers/empire/brewer/init.lua (+28/-18)
tribes/workers/empire/builder/helptexts.lua (+4/-0)
tribes/workers/empire/builder/init.lua (+40/-26)
tribes/workers/empire/carpenter/helptexts.lua (+4/-0)
tribes/workers/empire/carpenter/init.lua (+29/-19)
tribes/workers/empire/carrier/helptexts.lua (+4/-0)
tribes/workers/empire/carrier/init.lua (+27/-18)
tribes/workers/empire/charcoal_burner/helptexts.lua (+4/-0)
tribes/workers/empire/charcoal_burner/init.lua (+28/-18)
tribes/workers/empire/donkey/helptexts.lua (+4/-0)
tribes/workers/empire/donkey/init.lua (+28/-18)
tribes/workers/empire/donkeybreeder/helptexts.lua (+4/-0)
tribes/workers/empire/donkeybreeder/init.lua (+28/-19)
tribes/workers/empire/farmer/helptexts.lua (+4/-0)
tribes/workers/empire/farmer/init.lua (+68/-54)
tribes/workers/empire/fisher/helptexts.lua (+4/-0)
tribes/workers/empire/fisher/init.lua (+47/-36)
tribes/workers/empire/forester/helptexts.lua (+4/-0)
tribes/workers/empire/forester/init.lua (+59/-44)
tribes/workers/empire/geologist/helptexts.lua (+4/-0)
tribes/workers/empire/geologist/init.lua (+53/-41)
tribes/workers/empire/hunter/helptexts.lua (+4/-0)
tribes/workers/empire/hunter/init.lua (+40/-29)
tribes/workers/empire/innkeeper/helptexts.lua (+4/-0)
tribes/workers/empire/innkeeper/init.lua (+29/-20)
tribes/workers/empire/lumberjack/helptexts.lua (+4/-0)
tribes/workers/empire/lumberjack/init.lua (+50/-37)
tribes/workers/empire/miller/helptexts.lua (+4/-0)
tribes/workers/empire/miller/init.lua (+28/-18)
tribes/workers/empire/miner/helptexts.lua (+4/-0)
tribes/workers/empire/miner/init.lua (+32/-21)
tribes/workers/empire/miner_master/helptexts.lua (+4/-0)
tribes/workers/empire/miner_master/init.lua (+24/-15)
tribes/workers/empire/pigbreeder/helptexts.lua (+4/-0)
tribes/workers/empire/pigbreeder/init.lua (+28/-19)
tribes/workers/empire/scout/helptexts.lua (+4/-0)
tribes/workers/empire/scout/init.lua (+35/-24)
tribes/workers/empire/shepherd/helptexts.lua (+4/-0)
tribes/workers/empire/shepherd/init.lua (+28/-19)
tribes/workers/empire/shipwright/helptexts.lua (+4/-0)
tribes/workers/empire/shipwright/init.lua (+51/-36)
tribes/workers/empire/smelter/helptexts.lua (+4/-0)
tribes/workers/empire/smelter/init.lua (+29/-19)
tribes/workers/empire/soldier/helptexts.lua (+4/-0)
tribes/workers/empire/soldier/init.lua (+155/-112)
tribes/workers/empire/stonemason/helptexts.lua (+4/-0)
tribes/workers/empire/stonemason/init.lua (+57/-45)
tribes/workers/empire/toolsmith/helptexts.lua (+4/-0)
tribes/workers/empire/toolsmith/init.lua (+29/-19)
tribes/workers/empire/trainer/helptexts.lua (+4/-0)
tribes/workers/empire/trainer/init.lua (+30/-20)
tribes/workers/empire/vinefarmer/helptexts.lua (+4/-0)
tribes/workers/empire/vinefarmer/init.lua (+68/-54)
tribes/workers/empire/vintner/helptexts.lua (+4/-0)
tribes/workers/empire/vintner/init.lua (+29/-0)
tribes/workers/empire/weaponsmith/helptexts.lua (+4/-0)
tribes/workers/empire/weaponsmith/init.lua (+29/-19)
tribes/workers/empire/weaver/helptexts.lua (+4/-0)
tribes/workers/empire/weaver/init.lua (+28/-19)
txts/AUTHORS.lua (+21/-21)
txts/LICENSE.lua (+24/-24)
txts/developers.lua (+1/-1)
txts/editor_readme.lua (+42/-42)
txts/tips/general_game.tip (+1/-1)
utils/buildcat.py (+17/-25)
utils/detect_redundant_default_target_quantities.sh (+0/-15)
utils/fix_lua_tabs.py (+68/-0)
utils/update_tribes.py (+41/-0)
world/critters/badger/init.lua (+2/-1)
world/critters/brownbear/init.lua (+2/-1)
world/critters/bunny/init.lua (+2/-1)
world/critters/chamois/init.lua (+2/-1)
world/critters/deer/init.lua (+2/-1)
world/critters/duck/init.lua (+2/-1)
world/critters/elk/init.lua (+2/-1)
world/critters/fox/init.lua (+2/-1)
world/critters/lynx/init.lua (+2/-1)
world/critters/marten/init.lua (+2/-1)
world/critters/reindeer/init.lua (+2/-1)
world/critters/sheep/init.lua (+2/-1)
world/critters/stag/init.lua (+2/-1)
world/critters/wildboar/init.lua (+2/-1)
world/critters/wisent/init.lua (+2/-1)
world/critters/wolf/init.lua (+2/-1)
world/immovables/bush1/init.lua (+2/-1)
world/immovables/bush2/init.lua (+2/-1)
world/immovables/bush3/init.lua (+2/-1)
world/immovables/bush4/init.lua (+2/-1)
world/immovables/bush5/init.lua (+2/-1)
world/immovables/cactus1/init.lua (+2/-1)
world/immovables/cactus2/init.lua (+2/-1)
world/immovables/cactus3/init.lua (+2/-1)
world/immovables/cactus4/init.lua (+2/-1)
world/immovables/grass1/init.lua (+2/-1)
world/immovables/grass2/init.lua (+2/-1)
world/immovables/grass3/init.lua (+2/-1)
world/immovables/manmade/bar-ruin00/init.lua (+2/-1)
world/immovables/manmade/bar-ruin01/init.lua (+2/-1)
world/immovables/manmade/bar-ruin02/init.lua (+2/-1)
world/immovables/manmade/bar-ruin03/init.lua (+2/-1)
world/immovables/manmade/debris00/init.lua (+2/-1)
world/immovables/manmade/debris01/init.lua (+2/-1)
world/immovables/manmade/debris02/init.lua (+2/-1)
world/immovables/manmade/snowman/init.lua (+2/-1)
world/immovables/mushroom1/init.lua (+2/-1)
world/immovables/mushroom2/init.lua (+2/-1)
world/immovables/pebble1/init.lua (+2/-1)
world/immovables/pebble2/init.lua (+2/-1)
world/immovables/pebble3/init.lua (+2/-1)
world/immovables/pebble4/init.lua (+2/-1)
world/immovables/pebble5/init.lua (+2/-1)
world/immovables/pebble6/init.lua (+2/-1)
world/immovables/rocks/blackland_rocks1/init.lua (+6/-5)
world/immovables/rocks/blackland_rocks2/init.lua (+7/-6)
world/immovables/rocks/blackland_rocks3/init.lua (+7/-6)
world/immovables/rocks/blackland_rocks4/init.lua (+7/-6)
world/immovables/rocks/blackland_rocks5/init.lua (+7/-6)
world/immovables/rocks/blackland_rocks6/init.lua (+7/-6)
world/immovables/rocks/desert_rocks1/init.lua (+6/-5)
world/immovables/rocks/desert_rocks2/init.lua (+7/-6)
world/immovables/rocks/desert_rocks3/init.lua (+7/-6)
world/immovables/rocks/desert_rocks4/init.lua (+7/-6)
world/immovables/rocks/desert_rocks5/init.lua (+7/-6)
world/immovables/rocks/desert_rocks6/init.lua (+7/-6)
world/immovables/rocks/greenland_rocks1/init.lua (+6/-5)
world/immovables/rocks/greenland_rocks2/init.lua (+7/-6)
world/immovables/rocks/greenland_rocks3/init.lua (+7/-6)
world/immovables/rocks/greenland_rocks4/init.lua (+7/-6)
world/immovables/rocks/greenland_rocks5/init.lua (+7/-6)
world/immovables/rocks/greenland_rocks6/init.lua (+7/-6)
world/immovables/rocks/winterland_rocks1/init.lua (+6/-5)
world/immovables/rocks/winterland_rocks2/init.lua (+7/-6)
world/immovables/rocks/winterland_rocks3/init.lua (+7/-6)
world/immovables/rocks/winterland_rocks4/init.lua (+7/-6)
world/immovables/rocks/winterland_rocks5/init.lua (+7/-6)
world/immovables/rocks/winterland_rocks6/init.lua (+7/-6)
world/immovables/ruin1/init.lua (+2/-1)
world/immovables/ruin2/init.lua (+2/-1)
world/immovables/ruin3/init.lua (+2/-1)
world/immovables/ruin4/init.lua (+2/-1)
world/immovables/ruin5/init.lua (+2/-1)
world/immovables/skeleton1/init.lua (+2/-1)
world/immovables/skeleton2/init.lua (+2/-1)
world/immovables/skeleton3/init.lua (+2/-1)
world/immovables/skeleton4/init.lua (+2/-1)
world/immovables/standing_stones/standing_stone1_desert/init.lua (+2/-1)
world/immovables/standing_stones/standing_stone1_summer/init.lua (+2/-1)
world/immovables/standing_stones/standing_stone1_wasteland/init.lua (+2/-1)
world/immovables/standing_stones/standing_stone1_winter/init.lua (+2/-1)
world/immovables/standing_stones/standing_stone2_desert/init.lua (+2/-1)
world/immovables/standing_stones/standing_stone2_summer/init.lua (+2/-1)
world/immovables/standing_stones/standing_stone2_wasteland/init.lua (+2/-1)
world/immovables/standing_stones/standing_stone2_winter/init.lua (+2/-1)
world/immovables/standing_stones/standing_stone3_desert/init.lua (+2/-1)
world/immovables/standing_stones/standing_stone3_summer/init.lua (+2/-1)
world/immovables/standing_stones/standing_stone3_wasteland/init.lua (+2/-1)
world/immovables/standing_stones/standing_stone3_winter/init.lua (+2/-1)
world/immovables/standing_stones/standing_stone4_desert/init.lua (+2/-1)
world/immovables/standing_stones/standing_stone4_summer/init.lua (+2/-1)
world/immovables/standing_stones/standing_stone4_wasteland/init.lua (+2/-1)
world/immovables/standing_stones/standing_stone4_winter/init.lua (+2/-1)
world/immovables/standing_stones/standing_stone5_desert/init.lua (+2/-1)
world/immovables/standing_stones/standing_stone5_summer/init.lua (+2/-1)
world/immovables/standing_stones/standing_stone5_wasteland/init.lua (+2/-1)
world/immovables/standing_stones/standing_stone5_winter/init.lua (+2/-1)
world/immovables/standing_stones/standing_stone6/init.lua (+2/-1)
world/immovables/standing_stones/standing_stone7/init.lua (+2/-1)
world/immovables/track_winter/init.lua (+2/-1)
world/immovables/trees/alder/init.lua (+8/-4)
world/immovables/trees/aspen/init.lua (+10/-5)
world/immovables/trees/beech/init.lua (+8/-4)
world/immovables/trees/birch/init.lua (+8/-4)
world/immovables/trees/cirrus/init.lua (+8/-4)
world/immovables/trees/deadtree1/init.lua (+4/-3)
world/immovables/trees/deadtree2/init.lua (+4/-3)
world/immovables/trees/deadtree3/init.lua (+4/-3)
world/immovables/trees/deadtree4/init.lua (+4/-3)
world/immovables/trees/deadtree5/init.lua (+4/-3)
world/immovables/trees/deadtree6/init.lua (+4/-3)
world/immovables/trees/fallentree/init.lua (+4/-3)
world/immovables/trees/larch/init.lua (+8/-4)
world/immovables/trees/liana/init.lua (+8/-4)
world/immovables/trees/maple/init.lua (+8/-4)
world/immovables/trees/mushroom_dark/init.lua (+8/-4)
world/immovables/trees/mushroom_green/init.lua (+8/-4)
world/immovables/trees/mushroom_red/init.lua (+8/-4)
world/immovables/trees/oak/init.lua (+10/-5)
world/immovables/trees/palm_borassus/init.lua (+8/-4)
world/immovables/trees/palm_coconut/init.lua (+8/-4)
world/immovables/trees/palm_date/init.lua (+8/-4)
world/immovables/trees/palm_oil/init.lua (+8/-4)
world/immovables/trees/palm_roystonea/init.lua (+8/-4)
world/immovables/trees/rowan/init.lua (+8/-4)
world/immovables/trees/spruce/init.lua (+8/-4)
world/immovables/trees/twine/init.lua (+8/-4)
world/immovables/trees/umbrella_green/init.lua (+8/-4)
world/immovables/trees/umbrella_red/init.lua (+8/-4)
world/init.lua (+30/-29)
world/map_generation.lua (+32/-32)
world/resources/init.lua (+6/-6)
world/terrains/init.lua (+16/-16)
To merge this branch: bzr merge lp:~widelands-dev/widelands/one_tribe
Reviewer Review Type Date Requested Status
SirVer Approve
Review via email: mp+274832@code.launchpad.net

Description of the change

Tada-ching!

Related forum post: https://wl.widelands.org/forum/topic/1827/

Once this branch has been tested, reviewed etc, I will need to merge it personally, because there is some fixing up to do for the translations, which will be semi-automated only. I have left some NOCOM comments in utils for that.

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

Some comments to the code review - posting them here rather than in the code in order not change the branch, in case you're still working on it:

Regarding http://bazaar.launchpad.net/~widelands-dev/widelands/one_tribe/revision/7452#tribes/init.lua

We do need the number glob for parsing the animations for efficiency reasons. Using regular expressions for collecting the image files is sloooooooow - increases loading time for the tribes by about factor 10. I tried both Lua list directory and C++ boost:regex. We could think about writing an auxiliary Lua script to do what NumberGlob does though. Since this won't affect savegame compatibility, I'd classify that as a TODO for a future branch.

Regarding the renaming in
http://bazaar.launchpad.net/~widelands-dev/widelands/one_tribe/revision/7453#world/init.lua

This has consequences for the resource indicators, the legacy tables and the C++ code as well - I don't want to spend a day digging around and undoing this. Since we're renaming a lot of entities, to me it made sense to rename them all at once.

Love the new Lua cleanup script :)

Revision history for this message
SirVer (sirver) wrote :

Still working on the review. Have another long train ride today and hope to get it done then. I'll get back to this thread then.

In general I find very little to complain about in the code - really great job :)

> Am 01.11.2015 um 11:01 schrieb GunChleoc <email address hidden>:
>
> Some comments to the code review - posting them here rather than in the code in order not change the branch, in case you're still working on it:
>
> Regarding http://bazaar.launchpad.net/~widelands-dev/widelands/one_tribe/revision/7452#tribes/init.lua
>
> We do need the number glob for parsing the animations for efficiency reasons. Using regular expressions for collecting the image files is sloooooooow - increases loading time for the tribes by about factor 10. I tried both Lua list directory and C++ boost:regex. We could think about writing an auxiliary Lua script to do what NumberGlob does though. Since this won't affect savegame compatibility, I'd classify that as a TODO for a future branch.
>
> Regarding the renaming in
> http://bazaar.launchpad.net/~widelands-dev/widelands/one_tribe/revision/7453#world/init.lua
>
> This has consequences for the resource indicators, the legacy tables and the C++ code as well - I don't want to spend a day digging around and undoing this. Since we're renaming a lot of entities, to me it made sense to rename them all at once.
>
> Love the new Lua cleanup script :)
>
>
> --
> https://code.launchpad.net/~widelands-dev/widelands/one_tribe/+merge/274832
> Your team Widelands Developers is requested to review the proposed merge of lp:~widelands-dev/widelands/one_tribe into lp:widelands.
>
> _______________________________________________
> Mailing list: https://launchpad.net/~widelands-dev
> Post to : <email address hidden>
> Unsubscribe : https://launchpad.net/~widelands-dev
> More help : https://help.launchpad.net/ListHelp

Revision history for this message
GunChleoc (gunchleoc) wrote :

Regarding http://bazaar.launchpad.net/~widelands-dev/widelands/one_tribe/revision/7452#tribes/buildings/militarysites/atlanteans/guardhouse/init.lua

Renaming "outputs" to "occupants" won't work, because this is a feature of production sites in general and not just militarysites.

Revision history for this message
SirVer (sirver) wrote :

Not yet done. I reviewed everything but src/logic/, I cannot concentrate anymore now though. I'll finish the rest tomorrow.

Revision history for this message
SirVer (sirver) wrote :

[Num Glob vs list_directory]

I doubt that the regex matching is the slow part, but I can understand that listing all files in the directories and then filtering the ones we are not interested in is slow. The numglob is only checking if files exist, which will be faster.

But I just grepped the source code and realized that we never use the regular expression ability of list_directory anywhere except tests. How about changing it to do the work of NumGlob? I mean renaming it to path.list_files(pattern) (or something better). All "?" in pattern is replaced through numbers and we return a lua table with the filenames. We then guarantee that those files exist and we can already in the Lua dictionaries check that we have indeed pictures, i.e. that the config is sane. Right now, we only do it at load time

Revision history for this message
SirVer (sirver) wrote :

> Renaming "outputs" to "occupants" won't work, because this is a feature of production sites in general and not just militarysites.

Add a TODO that militarysite should not be a productionsite? Outputs is really weird for militarysites.

Okay, done with the review. I added a bunch of comments, but found the code very clean and overall a huge improvements. Please have a look over my comments, but I think most should just be converted to bugs and/or todos and this should be merged rather quickly.

Congratulations on this branch - that was a ton on work and a daunting task. Thanks for doing this!

review: Approve
Revision history for this message
GunChleoc (gunchleoc) wrote :

Thanks for the review!

Regarding the lookup tables
http://bazaar.launchpad.net/~widelands-dev/widelands/one_tribe/revision/7464

We do need the compatibility, because map loading has a building packet etc. I only included those entities in it that can't be avoided for map loading. I decided to rename world entities as well, because now all names correspond to their descnames - I expect that this will make the code easier to read for modders and for new programmers coming in.

Regarding lua_map
http://bazaar.launchpad.net/~widelands-dev/widelands/one_tribe/revision/7465

I need the building directory info to find the helptexts() file. I can't keep the helptexts in C++ because this would make the localization markup too inflexible - it would block the use of ngettext and splitting up of long strings. Alternatively, I could store the whole helptexts script path in C++ instead.

Regarding animations
http://bazaar.launchpad.net/~widelands-dev/widelands/one_tribe/revision/7466#src/logic/instances.cc

MapObjectDescr::add_directional_animation is still needed. The Lua stuff just creates a Lua table that then fits this function.

Regarding sets
http://bazaar.launchpad.net/~widelands-dev/widelands/one_tribe/revision/7466#src/logic/tribes/tribe_descr.h
I am using a set in TribeDescr because a vector would have holes in it, and it would then be expensive to iterate over only the items that aren't nullptr and to calculate the size - the indices are used as WareIndex, so access is better with a set.

[Num Glob vs list_directory]
Sounds like a plan - I will add this to my "todo" bug. I would like to get this branch in this weekend, because I will need time to fix up the translations. So, I don't want to change the code in this branch too much now.

I will look into the rest of the NOCOMS and see what I can fix up until then.

Revision history for this message
GunChleoc (gunchleoc) wrote :

I have a question regarding this comment:

// NOCOM(#codereview): no need to be static?
std::vector<TribeBasicInfo> Tribes::get_all_tribeinfos()

This function is used in the GameSettingsProvider classes before an egbase is created. Is there a better design than using static for this?

Revision history for this message
SirVer (sirver) wrote :

> This function is used in the GameSettingsProvider classes before an egbase is created. Is there a better design than using static for this?

IMHO, yes. Pull the method out into a stand alone function. It is more modular, and less coupled (static methods can access private static members and private methods, which is not needed here). This decision is less clear cut though. I just had a discussion today with colleagues and they preferred to have 'related' methods in the class as static, even if they did not need the additionally access rights.

'Effective c++' agrees with me about the less coupling though.

It is a minor thing in any way.

Revision history for this message
GunChleoc (gunchleoc) wrote :

I like learning good coe design though, so I'll put it on the todo-list :)

Revision history for this message
SirVer (sirver) wrote :

as said, other devs that are as experienced as I am disagree with this last point. So it is more bike shedding and should not be overrated. Other points are more clear cut.

I suggest reading effective c++ and effective c++11 if you want to learn more about good code design - both are really excellent books.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file '.tx/config'
2--- .tx/config 2015-07-25 10:28:16 +0000
3+++ .tx/config 2015-11-03 18:26:36 +0000
4@@ -79,21 +79,9 @@
5 source_lang = en
6 type = PO
7
8-[widelands.tribe_atlanteans]
9-file_filter = po/tribe_atlanteans/<lang>.po
10-source_file = po/tribe_atlanteans/tribe_atlanteans.pot
11-source_lang = en
12-type = PO
13-
14-[widelands.tribe_barbarians]
15-file_filter = po/tribe_barbarians/<lang>.po
16-source_file = po/tribe_barbarians/tribe_barbarians.pot
17-source_lang = en
18-type = PO
19-
20-[widelands.tribe_empire]
21-file_filter = po/tribe_empire/<lang>.po
22-source_file = po/tribe_empire/tribe_empire.pot
23+[widelands.tribes_encyclopedia]
24+file_filter = po/tribes_encyclopedia/<lang>.po
25+source_file = po/tribes_encyclopedia/tribes_encyclopedia.pot
26 source_lang = en
27 type = PO
28
29
30=== modified file 'CMakeLists.txt'
31--- CMakeLists.txt 2015-10-20 19:56:34 +0000
32+++ CMakeLists.txt 2015-11-03 18:26:36 +0000
33@@ -239,7 +239,6 @@
34 DIRECTORY
35 campaigns
36 i18n
37- global
38 tribes
39 txts
40 world
41
42=== removed file 'campaigns/atl01.wmf/allowed_worker_types'
43--- campaigns/atl01.wmf/allowed_worker_types 2014-08-26 17:25:00 +0000
44+++ campaigns/atl01.wmf/allowed_worker_types 1970-01-01 00:00:00 +0000
45@@ -1,31 +0,0 @@
46-# Automatically created by Widelands bzr5319[campaigns] (Debug)
47-
48-[global]
49-packet_version="1"
50-
51-[player_1]
52-carrier="true"
53-soldier="true"
54-baker="true"
55-blacksmith="true"
56-brewer="true"
57-builder="true"
58-charcoal_burner="true"
59-farmer="true"
60-gardener="true"
61-fisher="true"
62-gamekeeper="true"
63-geologist="true"
64-helmsmith="true"
65-hunter="true"
66-innkeeper="true"
67-lime-burner="true"
68-lumberjack="true"
69-miner="true"
70-ranger="true"
71-smelter="true"
72-stonemason="true"
73-trainer="true"
74-weaver="true"
75-scout="true"
76-cattlebreeder="true"
77
78=== modified file 'campaigns/atl01.wmf/scripting/init.lua'
79--- campaigns/atl01.wmf/scripting/init.lua 2014-10-03 08:58:44 +0000
80+++ campaigns/atl01.wmf/scripting/init.lua 2015-11-03 18:26:36 +0000
81@@ -57,8 +57,8 @@
82 -- ware.
83 function count_in_warehouses(ware)
84 local whs = array_combine(
85- p1:get_buildings("headquarters"),
86- p1:get_buildings("warehouse")
87+ p1:get_buildings("atlanteans_headquarters"),
88+ p1:get_buildings("atlanteans_warehouse")
89 )
90 local rv = 0
91 for idx,wh in ipairs(whs) do
92
93=== modified file 'campaigns/atl01.wmf/scripting/mission_thread.lua'
94--- campaigns/atl01.wmf/scripting/mission_thread.lua 2014-10-31 11:36:29 +0000
95+++ campaigns/atl01.wmf/scripting/mission_thread.lua 2015-11-03 18:26:36 +0000
96@@ -46,7 +46,8 @@
97
98 local o = add_campaign_objective(obj_horsefarm_and_warehouse)
99 while not check_for_buildings(p1, {
100- horsefarm = 1, warehouse = 1,
101+ atlanteans_horsefarm = 1,
102+ atlanteans_warehouse = 1,
103 }) do sleep(2384) end
104 o.done = true
105 end
106@@ -56,7 +57,8 @@
107
108 local o = add_campaign_objective(obj_make_training_buildings)
109 while not check_for_buildings(p1, {
110- dungeon = 1, labyrinth = 1
111+ atlanteans_dungeon = 1,
112+ atlanteans_labyrinth = 1
113 }) do sleep(3874) end
114 o.done = true
115
116@@ -68,9 +70,14 @@
117
118 local o = add_campaign_objective(obj_make_heavy_industry_and_mining)
119 while not check_for_buildings(p1, {
120- coalmine = 1, ironmine = 1, goldmine = 1, crystalmine = 1,
121- smelting_works = 1, weaponsmithy = 1, armorsmithy = 1,
122- toolsmithy = 1,
123+ atlanteans_coalmine = 1,
124+ atlanteans_ironmine = 1,
125+ atlanteans_goldmine = 1,
126+ atlanteans_crystalmine = 1,
127+ atlanteans_smelting_works = 1,
128+ atlanteans_weaponsmithy = 1,
129+ atlanteans_armorsmithy = 1,
130+ atlanteans_toolsmithy = 1,
131 }) do sleep(3478) end
132 o.done = true
133
134@@ -88,10 +95,15 @@
135
136 local o = add_campaign_objective(obj_make_food_infrastructure)
137 while not check_for_buildings(p1, {
138- farm = 1, blackroot_farm = 1,
139- sawmill = 1, well = 1, bakery = 1,
140- hunters_house = 1, fishers_house = 1,
141- fish_breeders_house = 1, smokery = 2,
142+ atlanteans_farm = 1,
143+ atlanteans_blackroot_farm = 1,
144+ atlanteans_sawmill = 1,
145+ atlanteans_well = 1,
146+ atlanteans_bakery = 1,
147+ atlanteans_hunters_house = 1,
148+ atlanteans_fishers_house = 1,
149+ atlanteans_fishbreeders_house = 1,
150+ atlanteans_smokery = 2,
151 }) do sleep(2789) end
152 o.done = true
153
154@@ -106,7 +118,9 @@
155 local o = add_campaign_objective(obj_spidercloth_production)
156
157 while not check_for_buildings(p1, {
158- spiderfarm = 1, ["gold-spinning-mill"] = 1, ["weaving-mill"] = 1
159+ atlanteans_spiderfarm = 1,
160+ atlanteans_gold_spinning_mill = 1,
161+ atlanteans_weaving_mill = 1
162 }) do sleep(6273) end
163 o.done = true
164
165@@ -121,10 +135,10 @@
166 expand_objective = add_campaign_objective(obj_expand)
167
168 while not check_for_buildings(p1, {
169- woodcutters_house = 2,
170- foresters_house = 2,
171- quarry = 1,
172- sawmill = 1,
173+ atlanteans_woodcutters_house = 2,
174+ atlanteans_foresters_house = 2,
175+ atlanteans_quarry = 1,
176+ atlanteans_sawmill = 1,
177 }) do sleep(3731) end
178 o.done = true
179
180@@ -183,7 +197,7 @@
181 local bobs = f.bobs
182 if #bobs then
183 for idx, b in ipairs(bobs) do
184- if b.descr.type_name == "ship" then
185+ if b.descr.type_name == "atlanteans_ship" then
186 nships = nships + 1
187 end
188 end
189@@ -215,7 +229,7 @@
190 wait_for_roadbuilding_and_scroll(f)
191 msg_boxes(field_flooded_msg)
192 add_campaign_objective(obj_build_ships)
193- p1:allow_buildings{"shipyard"}
194+ p1:allow_buildings{"atlanteans_shipyard"}
195 run(check_for_ships)
196 end)
197 end
198
199=== modified file 'campaigns/atl01.wmf/scripting/starting_conditions.lua'
200--- campaigns/atl01.wmf/scripting/starting_conditions.lua 2014-10-03 08:58:44 +0000
201+++ campaigns/atl01.wmf/scripting/starting_conditions.lua 2015-11-03 18:26:36 +0000
202@@ -7,21 +7,21 @@
203 -- ===============
204
205 p1:allow_buildings("all")
206-p1:forbid_buildings{"shipyard"}
207+p1:forbid_buildings{"atlanteans_shipyard"}
208
209 -- A default headquarters
210-include "tribes/atlanteans/scripting/sc00_headquarters.lua"
211-init.func(p1) -- defined in sc00_headquarters
212+include "tribes/scripting/starting_conditions/atlanteans/headquarters.lua"
213+init.func(p1) -- defined in headquarters
214
215 local hq = wl.Game().map.player_slots[1].starting_field.immovable
216-hq:set_workers{shipwright=1}
217+hq:set_workers{atlanteans_shipwright=1}
218
219 -- Place some buildings
220 prefilled_buildings(p1,
221- {"high_tower", first_tower_field.x, first_tower_field.y,
222- soldiers = { [{0,0,0,0}] = 1 }
223- },
224- {"high_tower", second_tower_field.x, second_tower_field.y,
225- soldiers = { [{0,0,0,0}] = 1 }
226- }
227+ {"atlanteans_tower_high", first_tower_field.x, first_tower_field.y,
228+ soldiers = { [{0,0,0,0}] = 1 }
229+ },
230+ {"atlanteans_tower_high", second_tower_field.x, second_tower_field.y,
231+ soldiers = { [{0,0,0,0}] = 1 }
232+ }
233 )
234
235=== modified file 'campaigns/atl01.wmf/scripting/texts.lua'
236--- campaigns/atl01.wmf/scripting/texts.lua 2015-09-11 17:38:01 +0000
237+++ campaigns/atl01.wmf/scripting/texts.lua 2015-11-03 18:26:36 +0000
238@@ -45,7 +45,7 @@
239 title = _"Expand your territory and explore",
240 number = 1,
241 body = objective_text(_"Expand and Explore",
242- _([[The island is huge and as long as we are not sure that we are alone here, we cannot relax. Explore and conquer it, this is the only way to protect us from threats on the island and from Atlantis.]]) .. paragraphdivider() ..
243+ _([[The island is huge and as long as we are not sure that we are alone here, we cannot relax. Explore and conquer it, this is the only way to protect us from threats on the island and from Atlantis.]]) .. paragraphdivider() ..
244 listitem_bullet(_[[Build military sites to expand your territory]])
245 ),
246 }
247@@ -55,12 +55,12 @@
248 title = _"Establish a solid food production",
249 number = 10,
250 body = objective_text(_"Food Production",
251- _[[Food is very important for mines and military training areas. Establish a well working food environment by building at least one farm, one blackroot farm and a mill. The two kinds of flour together with water from a well will be baked into bread in a bakery, so build a bakery and a well, too.]] .. paragraphdivider() ..
252+ _[[Food is very important for mines and military training areas. Establish a well working food environment by building at least one farm, one blackroot farm and a mill. The two kinds of flour together with water from a well will be baked into bread in a bakery, so build a bakery and a well, too.]] .. paragraphdivider() ..
253 _[[The other two important food wares are smoked fish and smoked meat. Raw meat is delivered from a hunter. A fisher gets the fish out of the sea while a fish breeder makes sure that a school of fish does not go extinct by breeding more. Make sure that there are always fish left, otherwise the fish breeder won’t be able to breed new ones. The smoking happens in a smokery, you will need at least two of those.]] .. paragraphdivider() ..
254 listitem_bullet(_[[Build a farm and a blackroot farm]]) ..
255- listitem_bullet(_[[Build a mill to make cornflour and blackroot flour]]) ..
256+ listitem_bullet(_[[Build a mill to make cornmeal and blackroot flour]]) ..
257 listitem_bullet(_[[Build a well]]) ..
258- listitem_bullet(_[[Build a bakery to bake bread from cornflour, blackroot flour and water]]) ..
259+ listitem_bullet(_[[Build a bakery to bake bread from cornmeal, blackroot flour and water]]) ..
260 listitem_bullet(_[[Build a hunter’s house to get raw meat]]) ..
261 listitem_bullet(_[[Build a fisher’s house close to water to get raw fish]]) ..
262 listitem_bullet(_[[Build a fish breeder’s house close to the fisher to make sure the fish do not die out]]) ..
263@@ -73,7 +73,7 @@
264 title = _"Build a spider farm and a weaving mill",
265 number = 3,
266 body = objective_text(_"Spidercloth Production",
267- _[[The weavers produce spidercloth and tabards in the weaving mill. Spidercloth is needed for the construction of some buildings and clothing, while tabards are the uniforms of soldiers. The weaving mill needs gold yarn and spideryarn as raw material. Spideryarn is produced by the spider farm, while gold yarn is produced by the gold spinning mill out of gold.]] .. paragraphdivider() ..
268+ _[[The weavers produce spidercloth and tabards in the weaving mill. Spidercloth is needed for the construction of some buildings and clothing, while tabards are the uniforms of soldiers. The weaving mill needs gold thread and spider silk as raw material. Spider silk is produced by the spider farm, while gold thread is produced by the gold spinning mill out of gold.]] .. paragraphdivider() ..
269 listitem_bullet(_[[Build a weaving mill]]) ..
270 listitem_bullet(_[[Build a spider farm]]) ..
271 listitem_bullet(_[[Build a gold spinning mill]])
272@@ -85,7 +85,7 @@
273 title = _"Build industry and mines",
274 number = 5,
275 body = objective_text(_"Industry and Mines",
276- _[[Iron ore, gold ore and coal are mined in the respective mines. The crystal mine will dig for quartz and diamonds – all of them are precious materials and very rarely found. It will produce a lot of stone while searching for them.]] .. paragraphdivider() ..
277+ _[[Iron ore, gold ore and coal are mined in the respective mines. The crystal mine will dig for quartz and diamonds – all of them are precious materials and very rarely found. It will produce a lot of stone while searching for them.]] .. paragraphdivider() ..
278 listitem_bullet(_[[The ores have to be smelted at a smelting works before they can be used. The refined materials are then used in the weapon smithy, the armor smithy and the toolsmithy.]]) .. paragraphdivider() ..
279 listitem_bullet(_[[Build a mine of each type. Make sure to send geologists to the mountain first.]]) ..
280 listitem_bullet(_[[Build a smelting works]]) ..
281@@ -99,7 +99,7 @@
282 title = _"Build training sites for soldiers",
283 number = 2,
284 body = objective_text(_"Soldier Training Sites",
285- _[[Like all other tribes, the Atlanteans are also able to train soldiers: the dungeon trains attack – the major attribute of the Atlanteans – and the labyrinth trains evasion, health and defense. The items produced by the industry are used to train better soldiers in the two training sites.]] .. paragraphdivider() ..
286+ _[[Like all other tribes, the Atlanteans are also able to train soldiers: the dungeon trains attack – the major attribute of the Atlanteans – and the labyrinth trains evasion, health and defense. The items produced by the industry are used to train better soldiers in the two training sites.]] .. paragraphdivider() ..
287 listitem_bullet(_[[Build a dungeon and a labyrinth]])
288 )
289 }
290@@ -109,7 +109,7 @@
291 title = _"Build a warehouse and a horse farm",
292 number = 2,
293 body = objective_text(_"Warehouse and Horse Farm",
294- _[[As your road network gets longer and more complicated, you should employ horses to help out your carriers. Horses are bred at horse farms using water and corn. A warehouse will also help to ensure that your transportation system does not collapse.]] .. paragraphdivider() ..
295+ _[[As your road network gets longer and more complicated, you should employ horses to help out your carriers. Horses are bred at horse farms using water and corn. A warehouse will also help to ensure that your transportation system does not collapse.]] .. paragraphdivider() ..
296 listitem_bullet(_[[Build a warehouse]]) ..
297 listitem_bullet(_[[Build a horse farm]])
298 )
299@@ -120,7 +120,7 @@
300 title = _"Build 3 ships to escape from the island",
301 number = 1,
302 body = objective_text(_"Escape From the Island",
303- _[[There is a lake at the top of the island. Build three ships in these waters and you might be able to rescue your people before the island is swallowed completely by the ocean.]] .. paragraphdivider() ..
304+ _[[There is a lake at the top of the island. Build three ships in these waters and you might be able to rescue your people before the island is swallowed completely by the ocean.]] .. paragraphdivider() ..
305 listitem_bullet(_[[Build a shipyard close to the lake to start building ships]])
306 )
307 }
308@@ -131,157 +131,157 @@
309
310 -- This is an array or message descriptions
311 initial_messages = {
312- {
313- title = _"Proud to the Death",
314- body = rt(
315- h1(_"Favored by the God") ..
316- -- TRANSLATORS: Foreword
317- p(_([[On the hidden and lost island of Atlantis, a proud tribe settled since the world was very young. Ruled by the bloodline of King Ajanthul – the first human to be empowered by the sea god Lutas to breathe above sea level – and the wise clerics, who provided the link to Lutas – they prospered and became civilized.]])) ..
318- -- TRANSLATORS: Foreword
319- p(_([[This story is taking place during the reign of King Askandor, the 43rd successor of King Ajanthul. He had been a good king, ruling Atlantis with wisdom and foresight. But with age, he became afraid of dying and so he began looking for a cure for death even though most clerics warned him against it. Some said that endless life was only for the gods and that to seek for it was forbidden.]]))
320- )
321- },
322- {
323- title = _"Disgraced Before the God",
324- body = rt(
325- h1(_"The God’s Punishment") ..
326- -- TRANSLATORS: Foreword
327- p(_([[But all seemed well. Only the horses seemed to feel something was wrong. During the nights, they went crazy and were full of fear. It was not long before the horse breeder Xydra figured out what was wrong with them: the sea level in front of their stable was rising with ever increasing speed.]])) ..
328- -- TRANSLATORS: Foreword
329- p(_([[The clerics retreated into meditation and the reason for the rising water was soon to be found: the god Lutas had lost faith in the Atlanteans because of the boldness of their king. He decided to withdraw the rights that were granted to King Ajanthul and his children. And so, he called them back below the sea again.]]))
330- )
331- },
332- {
333- title = _"Uproar and Confusion",
334- body = rt(
335- h1(_"Emerging Chaos...") ..
336- -- TRANSLATORS: Foreword
337- p(_([[Guilt-ridden, the king committed suicide. Without a monarch, the people turned to the clerics, but they had no substantial help to offer. Most accepted their fate while others tried to change the god’s mind by offering animals in his temple. But to no avail...]])) ..
338- -- TRANSLATORS: Foreword
339- p(_([[Jundlina, the late king’s daughter and the highest priestess of the god was the most determined cleric. As countless offerings didn’t change the situation, she convinced herself that to soothe the god, an offer of great personal value was needed. So she offered him her most beloved: her husband, the father of her only child.]])) ..
340- -- TRANSLATORS: Foreword
341- p(_([[But not even this changed the mind of the god. The water kept on rising. Nearly driven insane by guilt, pain and anger, Jundlina became a heretic: Secretly, she gathered people of the common folk who were not in line with the decision of the clerics to accept the god’s will. Together with them, she set the temple on fire and stole a ship to flee from the god’s influence over Atlantis. This small group started praying to Satul, the fire god and the worst enemy of Lutas.]])) ..
342- -- TRANSLATORS: Foreword
343- p(_([[Leaving the dying Atlantis and their past behind, they started on a quest to find a place sheltered by the fire and protected from the sea.]]))
344- )
345- },
346+ {
347+ title = _"Proud to the Death",
348+ body = rt(
349+ h1(_"Favored by the God") ..
350+ -- TRANSLATORS: Foreword
351+ p(_([[On the hidden and lost island of Atlantis, a proud tribe settled since the world was very young. Ruled by the bloodline of King Ajanthul – the first human to be empowered by the sea god Lutas to breathe above sea level – and the wise clerics, who provided the link to Lutas – they prospered and became civilized.]])) ..
352+ -- TRANSLATORS: Foreword
353+ p(_([[This story is taking place during the reign of King Askandor, the 43rd successor of King Ajanthul. He had been a good king, ruling Atlantis with wisdom and foresight. But with age, he became afraid of dying and so he began looking for a cure for death even though most clerics warned him against it. Some said that endless life was only for the gods and that to seek for it was forbidden.]]))
354+ )
355+ },
356+ {
357+ title = _"Disgraced Before the God",
358+ body = rt(
359+ h1(_"The God’s Punishment") ..
360+ -- TRANSLATORS: Foreword
361+ p(_([[But all seemed well. Only the horses seemed to feel something was wrong. During the nights, they went crazy and were full of fear. It was not long before the horse breeder Xydra figured out what was wrong with them: the sea level in front of their stable was rising with ever increasing speed.]])) ..
362+ -- TRANSLATORS: Foreword
363+ p(_([[The clerics retreated into meditation and the reason for the rising water was soon to be found: the god Lutas had lost faith in the Atlanteans because of the boldness of their king. He decided to withdraw the rights that were granted to King Ajanthul and his children. And so, he called them back below the sea again.]]))
364+ )
365+ },
366+ {
367+ title = _"Uproar and Confusion",
368+ body = rt(
369+ h1(_"Emerging Chaos...") ..
370+ -- TRANSLATORS: Foreword
371+ p(_([[Guilt-ridden, the king committed suicide. Without a monarch, the people turned to the clerics, but they had no substantial help to offer. Most accepted their fate while others tried to change the god’s mind by offering animals in his temple. But to no avail...]])) ..
372+ -- TRANSLATORS: Foreword
373+ p(_([[Jundlina, the late king’s daughter and the highest priestess of the god was the most determined cleric. As countless offerings didn’t change the situation, she convinced herself that to soothe the god, an offer of great personal value was needed. So she offered him her most beloved: her husband, the father of her only child.]])) ..
374+ -- TRANSLATORS: Foreword
375+ p(_([[But not even this changed the mind of the god. The water kept on rising. Nearly driven insane by guilt, pain and anger, Jundlina became a heretic: Secretly, she gathered people of the common folk who were not in line with the decision of the clerics to accept the god’s will. Together with them, she set the temple on fire and stole a ship to flee from the god’s influence over Atlantis. This small group started praying to Satul, the fire god and the worst enemy of Lutas.]])) ..
376+ -- TRANSLATORS: Foreword
377+ p(_([[Leaving the dying Atlantis and their past behind, they started on a quest to find a place sheltered by the fire and protected from the sea.]]))
378+ )
379+ },
380 } -- end of initial messages.
381
382 first_briefing_messages = {
383- {
384- title = _"The Princess’ Memoir",
385- body = jundlina(_"Jundlina Writes Down Her Memories",
386- -- TRANSLATORS: Jundlina - Diary
387- _([[We left Atlantis and sailed east. We entered the forbidden sea on the sixth day without noticing any pursuers from Atlantis and without Lutas having smashed our ship. Now, we are out of his reach. One day later, we sighted an island which seems to have one of these fire spitting mountains on it. I deemed this a sign from the fire god and we landed on its shore.]])
388- .. paragraphdivider() ..
389- -- TRANSLATORS: Jundlina - Diary
390- _([[We spent the last week building two watchtowers on the mountains close to our landing area; and, of course, a hall for us all. We have very talented constructors in our group – still, the buildings do not match the art we had on Atlantis. I hope they will withstand the next rain. At least, the towers will warn us if a ship from Atlantis follows us and if the island is inhabited, we will see attackers a long time before they arrive.]])
391- .. paragraphdivider() ..
392- -- TRANSLATORS: Jundlina - Diary
393- _([[We have established ourselves on this island. The next step is now to make it a home. I reckon we need to establish a sustainable economy and to explore our surroundings. I called for specialists and will follow their advice.]]))
394- },
395- {
396- title = _"Loftomor and Sidolus Arrive",
397- body = jundlina( _"Jundlina",
398- -- TRANSLATORS: Jundlina
399- _([[May Satul warm you both. Loftomor, you have been the island’s most renowned architect. Sidolus, you are a seasoned warrior and strategist. I have called you before me to seek your counsel: what needs to be done to make this our new home?]]))
400- },
401- {
402- title = _"Loftomor Speaks",
403- body = loftomor(
404- -- TRANSLATORS: Loftomor
405- _([[May Satul warm you, Jundlina! The most important things for building a settlement are the building materials. There are some trees here, so we should build housings for some woodcutters and of course also for foresters, so we will not run out of trees. Oh, and we mustn’t forget the sawmill, for most buildings can’t be made out of logs alone. Stronger buildings also need stone, but there is plenty to the north-east of here; we just need to build a quarry, and my stonemasons will go to work promptly.]]))
406- .. new_objectives(obj_ensure_build_wares_production)
407- },
408- {
409- title = _"Sidolus Speaks",
410- body = sidolus(
411- -- TRANSLATORS: Sidolus
412- _([[May Satul warm you, Jundlina! I agree with what Loftomor proposes. We need a good supply of building materials for we have to expand our territory swiftly. I will not feel safe on this island as long as we have not seen all its shores it. I brought plenty of good men from Atlantis. The military might is available. We only need some housing to live in.]]))
413- .. new_objectives(obj_expand)
414- }
415+ {
416+ title = _"The Princess’ Memoir",
417+ body = jundlina(_"Jundlina Writes Down Her Memories",
418+ -- TRANSLATORS: Jundlina - Diary
419+ _([[We left Atlantis and sailed east. We entered the forbidden sea on the sixth day without noticing any pursuers from Atlantis and without Lutas having smashed our ship. Now, we are out of his reach. One day later, we sighted an island which seems to have one of these fire spitting mountains on it. I deemed this a sign from the fire god and we landed on its shore.]])
420+ .. paragraphdivider() ..
421+ -- TRANSLATORS: Jundlina - Diary
422+ _([[We spent the last week building two watchtowers on the mountains close to our landing area; and, of course, a hall for us all. We have very talented constructors in our group – still, the buildings do not match the art we had on Atlantis. I hope they will withstand the next rain. At least, the towers will warn us if a ship from Atlantis follows us and if the island is inhabited, we will see attackers a long time before they arrive.]])
423+ .. paragraphdivider() ..
424+ -- TRANSLATORS: Jundlina - Diary
425+ _([[We have established ourselves on this island. The next step is now to make it a home. I reckon we need to establish a sustainable economy and to explore our surroundings. I called for specialists and will follow their advice.]]))
426+ },
427+ {
428+ title = _"Loftomor and Sidolus Arrive",
429+ body = jundlina( _"Jundlina",
430+ -- TRANSLATORS: Jundlina
431+ _([[May Satul warm you both. Loftomor, you have been the island’s most renowned architect. Sidolus, you are a seasoned warrior and strategist. I have called you before me to seek your counsel: what needs to be done to make this our new home?]]))
432+ },
433+ {
434+ title = _"Loftomor Speaks",
435+ body = loftomor(
436+ -- TRANSLATORS: Loftomor
437+ _([[May Satul warm you, Jundlina! The most important things for building a settlement are the building materials. There are some trees here, so we should build housings for some woodcutters and of course also for foresters, so we will not run out of trees. Oh, and we mustn’t forget the sawmill, for most buildings can’t be made out of logs alone. Stronger buildings also need stone, but there is plenty to the north-east of here; we just need to build a quarry, and my stonemasons will go to work promptly.]]))
438+ .. new_objectives(obj_ensure_build_wares_production)
439+ },
440+ {
441+ title = _"Sidolus Speaks",
442+ body = sidolus(
443+ -- TRANSLATORS: Sidolus
444+ _([[May Satul warm you, Jundlina! I agree with what Loftomor proposes. We need a good supply of building materials for we have to expand our territory swiftly. I will not feel safe on this island as long as we have not seen all its shores it. I brought plenty of good men from Atlantis. The military might is available. We only need some housing to live in.]]))
445+ .. new_objectives(obj_expand)
446+ }
447 }
448
449 food_story_message = {
450- {
451- title = _"Jundlina is Satisfied",
452- body = jundlina(_"Jundlina’s Memoirs",
453- -- TRANSLATORS: Jundlina
454- _([[Our building infrastructure is finished and I spent some days making sure that everybody is working well together. Now, there are other pressing matters. I called Colionder, my personal cook, before me to get his help with sorting some things out.]]))
455- },
456- {
457- title = _"Colionder Arrives",
458- body = colionder(
459- -- TRANSLATORS: Colionder
460- _[[May Satul warm you, Jundlina. Can I be of any service to you or the god?]])
461- },
462- {
463- title = _"Jundlina Replies",
464- body = jundlina(_"Jundlina",
465- -- TRANSLATORS: Jundlina
466- _([[May Satul warm you too, Colionder. Yes, I wondered if there is a way that we could centralize our food production. We lose a lot of productivity because our people are accustomed to making their own food. I feel if we could split responsibilities, it would be better for us all. I want your thoughts on this.]]))
467- },
468- {
469- title = _"Colionder is in Thought",
470- body = colionder(
471- -- TRANSLATORS: Colionder
472- _([[Ahh, but I think this is impossible to change. The preparing and eating of food is something deeply ingrained in us Atlanteans – it is a ceremony that we just need for our well-being. So I guess we cannot take this away from the individuals completely.]])
473- .. paragraphdivider() ..
474- -- TRANSLATORS: Colionder
475- _([[But we might find a compromise in between: for me, making bread is a troublesome task. Grinding the blackroot and corn to flour and then baking the bread is tedious and boring; I feel a more industrial approach would be helpful here. I for one would love to just have fresh bread delivered to my house every day.]])
476- .. paragraphdivider() ..
477- -- TRANSLATORS: Colionder
478- _([[Oooh and even more important: the smoking of fish and meat to cleanse them and improve their taste is terrible. My house is full of smoke and stinks for weeks afterwards. Don’t you think that this could be done in a special building where the side effects do not matter? I think those two things would be accepted by the people and would reduce the cooking time without taking away the ritual.]]))
479- },
480- {
481- title = _"Jundlina Agrees",
482- body = jundlina(_"Jundlina Agrees",
483- -- TRANSLATORS: Jundlina
484- _([[Your words sound wise to me, Colionder. So be it then.]]))
485- .. new_objectives(obj_make_food_infrastructure)
486- },
487+ {
488+ title = _"Jundlina is Satisfied",
489+ body = jundlina(_"Jundlina’s Memoirs",
490+ -- TRANSLATORS: Jundlina
491+ _([[Our building infrastructure is finished and I spent some days making sure that everybody is working well together. Now, there are other pressing matters. I called Colionder, my personal cook, before me to get his help with sorting some things out.]]))
492+ },
493+ {
494+ title = _"Colionder Arrives",
495+ body = colionder(
496+ -- TRANSLATORS: Colionder
497+ _[[May Satul warm you, Jundlina. Can I be of any service to you or the god?]])
498+ },
499+ {
500+ title = _"Jundlina Replies",
501+ body = jundlina(_"Jundlina",
502+ -- TRANSLATORS: Jundlina
503+ _([[May Satul warm you too, Colionder. Yes, I wondered if there is a way that we could centralize our food production. We lose a lot of productivity because our people are accustomed to making their own food. I feel if we could split responsibilities, it would be better for us all. I want your thoughts on this.]]))
504+ },
505+ {
506+ title = _"Colionder is in Thought",
507+ body = colionder(
508+ -- TRANSLATORS: Colionder
509+ _([[Ahh, but I think this is impossible to change. The preparing and eating of food is something deeply ingrained in us Atlanteans – it is a ceremony that we just need for our well-being. So I guess we cannot take this away from the individuals completely.]])
510+ .. paragraphdivider() ..
511+ -- TRANSLATORS: Colionder
512+ _([[But we might find a compromise in between: for me, making bread is a troublesome task. Grinding the blackroot and corn to flour and then baking the bread is tedious and boring; I feel a more industrial approach would be helpful here. I for one would love to just have fresh bread delivered to my house every day.]])
513+ .. paragraphdivider() ..
514+ -- TRANSLATORS: Colionder
515+ _([[Oooh and even more important: the smoking of fish and meat to cleanse them and improve their taste is terrible. My house is full of smoke and stinks for weeks afterwards. Don’t you think that this could be done in a special building where the side effects do not matter? I think those two things would be accepted by the people and would reduce the cooking time without taking away the ritual.]]))
516+ },
517+ {
518+ title = _"Jundlina Agrees",
519+ body = jundlina(_"Jundlina Agrees",
520+ -- TRANSLATORS: Jundlina
521+ _([[Your words sound wise to me, Colionder. So be it then.]]))
522+ .. new_objectives(obj_make_food_infrastructure)
523+ },
524 }
525
526 food_story_ended_messages = {
527 {
528 title = _"Jundlina is Satisfied",
529 body = jundlina(_"Jundlina is Reviewing the Reports",
530- -- TRANSLATORS: Jundlina
531- _([[Seems like our food production is finished and everybody is working together nicely. It is really starting to feel like home here.]]))
532+ -- TRANSLATORS: Jundlina
533+ _([[Seems like our food production is finished and everybody is working together nicely. It is really starting to feel like home here.]]))
534 }
535 }
536
537 spidercloth_messages = {
538 {
539- title = _"A Man Comes to Jundlina",
540- body = opol(
541- -- TRANSLATORS: Opol
542- _([[May Satul warm you, Jundlina. My name is Opol, and I am the highest weaver of the guild abandoning Atlantis and Lutas with you. I come with sad news indeed: we have no more spidercloth. Not a single piece is to be found in our warehouses. Could you not help the weavers’ guild by arranging the building of a weaving mill and a spider farm? The spiders deliver the finest silk and we will produce the finest spidercloth from it.]])
543- .. paragraphdivider() ..
544- -- TRANSLATORS: Opol
545- _([[We offer to also produce the tabards for young soldiers and the golden tabards for officers for you in exchange. You will need them for sure as soon as you want to recruit new soldiers.]]))
546- },
547- {
548- title = _"Jundlina Replies",
549- body = jundlina(_"Jundlina",
550- -- TRANSLATORS: Jundlina
551- _([[May Satul warm you too, Opol. I wanted to delay production of spidercloth, but I understand your urgency. Your suggestion sounds fair to me, I will build your weaving mill and spider farm. I will also build a gold spinning mill so that the golden tabards you make will not be golden by name alone.]]))
552- .. new_objectives(obj_spidercloth_production)
553- }
554+ title = _"A Man Comes to Jundlina",
555+ body = opol(
556+ -- TRANSLATORS: Opol
557+ _([[May Satul warm you, Jundlina. My name is Opol, and I am the highest weaver of the guild abandoning Atlantis and Lutas with you. I come with sad news indeed: we have no more spidercloth. Not a single piece is to be found in our warehouses. Could you not help the weavers’ guild by arranging the building of a weaving mill and a spider farm? The spiders deliver the finest silk and we will produce the finest spidercloth from it.]])
558+ .. paragraphdivider() ..
559+ -- TRANSLATORS: Opol
560+ _([[We offer to also produce the tabards for young soldiers and the golden tabards for officers for you in exchange. You will need them for sure as soon as you want to recruit new soldiers.]]))
561+ },
562+ {
563+ title = _"Jundlina Replies",
564+ body = jundlina(_"Jundlina",
565+ -- TRANSLATORS: Jundlina
566+ _([[May Satul warm you too, Opol. I wanted to delay production of spidercloth, but I understand your urgency. Your suggestion sounds fair to me, I will build your weaving mill and spider farm. I will also build a gold spinning mill so that the golden tabards you make will not be golden by name alone.]]))
567+ .. new_objectives(obj_spidercloth_production)
568+ }
569 }
570
571 spidercloth_story_ended_messages = {
572 {
573 title = _"Opol Seeks Out Jundlina",
574 body = opol(
575- -- TRANSLATORS: Opol
576- _([[May Satul warm you, Jundlina! The weaving mill, gold spinning mill and spider farm buildings are complete and are starting their work at this very moment. The weavers’ guild is very grateful for your support and we will stand by our word and deliver the first tabard very soon.]]))
577+ -- TRANSLATORS: Opol
578+ _([[May Satul warm you, Jundlina! The weaving mill, gold spinning mill and spider farm buildings are complete and are starting their work at this very moment. The weavers’ guild is very grateful for your support and we will stand by our word and deliver the first tabard very soon.]]))
579 },
580 {
581 title = _"Jundlina Replies",
582 body = jundlina(_"Jundlina",
583- -- TRANSLATORS: Jundlina
584- _([[This is good news indeed, Opol. Our economy is developing very well. Go back to your work now, Opol, and may Satul warm you and all your guild members!]]))
585+ -- TRANSLATORS: Jundlina
586+ _([[This is good news indeed, Opol. Our economy is developing very well. Go back to your work now, Opol, and may Satul warm you and all your guild members!]]))
587 }
588 }
589
590@@ -290,15 +290,15 @@
591 {
592 title = _"Sidolus Seeks Out Jundlina",
593 body = sidolus(
594- -- TRANSLATORS: Sidolus
595- _([[May Satul warm you, Jundlina. Have you considered mining for resources in the mountains around us? We are running short of quartz and diamonds for our buildings. Also, we could use more iron, gold and especially coal. If we find an ample supply of those commodities, we could start producing weapons and tools; this would help enormously. Of course, we would need smelters, a weapon smithy, an armor smithy and a toolsmithy. And maybe even more.]]))
596+ -- TRANSLATORS: Sidolus
597+ _([[May Satul warm you, Jundlina. Have you considered mining for resources in the mountains around us? We are running short of quartz and diamonds for our buildings. Also, we could use more iron, gold and especially coal. If we find an ample supply of those commodities, we could start producing weapons and tools; this would help enormously. Of course, we would need smelters, a weapon smithy, an armor smithy and a toolsmithy. And maybe even more.]]))
598 },
599 {
600 title = _"Jundlina Replies",
601 body = jundlina(_"Jundlina Nods",
602- -- TRANSLATORS: Jundlina
603- _([[I have considered this, Sidolus. I think it is about time. We will make this a priority for now. You shall get your industry soon!]]))
604- .. new_objectives(obj_make_heavy_industry_and_mining)
605+ -- TRANSLATORS: Jundlina
606+ _([[I have considered this, Sidolus. I think it is about time. We will make this a priority for now. You shall get your industry soon!]]))
607+ .. new_objectives(obj_make_heavy_industry_and_mining)
608 },
609 }
610
611@@ -306,21 +306,21 @@
612 {
613 title = _"Jundlina Summons Sidolus",
614 body = jundlina(_"Jundlina is Angry",
615- -- TRANSLATORS: Jundlina
616- _([[What is this I hear, Sidolus? I received words about your soldiers misbehaving and bullying the common folk. What is this nonsense all about? They are servants for the common good and must not misuse their powers. This is inexcusable! Explain this, if you will!]]))
617+ -- TRANSLATORS: Jundlina
618+ _([[What is this I hear, Sidolus? I received words about your soldiers misbehaving and bullying the common folk. What is this nonsense all about? They are servants for the common good and must not misuse their powers. This is inexcusable! Explain this, if you will!]]))
619 },
620 {
621 title = _"Sidolus Seems Contrite",
622 body = sidolus(
623- -- TRANSLATORS: Sidolus
624- _([[I agree with you and I have punished the troublemakers severely. But it is very difficult to keep my men quiet: they are bored and have nothing to do. I would like to ramp up their drill. I think more routine in their life would keep them occupied and focused on their duties. I would need a dungeon and a labyrinth for them. I have the plans ready, but I guess they won’t come cheap.]]))
625+ -- TRANSLATORS: Sidolus
626+ _([[I agree with you and I have punished the troublemakers severely. But it is very difficult to keep my men quiet: they are bored and have nothing to do. I would like to ramp up their drill. I think more routine in their life would keep them occupied and focused on their duties. I would need a dungeon and a labyrinth for them. I have the plans ready, but I guess they won’t come cheap.]]))
627 },
628 {
629 title = _"Jundlina Replies",
630 body = jundlina(_"Jundlina",
631- -- TRANSLATORS: Jundlina
632- _([[I do not fear the cost and labor as long as it keeps your people at bay. You shall get your buildings. But note that I will not tolerate any rogue soldier; if similar things happen again, I will make you responsible for them. Dismissed.]]))
633- .. new_objectives(obj_make_training_buildings)
634+ -- TRANSLATORS: Jundlina
635+ _([[I do not fear the cost and labor as long as it keeps your people at bay. You shall get your buildings. But note that I will not tolerate any rogue soldier; if similar things happen again, I will make you responsible for them. Dismissed.]]))
636+ .. new_objectives(obj_make_training_buildings)
637 }
638 }
639
640@@ -328,8 +328,8 @@
641 {
642 title = _"Jundlina Received a Letter",
643 body = jundlina(_"Jundlina",
644- -- TRANSLATORS: Jundlina
645- _([[I received an invitation from Sidolus. The first day of training in the newly finished labyrinth will be tomorrow. The dungeon is done as well and will start its work soon. I am looking forward to tomorrow; I am very interested in how our soldiers are trained, and I wonder if the additional workload will keep them from bullying the civilian population.]]))
646+ -- TRANSLATORS: Jundlina
647+ _([[I received an invitation from Sidolus. The first day of training in the newly finished labyrinth will be tomorrow. The dungeon is done as well and will start its work soon. I am looking forward to tomorrow; I am very interested in how our soldiers are trained, and I wonder if the additional workload will keep them from bullying the civilian population.]]))
648 }
649 }
650
651@@ -337,12 +337,12 @@
652 {
653 title = _"Jundlina Considers the Economy",
654 body = jundlina(_"Jundlina",
655- -- TRANSLATORS: Jundlina
656- _([[People are complaining about crowded streets and slow transportation. We need to help out our carriers on the roads. I have decided to build a horse farm so that the horses can help with the heavy wares.]])
657- .. paragraphdivider() ..
658- -- TRANSLATORS: Jundlina
659- _([[Another way to take load from our roads is to build warehouses. We have claimed the mountain now, it seems a good idea to have a warehouse on the plateau to avoid having to transport everything up and down the slopes.]]))
660- .. new_objectives(obj_horsefarm_and_warehouse)
661+ -- TRANSLATORS: Jundlina
662+ _([[People are complaining about crowded streets and slow transportation. We need to help out our carriers on the roads. I have decided to build a horse farm so that the horses can help with the heavy wares.]])
663+ .. paragraphdivider() ..
664+ -- TRANSLATORS: Jundlina
665+ _([[Another way to take load from our roads is to build warehouses. We have claimed the mountain now, it seems a good idea to have a warehouse on the plateau to avoid having to transport everything up and down the slopes.]]))
666+ .. new_objectives(obj_horsefarm_and_warehouse)
667 }
668 }
669
670@@ -350,104 +350,104 @@
671 -- Leftover buildings found
672 -- =======================================================================
673 first_leftover_building_found = {
674- {
675- posx = 100000,
676- posy = 0,
677- title = _"A Dangerous Discovery",
678- body = jundlina(_"Jundlina is in Thought",
679- -- TRANSLATORS: Jundlina
680- _([[We found an old building, destroyed and burned by flames. I am very worried about this discovery. The building is not of any kind I’ve ever seen. It is certainly not designed by any Atlantean architect I’ve ever heard about. The building is crude, the assemblage is sloppy. But the materials are very enduring: the wood used for it seemed to have been burned in a strange way before it was used as building material – it is hard as stone.]])
681- .. paragraphdivider() ..
682- -- TRANSLATORS: Jundlina
683- _([[The implications frighten me. Are there others on this island? Where are they then? They work with fire, are they praying to Satul too? Are they friends or foe? And why is the building burned down? Has this island seen war? Is a war being waged on it right now?]])
684- .. paragraphdivider() ..
685- -- TRANSLATORS: Jundlina
686- _([[We must improve our military capabilities. If there are foes on the island, we have to be prepared when we meet them. We should also enforce the fortification of our borders.]]))
687- }
688+ {
689+ posx = 100000,
690+ posy = 0,
691+ title = _"A Dangerous Discovery",
692+ body = jundlina(_"Jundlina is in Thought",
693+ -- TRANSLATORS: Jundlina
694+ _([[We found an old building, destroyed and burned by flames. I am very worried about this discovery. The building is not of any kind I’ve ever seen. It is certainly not designed by any Atlantean architect I’ve ever heard about. The building is crude, the assemblage is sloppy. But the materials are very enduring: the wood used for it seemed to have been burned in a strange way before it was used as building material – it is hard as stone.]])
695+ .. paragraphdivider() ..
696+ -- TRANSLATORS: Jundlina
697+ _([[The implications frighten me. Are there others on this island? Where are they then? They work with fire, are they praying to Satul too? Are they friends or foe? And why is the building burned down? Has this island seen war? Is a war being waged on it right now?]])
698+ .. paragraphdivider() ..
699+ -- TRANSLATORS: Jundlina
700+ _([[We must improve our military capabilities. If there are foes on the island, we have to be prepared when we meet them. We should also enforce the fortification of our borders.]]))
701+ }
702 }
703
704 second_leftover_building_found = {
705- {
706- posx = 100000,
707- posy = 0,
708- title = _"Another Building",
709- body = jundlina(_"Jundlina is Worried",
710- -- TRANSLATORS: Jundlina
711- _([[We found one more building of this strange making. We have yet to see any of its builders. But obviously there has been a community on this island before and obviously it was militarized. I have to check on our military status with my generals. I will not allow that a potential enemy will find us unprepared.]]))
712- }
713+ {
714+ posx = 100000,
715+ posy = 0,
716+ title = _"Another Building",
717+ body = jundlina(_"Jundlina is Worried",
718+ -- TRANSLATORS: Jundlina
719+ _([[We found one more building of this strange making. We have yet to see any of its builders. But obviously there has been a community on this island before and obviously it was militarized. I have to check on our military status with my generals. I will not allow that a potential enemy will find us unprepared.]]))
720+ }
721 }
722
723 third_leftover_building_found = {
724- {
725- posx = 100000,
726- posy = 0,
727- title = _"One More Building",
728- body = jundlina(_"Jundlina is in Thought",
729- -- TRANSLATORS: Jundlina
730- _([[And yet another of these buildings. We know now that the tribe that built them once had complete control over the island. But I am no longer so scared of potential enemies. We know so much of this island already and there is no trace of this old economy to be found. I am starting to relax, but I will not let our guard down as we continue to explore this beautiful island. But without obvious dangers, I am feeling very much at home here already.]]))
731- }
732+ {
733+ posx = 100000,
734+ posy = 0,
735+ title = _"One More Building",
736+ body = jundlina(_"Jundlina is in Thought",
737+ -- TRANSLATORS: Jundlina
738+ _([[And yet another of these buildings. We know now that the tribe that built them once had complete control over the island. But I am no longer so scared of potential enemies. We know so much of this island already and there is no trace of this old economy to be found. I am starting to relax, but I will not let our guard down as we continue to explore this beautiful island. But without obvious dangers, I am feeling very much at home here already.]]))
739+ }
740 }
741
742 -- =======================
743 -- Flooding of the island
744 -- =======================
745 field_flooded_msg = {
746- {
747- posx = 100000,
748- posy = 0,
749- title = _"The Water is Rising!",
750- body = jundlina(_"Jundlina",
751- -- TRANSLATORS: Jundlina
752- _([[May Satul save us! Lutas is still trying to get to us. A scout informed me that the ocean is rising quickly. We have to reach higher ground and evacuate everybody and as much wares as we can from the headquarters up the mountains. How can we escape?]]))
753- },
754- {
755- title = _"A Young Man Approaches",
756- body = ostur(
757- -- TRANSLATORS: Ostur
758- _([[May Satul warm you, Jundlina. My name is Ostur and I construct ships. I have invented a new kind of ship: smaller than those we are used to, but much sturdier. If we build them correctly, I am confident that we can sail a much longer distance with them and maybe escape from Lutas’ influence.]]))
759- },
760- {
761- title = _"Jundlina Replies",
762- body = jundlina(_"Jundlina",
763- -- TRANSLATORS: Jundlina
764- _([[Ostur, we have no time. The water rises too fast, and if we build the ships on the shore they will vanish in the sea before they can float. I fear we are doomed!]]))
765- },
766- {
767- posx = 100000,
768- posy = 0,
769- title = _"Ostur Seems Confident",
770- pre_func = function()
771- local lake_field = map:get_field(75,80)
772- p1:reveal_fields(lake_field:region(10))
773- scroll_smoothly_to(lake_field)
774- sleep(200)
775- end,
776- body = ostur(
777- -- TRANSLATORS: Ostur
778- _([[A friend of mine explored the island on his own and he told me of a big lake at the top of the mountain. I suggest we build the ships in this lake and wait until the island drowns beneath us. Then we can sail away. It is a bold plan, but I think it could work.]]))
779- },
780- {
781- title = _"Jundlina Replies",
782- body = jundlina(_"Jundlina",
783- -- TRANSLATORS: Jundlina
784- _([[Your red hair is a signal from the fire god. I will trust you and support your plan. Our survival lies in your hands now, Ostur.]])
785- .. paragraphdivider() ..
786- -- TRANSLATORS: Jundlina
787- _([[Swift now, we need a house for Ostur next to the lake, and we need planks, logs and spidercloth for the construction there. Forget about everything else, we need those wares on top of the mountain before our warehouses are all swallowed by the sea.]]))
788- .. new_objectives(obj_build_ships)
789- }
790+ {
791+ posx = 100000,
792+ posy = 0,
793+ title = _"The Water is Rising!",
794+ body = jundlina(_"Jundlina",
795+ -- TRANSLATORS: Jundlina
796+ _([[May Satul save us! Lutas is still trying to get to us. A scout informed me that the ocean is rising quickly. We have to reach higher ground and evacuate everybody and as much wares as we can from the headquarters up the mountains. How can we escape?]]))
797+ },
798+ {
799+ title = _"A Young Man Approaches",
800+ body = ostur(
801+ -- TRANSLATORS: Ostur
802+ _([[May Satul warm you, Jundlina. My name is Ostur and I construct ships. I have invented a new kind of ship: smaller than those we are used to, but much sturdier. If we build them correctly, I am confident that we can sail a much longer distance with them and maybe escape from Lutas’ influence.]]))
803+ },
804+ {
805+ title = _"Jundlina Replies",
806+ body = jundlina(_"Jundlina",
807+ -- TRANSLATORS: Jundlina
808+ _([[Ostur, we have no time. The water rises too fast, and if we build the ships on the shore they will vanish in the sea before they can float. I fear we are doomed!]]))
809+ },
810+ {
811+ posx = 100000,
812+ posy = 0,
813+ title = _"Ostur Seems Confident",
814+ pre_func = function()
815+ local lake_field = map:get_field(75,80)
816+ p1:reveal_fields(lake_field:region(10))
817+ scroll_smoothly_to(lake_field)
818+ sleep(200)
819+ end,
820+ body = ostur(
821+ -- TRANSLATORS: Ostur
822+ _([[A friend of mine explored the island on his own and he told me of a big lake at the top of the mountain. I suggest we build the ships in this lake and wait until the island drowns beneath us. Then we can sail away. It is a bold plan, but I think it could work.]]))
823+ },
824+ {
825+ title = _"Jundlina Replies",
826+ body = jundlina(_"Jundlina",
827+ -- TRANSLATORS: Jundlina
828+ _([[Your red hair is a signal from the fire god. I will trust you and support your plan. Our survival lies in your hands now, Ostur.]])
829+ .. paragraphdivider() ..
830+ -- TRANSLATORS: Jundlina
831+ _([[Swift now, we need a house for Ostur next to the lake, and we need planks, logs and spidercloth for the construction there. Forget about everything else, we need those wares on top of the mountain before our warehouses are all swallowed by the sea.]]))
832+ .. new_objectives(obj_build_ships)
833+ }
834 }
835
836 scenario_won = {
837 {
838 title = _"Jundlina is Relieved",
839 body = jundlina(_"Jundlina",
840- -- TRANSLATORS: Jundlina
841- _([[Praise Satul! Ostur, the young ship builder did it. We have three ships – never have I seen sturdier ones – with enough room to carry all of us and some wares too. And this rescue came just in time: Lutas is about to swallow the rest of this island, the water rises faster by the hour. But we can make our escape now and start over in some country farther away...]])
842- .. paragraphdivider() ..
843- -- TRANSLATORS: Jundlina
844- _([[I expect a long journey, but we will find the land of Satul in the end. This is what I promised my people. And myself.]]))
845- .. rt("<p font-size=10> <br></p>" .. h1(_ "Congratulations") ..
846- p(_[[You have won this mission. Continue with the next one or keep playing for as long as you like.]]))
847+ -- TRANSLATORS: Jundlina
848+ _([[Praise Satul! Ostur, the young ship builder did it. We have three ships – never have I seen sturdier ones – with enough room to carry all of us and some wares too. And this rescue came just in time: Lutas is about to swallow the rest of this island, the water rises faster by the hour. But we can make our escape now and start over in some country farther away...]])
849+ .. paragraphdivider() ..
850+ -- TRANSLATORS: Jundlina
851+ _([[I expect a long journey, but we will find the land of Satul in the end. This is what I promised my people. And myself.]]))
852+ .. rt("<p font-size=10> <br></p>" .. h1(_ "Congratulations") ..
853+ p(_[[You have won this mission. Continue with the next one or keep playing for as long as you like.]]))
854 }
855 }
856
857=== modified file 'campaigns/bar01.wmf/scripting/helper_functions.lua'
858--- campaigns/bar01.wmf/scripting/helper_functions.lua 2014-10-17 08:38:24 +0000
859+++ campaigns/bar01.wmf/scripting/helper_functions.lua 2015-11-03 18:26:36 +0000
860@@ -19,4 +19,3 @@
861
862 return scroll_smoothly_to_pos(x - mv.width / 2, y - mv.height / 2, g_T)
863 end
864-
865
866=== modified file 'campaigns/bar01.wmf/scripting/init.lua'
867--- campaigns/bar01.wmf/scripting/init.lua 2014-10-20 13:59:04 +0000
868+++ campaigns/bar01.wmf/scripting/init.lua 2015-11-03 18:26:36 +0000
869@@ -25,4 +25,3 @@
870 include "map:scripting/starting_conditions.lua"
871
872 include "map:scripting/mission_thread.lua"
873-
874
875=== modified file 'campaigns/bar01.wmf/scripting/mission_thread.lua'
876--- campaigns/bar01.wmf/scripting/mission_thread.lua 2014-10-30 11:37:38 +0000
877+++ campaigns/bar01.wmf/scripting/mission_thread.lua 2015-11-03 18:26:36 +0000
878@@ -19,8 +19,8 @@
879
880 message_box_objective(plr, briefing_msg_01)
881 -- these buildings are still burning, but only for a while
882- map:place_immovable("destroyed_building",map:get_field(7,41),"barbarians")
883- map:place_immovable("destroyed_building",map:get_field(5,52),"barbarians")
884+ map:place_immovable("destroyed_building",map:get_field(7,41),"tribes")
885+ map:place_immovable("destroyed_building",map:get_field(5,52),"tribes")
886 plr:reveal_fields(al_thunran:region(8))
887 message_box_objective(plr, briefing_msg_02) -- Al'thunran
888 plr:reveal_fields(grave:region(4))
889@@ -37,10 +37,10 @@
890 message_box_objective(plr, order_msg_ranger)
891 local obj = add_campaign_objective(obj_build_rangers)
892
893- while not check_for_buildings(plr, {rangers_hut = 2}) do sleep(500) end
894+ while not check_for_buildings(plr, {barbarians_rangers_hut = 2}) do sleep(500) end
895 obj.done = true
896
897- plr:allow_buildings{"sentry","barrier"}
898+ plr:allow_buildings{"barbarians_sentry", "barbarians_barrier"}
899
900 message_box_objective(plr, order_msg_1)
901 message_box_objective(plr, order_msg_2)
902@@ -59,7 +59,7 @@
903
904 -- Now, wait till the quarry comes up
905 local f = wl.Game().map:get_field(27,48):region(6)
906- while not check_for_buildings(plr, { quarry = 1 }, f) do
907+ while not check_for_buildings(plr, { barbarians_quarry = 1 }, f) do
908 sleep(5000)
909 end
910 obj.done = true
911@@ -85,17 +85,17 @@
912 message_box_objective(plr, order_msg_6_geologist)
913 o = add_campaign_objective(obj_build_mines)
914 plr:allow_buildings{
915- "coalmine",
916- "oremine",
917- "goldmine",
918- "granitemine"
919+ "barbarians_coalmine",
920+ "barbarians_ironmine",
921+ "barbarians_goldmine",
922+ "barbarians_granitemine"
923 }
924
925 sleep(10000)
926 message_box_objective(plr, story_msg2)
927
928 -- Wait for completion
929- while not check_for_buildings(plr, {coalmine = 1, oremine = 1}) do
930+ while not check_for_buildings(plr, {barbarians_coalmine = 1, barbarians_ironmine = 1}) do
931 sleep(5000)
932 end
933 o.done = true
934@@ -111,18 +111,20 @@
935 local hunter_msg_done = nil
936 while true do
937 local rv = plr:get_buildings{
938- "hunters_hut", "gamekeepers_hut", "tavern"
939+ "barbarians_hunters_hut",
940+ "barbarians_gamekeepers_hut",
941+ "barbarians_tavern"
942 }
943- if #rv.hunters_hut >= 1 and not hunter_msg_done then
944+ if #rv.barbarians_hunters_hut >= 1 and not hunter_msg_done then
945 message_box_objective(plr, order_msg_11_basic_food_began)
946 hunter_msg_done = true
947 end
948- if #rv.tavern >= 1 and not tavern_msg_done then
949+ if #rv.barbarians_tavern >= 1 and not tavern_msg_done then
950 message_box_objective(plr, order_msg_13_tavern)
951 tavern_msg_done = true
952 end
953- if #rv.hunters_hut >= 1 and #rv.gamekeepers_hut >= 1
954- and #rv.tavern >= 1 then break end
955+ if #rv.barbarians_hunters_hut >= 1 and #rv.barbarians_gamekeepers_hut >= 1
956+ and #rv.barbarians_tavern >= 1 then break end
957 sleep(5331)
958 end
959 obj_bf.done = true
960@@ -137,8 +139,8 @@
961
962 run(function()
963 while 1 do
964- local rv = plr:get_buildings{"well", "bakery", "farm"}
965- if #rv.well >= 1 and #rv.bakery >= 1 and #rv.farm >= 1 then
966+ local rv = plr:get_buildings{"barbarians_well", "barbarians_bakery", "barbarians_farm"}
967+ if #rv.barbarians_well >= 1 and #rv.barbarians_bakery >= 1 and #rv.barbarians_farm >= 1 then
968 break
969 end
970 sleep(4234)
971@@ -149,13 +151,13 @@
972
973 -- Enable food production
974 plr:allow_buildings{
975- "hunters_hut",
976- "fishers_hut",
977- "gamekeepers_hut",
978- "tavern",
979- "farm",
980- "well",
981- "bakery",
982+ "barbarians_hunters_hut",
983+ "barbarians_fishers_hut",
984+ "barbarians_gamekeepers_hut",
985+ "barbarians_tavern",
986+ "barbarians_farm",
987+ "barbarians_well",
988+ "barbarians_bakery",
989 }
990
991 while not (obj_bf.done and obj_farming.done) do
992@@ -164,9 +166,9 @@
993
994 -- Ready to build refiner stuff
995 message_box_objective(plr, order_msg_14_refine_ore)
996- plr:allow_buildings{"smelting_works"}
997+ plr:allow_buildings{"barbarians_smelting_works"}
998 o = add_campaign_objective(obj_refine_ores)
999- while #plr:get_buildings("smelting_works") < 1 do
1000+ while #plr:get_buildings("barbarians_smelting_works") < 1 do
1001 sleep(6223)
1002 end
1003 o.done = true
1004@@ -175,15 +177,15 @@
1005 -- Wait until the player has an experienced worker.
1006 local chiefminer_found = false
1007 while not chiefminer_found do
1008- local mines = plr:get_buildings{"coalmine","oremine"}
1009- for k,v in ipairs(mines.coalmine) do
1010- if v:get_workers("chief-miner") > 0 then
1011+ local mines = plr:get_buildings{"barbarians_coalmine","barbarians_ironmine"}
1012+ for k,v in ipairs(mines.barbarians_coalmine) do
1013+ if v:get_workers("barbarians_miner_chief") > 0 then
1014 chiefminer_found = true
1015 break
1016 end
1017 end
1018- for k,v in ipairs(mines.oremine) do
1019- if v:get_workers("chief-miner") > 0 then
1020+ for k,v in ipairs(mines.barbarians_ironmine) do
1021+ if v:get_workers("barbarians_miner_chief") > 0 then
1022 chiefminer_found = true
1023 break
1024 end
1025@@ -196,14 +198,22 @@
1026 sleep(5000)
1027 end
1028 message_box_objective(plr, order_msg_15_mines_exhausted)
1029- plr:allow_buildings{"deep_coalmine", "deep_oremine", "inn", "micro-brewery"}
1030+ plr:allow_buildings{
1031+ "barbarians_coalmine_deep",
1032+ "barbarians_ironmine_deep",
1033+ "barbarians_inn",
1034+ "barbarians_micro_brewery"}
1035 local obj = add_campaign_objective(obj_enhance_buildings)
1036
1037 run(function()
1038 while true do
1039- local rv = plr:get_buildings{"deep_coalmine", "deep_oremine", "inn", "micro-brewery"}
1040- if (#rv.inn > 0 and #rv["micro-brewery"] > 0) and
1041- (#rv.deep_coalmine + #rv.deep_oremine > 0) then
1042+ local rv = plr:get_buildings{
1043+ "barbarians_coalmine_deep",
1044+ "barbarians_ironmine_deep",
1045+ "barbarians_inn",
1046+ "barbarians_micro_brewery"}
1047+ if (#rv.barbarians_inn > 0 and #rv["barbarians_micro_brewery"] > 0) and
1048+ (#rv.barbarians_coalmine_deep + #rv.barbarians_ironmine_deep > 0) then
1049 break
1050 end
1051 sleep(5421)
1052@@ -222,33 +232,37 @@
1053
1054 -- Wait for a barrier or sentry to be built
1055 while true do
1056- local rv = plr:get_buildings{"sentry", "barrier"}
1057- if #rv.sentry + #rv.barrier > 0 then
1058+ local rv = plr:get_buildings{"barbarians_sentry", "barbarians_barrier"}
1059+ if #rv.barbarians_sentry + #rv.barbarians_barrier > 0 then
1060 break
1061 end
1062 sleep(5421)
1063 end
1064
1065 message_box_objective(plr, order_msg_16_blackwood)
1066- plr:allow_buildings{"hardener"}
1067+ plr:allow_buildings{"barbarians_wood_hardener"}
1068 sf.immovable:set_wares("blackwood",5)
1069 -- So that player has really little, but still enough to expand a bit
1070 local o = add_campaign_objective(obj_better_material_1)
1071
1072 sleep(30*1000)
1073 message_box_objective(plr, story_msg1)
1074- while #plr:get_buildings("hardener") < 1 do sleep(5421) end
1075+ while #plr:get_buildings("barbarians_wood_hardener") < 1 do sleep(5421) end
1076 o.done = true
1077
1078 message_box_objective(plr, order_msg_17_grout)
1079- plr:allow_buildings{"lime_kiln", "well", "charcoal_kiln"}
1080+ plr:allow_buildings{"barbarians_lime_kiln", "barbarians_well", "barbarians_charcoal_kiln"}
1081 o = add_campaign_objective(obj_better_material_2)
1082 -- Wait for the buildings to be built
1083 while true do
1084- local rv = plr:get_buildings{"lime_kiln", "well",
1085- "coalmine", "deep_coalmine", "charcoal_kiln"}
1086- if (#rv.lime_kiln > 0 and #rv.well > 0) and
1087- (#rv.coalmine + #rv.deep_coalmine + #rv.charcoal_kiln > 0) then
1088+ local rv = plr:get_buildings{
1089+ "barbarians_lime_kiln",
1090+ "barbarians_well",
1091+ "barbarians_coalmine",
1092+ "barbarians_coalmine_deep",
1093+ "barbarians_charcoal_kiln"}
1094+ if (#rv.barbarians_lime_kiln > 0 and #rv.barbarians_well > 0) and
1095+ (#rv.barbarians_coalmine + #rv.barbarians_coalmine_deep + #rv.barbarians_charcoal_kiln > 0) then
1096 break
1097 end
1098 sleep(5421)
1099@@ -256,9 +270,9 @@
1100 o.done = true
1101
1102 message_box_objective(plr, order_msg_18_reed)
1103- plr:allow_buildings{"reed_yard"}
1104+ plr:allow_buildings{"barbarians_reed_yard"}
1105 o = add_campaign_objective(obj_better_material_3)
1106- while #plr:get_buildings("reed_yard") < 1 do sleep(5421) end
1107+ while #plr:get_buildings("barbarians_reed_yard") < 1 do sleep(5421) end
1108
1109 message_box_objective(plr, order_msg_19_all_material)
1110 o.done = true
1111@@ -270,19 +284,19 @@
1112 -- Cattlefarm thread
1113 -- ==================
1114 function cattle_farm()
1115- while not check_for_buildings(plr, { farm = 1, well = 1 }) do
1116+ while not check_for_buildings(plr, { barbarians_farm = 1, barbarians_well = 1 }) do
1117 sleep(7834)
1118 end
1119
1120 message_box_objective(plr, msg_cattlefarm_00)
1121
1122 local o = add_campaign_objective(obj_build_cattlefarm)
1123- plr:allow_buildings{"cattlefarm"}
1124+ plr:allow_buildings{"barbarians_cattlefarm"}
1125
1126 sleep(10000)
1127 message_box_objective(plr, story_msg3)
1128
1129- while not check_for_buildings(plr, { cattlefarm = 1 }) do
1130+ while not check_for_buildings(plr, { barbarians_cattlefarm = 1 }) do
1131 sleep(2323)
1132 end
1133 o.done = true
1134
1135=== modified file 'campaigns/bar01.wmf/scripting/secret_village.lua'
1136--- campaigns/bar01.wmf/scripting/secret_village.lua 2014-10-28 19:23:06 +0000
1137+++ campaigns/bar01.wmf/scripting/secret_village.lua 2015-11-03 18:26:36 +0000
1138@@ -53,75 +53,75 @@
1139 end
1140
1141 force_map_immovables{
1142- { "spruce_summer_old", 55, 19 },
1143- { "larch_summer_pole", 58, 19 },
1144- { "birch_summer_mature", 58, 20 },
1145- { "larch_summer_old", 57, 21 },
1146- { "alder_summer_pole", 54, 22 },
1147- { "birch_summer_pole", 56, 24 },
1148- { "aspen_summer_old", 58, 24 },
1149- { "larch_summer_pole", 56, 25 },
1150- { "spruce_summer_old", 53, 27 },
1151- { "larch_summer_pole", 57, 27 },
1152- { "aspen_summer_mature", 52, 29 },
1153- { "birch_summer_pole", 54, 30 },
1154- { "beech_summer_old", 55, 30 },
1155- { "larch_summer_old", 56, 30 },
1156- { "field2", 56, 14, "barbarians" },
1157- { "field0s",57, 14, "barbarians" },
1158- { "field2", 54, 15, "barbarians" },
1159- { "field2", 57, 15, "barbarians" },
1160- { "field2", 54, 16, "barbarians" },
1161- { "field1", 57, 16, "barbarians" },
1162- { "field2", 58, 16, "barbarians" },
1163- { "field2", 54, 17, "barbarians" },
1164- { "field0", 55, 17, "barbarians" },
1165- { "field2", 57, 17, "barbarians" },
1166- { "field2", 55, 18, "barbarians" },
1167- { "field2", 57, 18, "barbarians" },
1168- { "field2", 53, 31, "barbarians" },
1169- { "field2", 54, 31, "barbarians" },
1170- { "field0", 55, 31, "barbarians" },
1171- { "field2", 56, 32, "barbarians" },
1172- { "field2", 52, 33, "barbarians" },
1173- { "field0s",55, 33, "barbarians" },
1174- { "field2", 56, 33, "barbarians" },
1175- { "field2", 53, 34, "barbarians" },
1176- { "field1", 54, 34, "barbarians" },
1177- { "field2", 56, 34, "barbarians" },
1178- { "field2", 53, 35, "barbarians" },
1179- { "field2", 55, 35, "barbarians" },
1180+ { "spruce_summer_old", 55, 19, "world" },
1181+ { "larch_summer_pole", 58, 19, "world" },
1182+ { "birch_summer_mature", 58, 20, "world" },
1183+ { "larch_summer_old", 57, 21, "world" },
1184+ { "alder_summer_pole", 54, 22, "world" },
1185+ { "birch_summer_pole", 56, 24, "world" },
1186+ { "aspen_summer_old", 58, 24, "world" },
1187+ { "larch_summer_pole", 56, 25, "world" },
1188+ { "spruce_summer_old", 53, 27, "world" },
1189+ { "larch_summer_pole", 57, 27, "world" },
1190+ { "aspen_summer_mature", 52, 29, "world" },
1191+ { "birch_summer_pole", 54, 30, "world" },
1192+ { "beech_summer_old", 55, 30, "world" },
1193+ { "larch_summer_old", 56, 30, "world" },
1194+ { "field_harvested", 56, 14, "tribes" },
1195+ { "field_small",57, 14, "tribes" },
1196+ { "field_harvested", 54, 15, "tribes" },
1197+ { "field_harvested", 57, 15, "tribes" },
1198+ { "field_harvested", 54, 16, "tribes" },
1199+ { "field_ripe", 57, 16, "tribes" },
1200+ { "field_harvested", 58, 16, "tribes" },
1201+ { "field_harvested", 54, 17, "tribes" },
1202+ { "field_medium", 55, 17, "tribes" },
1203+ { "field_harvested", 57, 17, "tribes" },
1204+ { "field_harvested", 55, 18, "tribes" },
1205+ { "field_harvested", 57, 18, "tribes" },
1206+ { "field_harvested", 53, 31, "tribes" },
1207+ { "field_harvested", 54, 31, "tribes" },
1208+ { "field_medium", 55, 31, "tribes" },
1209+ { "field_harvested", 56, 32, "tribes" },
1210+ { "field_harvested", 52, 33, "tribes" },
1211+ { "field_small",55, 33, "tribes" },
1212+ { "field_harvested", 56, 33, "tribes" },
1213+ { "field_harvested", 53, 34, "tribes" },
1214+ { "field_ripe", 54, 34, "tribes" },
1215+ { "field_harvested", 56, 34, "tribes" },
1216+ { "field_harvested", 53, 35, "tribes" },
1217+ { "field_harvested", 55, 35, "tribes" },
1218 }
1219
1220 local plr = wl.Game().players[1]
1221 prefilled_buildings(plr,
1222- {"sentry", 57, 9},
1223- {"sentry", 52, 39},
1224- {"hunters_hut", 56, 10},
1225- {"gamekeepers_hut", 56, 12},
1226- {"farm", 56, 16},
1227- {"well", 54, 18},
1228- {"bakery", 55, 20, wares = {wheat=6, water=6}},
1229- {"lumberjacks_hut", 56, 21},
1230- {"lumberjacks_hut", 55, 22},
1231- {"lumberjacks_hut", 54, 24},
1232- {"rangers_hut", 57, 24},
1233- {"rangers_hut", 55, 25},
1234- {"hardener", 54, 26, wares = {log = 8}},
1235+ {"barbarians_sentry", 57, 9},
1236+ {"barbarians_sentry", 52, 39},
1237+ {"barbarians_hunters_hut", 56, 10},
1238+ {"barbarians_gamekeepers_hut", 56, 12},
1239+ {"barbarians_farm", 56, 16},
1240+ {"barbarians_well", 54, 18},
1241+ {"barbarians_bakery", 55, 20, wares = {wheat = 6, water = 6}},
1242+ {"barbarians_lumberjacks_hut", 56, 21},
1243+ {"barbarians_lumberjacks_hut", 55, 22},
1244+ {"barbarians_lumberjacks_hut", 54, 24},
1245+ {"barbarians_rangers_hut", 57, 24},
1246+ {"barbarians_rangers_hut", 55, 25},
1247+ {"barbarians_wood_hardener", 54, 26, wares = {log = 8}},
1248 -- to make it more realistic
1249- {"warehouse", 53, 28,
1250+ {"barbarians_warehouse", 53, 28,
1251 wares = {
1252 wheat = 20,
1253 log = 40,
1254 meat = 30
1255 }
1256 },
1257- {"inn", 55, 28, wares = {pittabread = 4, meat = 4}},
1258- {"tavern", 57, 28, wares = {pittabread=4, meat = 4}},
1259- {"well", 52, 30},
1260- {"farm", 54, 33},
1261- {"bakery", 51, 35, wares = {wheat = 6, water = 6}},
1262- {"well", 52, 37}
1263+ {"barbarians_inn", 55, 28, wares = {barbarians_bread = 4, meat = 4}},
1264+ {"barbarians_tavern", 57, 28, wares = {barbarians_bread = 4, meat = 4}},
1265+ {"barbarians_well", 52, 30},
1266+ {"barbarians_farm", 54, 33},
1267+ {"barbarians_bakery", 51, 35, wares = {wheat = 6, water = 6}},
1268+ {"barbarians_well", 52, 37}
1269 )
1270
1271 -- Adjust the borders so that the village owns everything green
1272
1273=== modified file 'campaigns/bar01.wmf/scripting/starting_conditions.lua'
1274--- campaigns/bar01.wmf/scripting/starting_conditions.lua 2014-10-18 12:34:17 +0000
1275+++ campaigns/bar01.wmf/scripting/starting_conditions.lua 2015-11-03 18:26:36 +0000
1276@@ -5,65 +5,64 @@
1277 -- Allow some buildings
1278 plr:forbid_buildings("all")
1279 plr:allow_buildings{
1280- "lumberjacks_hut",
1281- "quarry",
1282- "rangers_hut"
1283+ "barbarians_lumberjacks_hut",
1284+ "barbarians_quarry",
1285+ "barbarians_rangers_hut"
1286 }
1287
1288 -- Place headquarters and fill it with wares
1289-hq = plr:place_building("headquarters_interim", sf, false, true)
1290+hq = plr:place_building("barbarians_headquarters_interim", sf, false, true)
1291 hq:set_wares{
1292- ax=6,
1293- bread_paddle=2,
1294- blackwood=32,
1295- coal=5,
1296- fire_tongs=2,
1297- fish=6,
1298- grout=4,
1299- hammer=12,
1300- hunting_spear=2,
1301- ironore=5,
1302- kitchen_tools=4,
1303- meal=4,
1304- meat=6,
1305- pick=14,
1306- pittabread=8,
1307- ration=12,
1308- raw_stone=40,
1309- scythe=6,
1310- shovel=4,
1311- snack=3,
1312- thatchreed=24,
1313- log=80,
1314+ ax = 6,
1315+ blackwood = 32,
1316+ barbarians_bread = 8,
1317+ bread_paddle = 2,
1318+ coal = 5,
1319+ fire_tongs = 2,
1320+ fish = 6,
1321+ granite = 40,
1322+ grout = 4,
1323+ hammer = 12,
1324+ hunting_spear = 2,
1325+ iron_ore = 5,
1326+ kitchen_tools = 4,
1327+ log = 80,
1328+ meal = 4,
1329+ meat = 6,
1330+ pick = 14,
1331+ ration = 12,
1332+ scythe = 6,
1333+ shovel = 4,
1334+ snack = 3,
1335+ thatch_reed = 24,
1336 }
1337 hq:set_workers{
1338- blacksmith=2,
1339- brewer=1,
1340- builder=10,
1341- carrier=40,
1342- charcoal_burner=1,
1343- gardener=1,
1344- fisher=1,
1345- geologist=4,
1346- ["lime-burner"]=1,
1347- lumberjack=3,
1348- miner=4,
1349- ranger=2,
1350- stonemason=2
1351+ barbarians_blacksmith = 2,
1352+ barbarians_brewer = 1,
1353+ barbarians_builder = 10,
1354+ barbarians_carrier = 40,
1355+ barbarians_charcoal_burner = 1,
1356+ barbarians_fisher = 1,
1357+ barbarians_gardener = 1,
1358+ barbarians_geologist = 4,
1359+ barbarians_lime_burner = 1,
1360+ barbarians_lumberjack = 3,
1361+ barbarians_miner = 4,
1362+ barbarians_ranger = 2,
1363+ barbarians_stonemason = 2
1364 }
1365 hq:set_soldiers({0,0,0,0}, 45)
1366
1367 -- ============
1368 -- Build roads
1369 -- ============
1370---connected_road(plr,sf.brn.immovable, "r,r|br,r")
1371 connected_road(plr, sf.brn.immovable, "r,r|br,r|r,r")
1372 connected_road(plr, sf.brn.immovable, "l,l|l,bl,bl|br,r|br,r|r,tr|tr,tr,tr")
1373 connected_road(plr, map:get_field(13,14).immovable, "r,br|br,r")
1374
1375 -- Place some initial buildings
1376 prefilled_buildings(plr,
1377- {"lumberjacks_hut", 15, 11},
1378- {"lumberjacks_hut", 9, 13},
1379- {"quarry", 8, 12}
1380+ {"barbarians_lumberjacks_hut", 15, 11},
1381+ {"barbarians_lumberjacks_hut", 9, 13},
1382+ {"barbarians_quarry", 8, 12}
1383 )
1384
1385=== modified file 'campaigns/bar01.wmf/scripting/texts.lua'
1386--- campaigns/bar01.wmf/scripting/texts.lua 2015-09-11 17:38:01 +0000
1387+++ campaigns/bar01.wmf/scripting/texts.lua 2015-11-03 18:26:36 +0000
1388@@ -41,22 +41,22 @@
1389 name = "mission mines",
1390 title = _"Start building mines on the mountain",
1391 number = 2,
1392- body = objective_text(_"Build coal and iron ore mines",
1393- listitem_bullet(_"Build a coal mine and an iron ore mine.") ..
1394+ body = objective_text(_"Build coal and iron mines",
1395+ listitem_bullet(_"Build a coal mine and an iron mine.") ..
1396 listitem_arrow(_"To do so, place a flag up on the mountain’s flank to the east (on mountain terrain though, not mountain meadow). When you click on the new flag, you can send geologists there. Because the flag is on a mountain, the geologists will search for ores; otherwise, they would search for water. Then build a mine for both kinds of resources that they will find, choosing the appropriate mine to be built:") ..
1397- "</rt>" ..
1398- rt("image=tribes/barbarians/resi_coal1/resi_00.png", p(_"a bit of coal")) ..
1399- rt("image=tribes/barbarians/resi_coal2/resi_00.png", p(_"a lot of coal")) ..
1400- rt("image=tribes/barbarians/resi_iron1/resi_00.png", p(_"a bit of iron")) ..
1401- rt("image=tribes/barbarians/resi_iron2/resi_00.png", p(_"a lot of iron")) ..
1402- rt("image=tribes/barbarians/resi_gold1/resi_00.png", p(_"a bit of gold")) ..
1403- rt("image=tribes/barbarians/resi_gold2/resi_00.png", p(_"a lot of gold")) ..
1404- rt("image=tribes/barbarians/resi_granite1/resi_00.png", p(_"a bit of granite")) ..
1405- rt("image=tribes/barbarians/resi_granite2/resi_00.png", p(_"a lot of granite")) ..
1406- rt("image=tribes/barbarians/resi_water1/resi_00.png", p(_"water")) ..
1407- rt("image=tribes/barbarians/resi_none/resi_00.png", p(_"nothing was found here")) ..
1408- "<rt>" ..
1409- p(_[[Mines can only be built on mountain terrain. Suitable places for mines are displayed as orange mine symbols.]]))
1410+ "</rt>" ..
1411+ rt("image=tribes/immovables/resi_coal1/idle_00.png", p(_"a bit of coal")) ..
1412+ rt("image=tribes/immovables/resi_coal2/idle_00.png", p(_"a lot of coal")) ..
1413+ rt("image=tribes/immovables/resi_iron1/idle_00.png", p(_"a bit of iron")) ..
1414+ rt("image=tribes/immovables/resi_iron2/idle_00.png", p(_"a lot of iron")) ..
1415+ rt("image=tribes/immovables/resi_gold1/idle_00.png", p(_"a bit of gold")) ..
1416+ rt("image=tribes/immovables/resi_gold2/idle_00.png", p(_"a lot of gold")) ..
1417+ rt("image=tribes/immovables/resi_stones1/idle_00.png", p(_"a bit of granite")) ..
1418+ rt("image=tribes/immovables/resi_stones2/idle_00.png", p(_"a lot of granite")) ..
1419+ rt("image=tribes/immovables/resi_water1/idle_00.png", p(_"water")) ..
1420+ rt("image=tribes/immovables/resi_none/idle_00.png", p(_"nothing was found here")) ..
1421+ "<rt>" ..
1422+ p(_[[Mines can only be built on mountain terrain. Suitable places for mines are displayed as orange mine symbols.]]))
1423 }
1424
1425 obj_basic_food = {
1426@@ -103,7 +103,7 @@
1427 title = _"Build a wood hardener",
1428 number = 1,
1429 body = objective_text(_"Build a wood hardener",
1430- _([[Bigger and better buildings – including all military ones – require better building materials. They cannot be built out of simple logs – the wood has to be refined to blackwood by a wood hardener first. Always remember to build a wood hardener before you run out of blackwood, as without it you cannot expand.]])
1431+ _([[Bigger and better buildings – including all military ones – require better building materials. They cannot be built out of simple logs – the logs have to be refined to blackwood by a wood hardener first. Always remember to build a wood hardener before you run out of blackwood, as without it you cannot expand.]])
1432 .. paragraphdivider() ..
1433 listitem_bullet(_"Build a wood hardener"))
1434 }
1435@@ -313,7 +313,7 @@
1436 title = _"Your Loyal Companion",
1437 body = boldreth(_"Brave Boldreth steps to your side…",
1438 -- TRANSLATORS: Boldreth
1439- _([[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.]]))
1440+ _([[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.]]))
1441 }
1442
1443
1444@@ -321,7 +321,7 @@
1445 title = _"The Advisor",
1446 body = khantrukh(_"Khantrukh joins in…",
1447 -- TRANSLATORS: Khantrukh
1448- _([[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.]]))
1449+ _([[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.]]))
1450 }
1451
1452 order_msg_3 = {
1453@@ -508,7 +508,7 @@
1454 -- TRANSLATORS: Thron
1455 _([[The news he brought changed everything…]]))
1456 .. objective_text(_"Victory",
1457- _[[You have completed this mission. You may continue playing if you wish, otherwise move on to the next mission.]])
1458+ _[[You have completed this mission. You may continue playing if you wish, otherwise move on to the next mission.]])
1459 }
1460
1461 msg_story_1 = {
1462@@ -547,4 +547,3 @@
1463 _([[But they fear that the war around Al’thunran will set an end to this life. Therefore, they have decided to join us, hoping that we can help each other.]])
1464 )
1465 }
1466-
1467
1468=== modified file 'campaigns/bar02.wmf/scripting/mission_thread.lua'
1469--- campaigns/bar02.wmf/scripting/mission_thread.lua 2014-10-02 18:51:30 +0000
1470+++ campaigns/bar02.wmf/scripting/mission_thread.lua 2015-11-03 18:26:36 +0000
1471@@ -26,9 +26,9 @@
1472
1473 campaign_message_box(cattlefarm_01)
1474
1475- p1:allow_buildings{"cattlefarm"}
1476+ p1:allow_buildings{"barbarians_cattlefarm"}
1477 local o = add_campaign_objective(obj_build_cattlefarm)
1478- while not check_for_buildings(p1, {cattlefarm = 1}) do
1479+ while not check_for_buildings(p1, {barbarians_cattlefarm = 1}) do
1480 sleep(1223) end
1481 o.done = true
1482
1483@@ -42,23 +42,24 @@
1484 campaign_message_box(briefing_msg_1)
1485 campaign_message_box(order_msg_1_small_food_economy)
1486
1487- p1:allow_buildings{"fishers_hut",
1488- "hunters_hut",
1489- "gamekeepers_hut",
1490- "tavern",
1491- "farm",
1492- "well",
1493- "bakery",
1494- "sentry",
1495+ p1:allow_buildings{
1496+ "barbarians_fishers_hut",
1497+ "barbarians_hunters_hut",
1498+ "barbarians_gamekeepers_hut",
1499+ "barbarians_tavern",
1500+ "barbarians_farm",
1501+ "barbarians_well",
1502+ "barbarians_bakery",
1503+ "barbarians_sentry",
1504 }
1505
1506 local o = add_campaign_objective(obj_build_small_food_economy)
1507 while not check_for_buildings(p1, {
1508- fishers_hut = 1,
1509- hunters_hut = 1,
1510- well = 1,
1511- farm = 1,
1512- bakery = 1,
1513+ barbarians_fishers_hut = 1,
1514+ barbarians_hunters_hut = 1,
1515+ barbarians_well = 1,
1516+ barbarians_farm = 1,
1517+ barbarians_bakery = 1,
1518 }) do sleep(3413) end
1519 o.done = true
1520 campaign_message_box(story_note_1)
1521@@ -70,7 +71,7 @@
1522 function foottracks()
1523 -- Hunter build and some time passed or expanded east
1524 while true do
1525- if game.time > 900000 and #p1:get_buildings("hunters_hut") > 0
1526+ if game.time > 900000 and #p1:get_buildings("barbarians_hunters_hut") > 0
1527 then break end
1528 if check_conquered_footprints()
1529 then break end
1530@@ -86,10 +87,10 @@
1531
1532 local pts = scroll_smoothly_to(game.map:get_field(67,19))
1533
1534- campaign_message_box(order_msg_2_build_a_donjon)
1535- local o = add_campaign_objective(obj_build_a_donjon)
1536- p1:forbid_buildings{"sentry"}
1537- p1:allow_buildings{"donjon"}
1538+ campaign_message_box(order_msg_2_build_a_tower)
1539+ local o = add_campaign_objective(obj_build_a_tower)
1540+ p1:forbid_buildings{"barbarians_sentry"}
1541+ p1:allow_buildings{"barbarians_tower"}
1542
1543 timed_scroll(array_reverse(pts), 10)
1544
1545@@ -97,13 +98,13 @@
1546 sleep(5003)
1547 p1:hide_fields(fields)
1548
1549- while not check_for_buildings(p1, {donjon=1}) do sleep(2341) end
1550+ while not check_for_buildings(p1, {barbarians_tower=1}) do sleep(2341) end
1551 o.done = true
1552 campaign_message_box(order_msg_3_explore_further)
1553 -- "explore further" is active untill "Boldreth shout out", so the player always has one open objectve.
1554 exploration_objective = add_campaign_objective(obj_explore_further)
1555
1556- p1:allow_buildings{"sentry", "barrier"}
1557+ p1:allow_buildings{"barbarians_sentry", "barbarians_barrier"}
1558
1559 -- Wait till we see the mountain and at least one frontier
1560 while true do
1561@@ -133,26 +134,33 @@
1562 local o = add_campaign_objective(obj_build_mining_economy)
1563
1564 p1:allow_buildings{
1565- "coalmine",
1566- "oremine",
1567- "goldmine",
1568- "granitemine",
1569- "smelting_works",
1570- "metalworks",
1571- "charcoal_kiln",
1572- "micro-brewery",
1573+ "barbarians_coalmine",
1574+ "barbarians_ironmine",
1575+ "barbarians_goldmine",
1576+ "barbarians_granitemine",
1577+ "barbarians_smelting_works",
1578+ "barbarians_metal_workshop",
1579+ "barbarians_charcoal_kiln",
1580+ "barbarians_micro_brewery",
1581 }
1582
1583 timed_scroll(array_reverse(pts), 10)
1584 sleep(500)
1585
1586 while true do
1587- local h = p1:get_buildings{"coalmine","charcoal_kiln", "oremine",
1588- "tavern", "smelting_works", "metalworks"}
1589+ local h = p1:get_buildings{
1590+ "barbarians_coalmine",
1591+ "barbarians_charcoal_kiln",
1592+ "barbarians_ironmine",
1593+ "barbarians_tavern",
1594+ "barbarians_smelting_works",
1595+ "barbarians_metal_workshop"}
1596
1597- if (#h.coalmine + #h.charcoal_kiln > 0) and
1598- #h.oremine > 0 and #h.tavern > 0 and #h.smelting_works > 0 and
1599- #h.metalworks > 0
1600+ if (#h.barbarians_coalmine + #h.barbarians_charcoal_kiln > 0) and
1601+ #h.barbarians_ironmine > 0 and
1602+ #h.barbarians_tavern > 0 and
1603+ #h.barbarians_smelting_works > 0 and
1604+ #h.barbarians_metal_workshop > 0
1605 then
1606 break
1607 end
1608@@ -165,21 +173,21 @@
1609
1610 campaign_message_box(order_msg_6_build_enhanced_economy_and_training)
1611 p1:allow_buildings{
1612- "axfactory",
1613- "warmill",
1614- "helmsmithy",
1615- "battlearena",
1616- "trainingcamp",
1617- "inn",
1618- "big_inn",
1619- "deep_coalmine",
1620- "deep_goldmine",
1621- "deep_oremine",
1622- "deeper_coalmine",
1623- "deeper_goldmine",
1624- "deeper_oremine",
1625- "warehouse",
1626- "brewery",
1627+ "barbarians_ax_workshop",
1628+ "barbarians_warmill",
1629+ "barbarians_helmsmithy",
1630+ "barbarians_battlearena",
1631+ "barbarians_trainingcamp",
1632+ "barbarians_inn",
1633+ "barbarians_big_inn",
1634+ "barbarians_coalmine_deep",
1635+ "barbarians_goldmine_deep",
1636+ "barbarians_ironmine_deep",
1637+ "barbarians_coalmine_deeper",
1638+ "barbarians_goldmine_deeper",
1639+ "barbarians_ironmine_deeper",
1640+ "barbarians_warehouse",
1641+ "barbarians_brewery",
1642 }
1643 run(check_warehouse_obj, add_campaign_objective(obj_build_a_warehouse))
1644 run(check_trainingssite_obj, add_campaign_objective(obj_build_trainingssites))
1645@@ -188,15 +196,19 @@
1646 end
1647
1648 function check_trainingssite_obj(o)
1649- while not check_for_buildings(p1, {trainingcamp = 1, battlearena = 1}) do
1650+ while not check_for_buildings(p1, {barbarians_trainingcamp = 1, barbarians_battlearena = 1}) do
1651 sleep(6523)
1652 end
1653 o.done = true
1654 end
1655 function check_weapon_productions_obj(o)
1656 while true do
1657- local rv = p1:get_buildings{"metalworks", "axfactory", "warmill"}
1658- if #rv.metalworks > 0 and (#rv.axfactory + #rv.warmill > 0) then
1659+ local rv = p1:get_buildings{
1660+ "barbarians_metal_workshop",
1661+ "barbarians_ax_workshop",
1662+ "barbarians_warmill"}
1663+ if #rv.barbarians_metal_workshop > 0 and
1664+ (#rv.barbarians_ax_workshop + #rv.barbarians_warmill > 0) then
1665 break
1666 end
1667 sleep(6523)
1668@@ -204,11 +216,11 @@
1669 o.done = true
1670 end
1671 function check_warehouse_obj(o)
1672- while not check_for_buildings(p1, {warehouse = 1}) do sleep(3827) end
1673+ while not check_for_buildings(p1, {barbarians_warehouse = 1}) do sleep(3827) end
1674 o.done = true
1675 end
1676 function check_helmsmithy_obj(o)
1677- while not check_for_buildings(p1, {helmsmithy = 1}) do sleep(3827) end
1678+ while not check_for_buildings(p1, {barbarians_helmsmithy = 1}) do sleep(3827) end
1679 o.done = true
1680 end
1681
1682@@ -219,9 +231,9 @@
1683
1684 campaign_message_box(order_msg_5_build_a_fortress)
1685 local o = add_campaign_objective(obj_build_a_fortress)
1686- p1:allow_buildings{"fortress"}
1687+ p1:allow_buildings{"barbarians_fortress"}
1688
1689- while #p1:get_buildings("fortress") == 0 do sleep(6523) end
1690+ while #p1:get_buildings("barbarians_fortress") == 0 do sleep(6523) end
1691
1692 o.done = true
1693 campaign_message_box(story_note_3)
1694@@ -248,12 +260,12 @@
1695
1696 -- checks if all military buildings are drestroyed (the build-in function "defeated" only checks if all warehouses are destroyed)
1697 function check_player_completely_defeated(dp)
1698- if #dp:get_buildings("fortress") > 0 then return false end
1699- if #dp:get_buildings("citadel") > 0 then return false end
1700- if #dp:get_buildings("donjon") > 0 then return false end
1701- if #dp:get_buildings("barrier") > 0 then return false end
1702- if #dp:get_buildings("sentry") > 0 then return false end
1703- if #dp:get_buildings("warehouse") > 0 then return false end
1704+ if #dp:get_buildings("barbarians_fortress") > 0 then return false end
1705+ if #dp:get_buildings("barbarians_citadel") > 0 then return false end
1706+ if #dp:get_buildings("barbarians_tower") > 0 then return false end
1707+ if #dp:get_buildings("barbarians_barrier") > 0 then return false end
1708+ if #dp:get_buildings("barbarians_sentry") > 0 then return false end
1709+ if #dp:get_buildings("barbarians_warehouse") > 0 then return false end
1710 return true
1711 end
1712
1713@@ -295,14 +307,14 @@
1714 do sleep(6833) end
1715
1716 prefilled_buildings(p1,
1717- {"barrier", 118, 100, soldiers =
1718+ {"barbarians_barrier", 118, 100, soldiers =
1719 {[{0,0,0,0}]= 1, [{1,1,0,1}] = 1, [{0,1,0,0}] = 1}
1720 },
1721- {"citadel", 117, 97, soldiers = {
1722+ {"barbarians_citadel", 117, 97, soldiers = {
1723 [{0,0,0,0}]=3, [{1,1,0,0}]=1, [{0,0,0,1}]=2,
1724 [{0,1,0,1}]=1, [{1,1,0,1}]=1, [{2,1,0,2}]=1,
1725 }},
1726- {"sentry", 116, 98 }
1727+ {"barbarians_sentry", 116, 98 }
1728 )
1729
1730 -- Some something of the enemy land
1731@@ -350,4 +362,3 @@
1732 run(renegade_fortresses)
1733 run(mission_complete)
1734 run(mining_and_trainingsites)
1735-
1736
1737=== modified file 'campaigns/bar02.wmf/scripting/starting_conditions.lua'
1738--- campaigns/bar02.wmf/scripting/starting_conditions.lua 2014-08-26 17:25:00 +0000
1739+++ campaigns/bar02.wmf/scripting/starting_conditions.lua 2015-11-03 18:26:36 +0000
1740@@ -3,57 +3,57 @@
1741 -- =======================================================================
1742 p1:forbid_buildings("all")
1743 p1:allow_buildings{
1744- "lumberjacks_hut",
1745- "quarry",
1746- "rangers_hut",
1747- "hardener",
1748- "lime_kiln",
1749- "reed_yard",
1750- "sentry",
1751+ "barbarians_lumberjacks_hut",
1752+ "barbarians_quarry",
1753+ "barbarians_rangers_hut",
1754+ "barbarians_wood_hardener",
1755+ "barbarians_lime_kiln",
1756+ "barbarians_reed_yard",
1757+ "barbarians_sentry",
1758 }
1759
1760-hq = p1:place_building("headquarters", wl.Game().map:get_field(52, 33), false, true)
1761+hq = p1:place_building("barbarians_headquarters", wl.Game().map:get_field(52, 33), false, true)
1762 hq:set_wares{
1763- ax=1,
1764- bread_paddle=2,
1765- blackwood=32,
1766- coal=12,
1767- felling_ax=5,
1768- fire_tongs=2,
1769- fish=6,
1770- grout=12,
1771- hammer=12,
1772- hunting_spear=2,
1773- iron=12,
1774- ironore=25,
1775- kitchen_tools=4,
1776- meal=4,
1777- meat=6,
1778- pick=14,
1779- pittabread=8,
1780- ration=12,
1781- raw_stone=40,
1782- scythe=6,
1783- shovel=4,
1784- snack=3,
1785- thatchreed=24,
1786- log=80,
1787+ ax = 1,
1788+ blackwood = 32,
1789+ barbarians_bread = 8,
1790+ bread_paddle = 2,
1791+ coal = 12,
1792+ felling_ax = 5,
1793+ fire_tongs = 2,
1794+ fish = 6,
1795+ granite = 40,
1796+ grout = 12,
1797+ hammer = 12,
1798+ hunting_spear = 2,
1799+ iron = 12,
1800+ iron_ore = 25,
1801+ kitchen_tools = 4,
1802+ log = 80,
1803+ meal = 4,
1804+ meat = 6,
1805+ pick = 14,
1806+ ration = 12,
1807+ scythe = 6,
1808+ shovel = 4,
1809+ snack = 3,
1810+ thatch_reed = 24,
1811 }
1812 hq:set_workers{
1813- carrier=40,
1814- blacksmith=2,
1815- brewer=1,
1816- builder=10,
1817- charcoal_burner=1,
1818- gardener=1,
1819- fisher=2,
1820- geologist=4,
1821- ["lime-burner"]=1,
1822- lumberjack=3,
1823- miner=4,
1824- ranger=1,
1825- stonemason=2,
1826- ox = 40,
1827+ barbarians_blacksmith = 2,
1828+ barbarians_brewer = 1,
1829+ barbarians_builder = 10,
1830+ barbarians_carrier = 40,
1831+ barbarians_charcoal_burner = 1,
1832+ barbarians_fisher = 2,
1833+ barbarians_gardener = 1,
1834+ barbarians_geologist = 4,
1835+ barbarians_lime_burner = 1,
1836+ barbarians_lumberjack = 3,
1837+ barbarians_miner = 4,
1838+ barbarians_ox = 40,
1839+ barbarians_ranger = 1,
1840+ barbarians_stonemason = 2,
1841 }
1842 hq:set_soldiers({0,0,0,0}, 45)
1843
1844@@ -61,33 +61,33 @@
1845 -- Player 2
1846 -- =======================================================================
1847 p2:forbid_buildings("all")
1848-p2:allow_buildings{"lumberjacks_hut"}
1849+p2:allow_buildings{"barbarians_lumberjacks_hut"}
1850
1851-wh = p2:place_building("warehouse", wl.Game().map:get_field(100,25), false, true)
1852-wh:set_wares{log=200}
1853-wh:set_workers{ carrier=40, builder=1, lumberjack=4 }
1854+wh = p2:place_building("barbarians_warehouse", wl.Game().map:get_field(100,25), false, true)
1855+wh:set_wares{log = 200}
1856+wh:set_workers{ barbarians_carrier=40, barbarians_builder=1, barbarians_lumberjack=4 }
1857
1858 prefilled_buildings(p2,
1859- {"donjon", 102, 71, soldiers={[{0,0,0,0}] = 4}},
1860- {"donjon", 104, 18, soldiers={
1861+ {"barbarians_tower", 102, 71, soldiers={[{0,0,0,0}] = 4}},
1862+ {"barbarians_tower", 104, 18, soldiers={
1863 [{0,0,0,0}] = 1, [{2,0,0,0}] = 1, [{0,1,0,0}] = 1
1864 }},
1865- {"donjon", 104, 25, soldiers = {[{0,0,0,0}]=2, [{1,0,0,0}]=1, }},
1866- {"donjon", 102, 83, soldiers = {[{0,0,0,0}]=2 }},
1867- {"barrier", 103, 11, soldiers = {[{0,0,0,0}]=2, [{0,0,0,1}]=1 }},
1868- {"barrier", 104, 4, soldiers = {[{0,0,0,0}]=4}},
1869- {"barrier", 102, 103, soldiers = {[{0,0,0,0}]=2, [{0,1,0,1}]=1}},
1870- {"barrier", 103, 96, soldiers = {[{0,0,0,0}]=3}},
1871- {"barrier", 104, 110, soldiers = {[{0,0,0,0}]=2}},
1872- {"barrier", 104, 30, soldiers = {
1873+ {"barbarians_tower", 104, 25, soldiers = {[{0,0,0,0}]=2, [{1,0,0,0}]=1, }},
1874+ {"barbarians_tower", 102, 83, soldiers = {[{0,0,0,0}]=2 }},
1875+ {"barbarians_barrier", 103, 11, soldiers = {[{0,0,0,0}]=2, [{0,0,0,1}]=1 }},
1876+ {"barbarians_barrier", 104, 4, soldiers = {[{0,0,0,0}]=4}},
1877+ {"barbarians_barrier", 102, 103, soldiers = {[{0,0,0,0}]=2, [{0,1,0,1}]=1}},
1878+ {"barbarians_barrier", 103, 96, soldiers = {[{0,0,0,0}]=3}},
1879+ {"barbarians_barrier", 104, 110, soldiers = {[{0,0,0,0}]=2}},
1880+ {"barbarians_barrier", 104, 30, soldiers = {
1881 [{0,1,0,1}]=1, [{1,0,0,0}]=1, [{0,0,0,0}]=1
1882 }},
1883- {"barrier", 102, 90, soldiers = {[{0,0,0,0}]=1}},
1884- {"sentry", 108, 3, soldiers = {[{0,0,0,0}]=2}},
1885- {"sentry", 107, 104, soldiers = {[{0,0,0,0}]=1}},
1886- {"sentry", 110, 19, soldiers = {[{0,0,0,0}]=2}},
1887- {"sentry", 106, 91, soldiers = {[{0,0,0,0}]=2}},
1888- {"sentry", 108, 84, soldiers = {[{0,0,0,0}]=2}}
1889+ {"barbarians_barrier", 102, 90, soldiers = {[{0,0,0,0}]=1}},
1890+ {"barbarians_sentry", 108, 3, soldiers = {[{0,0,0,0}]=2}},
1891+ {"barbarians_sentry", 107, 104, soldiers = {[{0,0,0,0}]=1}},
1892+ {"barbarians_sentry", 110, 19, soldiers = {[{0,0,0,0}]=2}},
1893+ {"barbarians_sentry", 106, 91, soldiers = {[{0,0,0,0}]=2}},
1894+ {"barbarians_sentry", 108, 84, soldiers = {[{0,0,0,0}]=2}}
1895 )
1896
1897 -- =======================================================================
1898@@ -95,13 +95,13 @@
1899 -- =======================================================================
1900 p3:forbid_buildings("all")
1901 prefilled_buildings(p3,
1902- {"sentry", 137, 87, soldiers = {[{0,0,0,0}]=2}},
1903- {"barrier", 130, 86, soldiers = {[{0,0,0,0}]=4}},
1904- {"barrier", 132, 82, soldiers = {[{0,0,0,0}]=4}},
1905- {"fortress", 135, 85, soldiers = {
1906+ {"barbarians_sentry", 137, 87, soldiers = {[{0,0,0,0}]=2}},
1907+ {"barbarians_barrier", 130, 86, soldiers = {[{0,0,0,0}]=4}},
1908+ {"barbarians_barrier", 132, 82, soldiers = {[{0,0,0,0}]=4}},
1909+ {"barbarians_fortress", 135, 85, soldiers = {
1910 [{0,0,0,0}]=4, [{1,0,0,0}]=2, [{1,1,0,0}]=2,
1911 }},
1912- {"barrier", 132, 78, soldiers = {
1913+ {"barbarians_barrier", 132, 78, soldiers = {
1914 [{0,0,0,0}]=1, [{1,1,0,1}]=1, [{0,1,0,0}]=1,
1915 }}
1916 )
1917@@ -110,24 +110,28 @@
1918 -- Player 4
1919 -- =======================================================================
1920 p4:forbid_buildings("all")
1921-wh = p4:place_building("warehouse", wl.Game().map:get_field(132,110), false, true)
1922-wh:set_wares{log=10}
1923-wh:set_workers{carrier=40, builder=1, blacksmith=1, ["master-blacksmith"]=1}
1924+wh = p4:place_building("barbarians_warehouse", wl.Game().map:get_field(132,110), false, true)
1925+wh:set_wares {log = 10}
1926+wh:set_workers {
1927+ barbarians_carrier = 40,
1928+ barbarians_builder = 1,
1929+ barbarians_blacksmith = 1,
1930+ barbarians_blacksmith_master = 1
1931+}
1932
1933 prefilled_buildings(p4,
1934- {"citadel", 135, 3, soldiers = {
1935+ {"barbarians_citadel", 135, 3, soldiers = {
1936 [{0,0,0,0}]=2, [{1,1,0,0}]=1, [{0,0,0,1}]=2, [{0,1,0,1}]=1,
1937 }},
1938- {"sentry", 137, 5, soldiers = {[{0,0,0,0}]=2}},
1939- {"sentry", 133, 1, soldiers = {[{0,1,0,0}]=2}},
1940- {"sentry", 130, 6, soldiers = {[{0,0,0,0}]=2}},
1941- {"barrier", 133, 106, soldiers = {[{0,0,0,0}]=2, [{1,0,0,0}]=2}},
1942- {"donjon", 132, 7, soldiers = {
1943+ {"barbarians_sentry", 137, 5, soldiers = {[{0,0,0,0}]=2}},
1944+ {"barbarians_sentry", 133, 1, soldiers = {[{0,1,0,0}]=2}},
1945+ {"barbarians_sentry", 130, 6, soldiers = {[{0,0,0,0}]=2}},
1946+ {"barbarians_barrier", 133, 106, soldiers = {[{0,0,0,0}]=2, [{1,0,0,0}]=2}},
1947+ {"barbarians_tower", 132, 7, soldiers = {
1948 [{0,0,0,0}]=2, [{1,1,0,0}]=1, [{1,0,0,1}]=1,
1949 }},
1950- {"barrier", 132, 3, soldiers = {
1951+ {"barbarians_barrier", 132, 3, soldiers = {
1952 [{0,0,0,0}]=1, [{1,0,0,1}]=1, [{0,1,0,1}]=1,
1953 }},
1954- {"warmill", 135, 7}
1955+ {"barbarians_warmill", 135, 7}
1956 )
1957-
1958
1959=== modified file 'campaigns/bar02.wmf/scripting/texts.lua'
1960--- campaigns/bar02.wmf/scripting/texts.lua 2015-09-11 17:38:01 +0000
1961+++ campaigns/bar02.wmf/scripting/texts.lua 2015-11-03 18:26:36 +0000
1962@@ -41,12 +41,12 @@
1963 ),
1964 }
1965
1966-obj_build_a_donjon = {
1967- name = "build_a_donjon",
1968- title = _"Build a donjon",
1969+obj_build_a_tower = {
1970+ name = "build_a_tower",
1971+ title = _"Build a tower",
1972 number = 1,
1973- body = objective_text(_"Build a donjon",
1974- listitem_bullet(_"Build a donjon at the north-east border of your territory to get greater visual range and to protect your people from sudden attacks by enemies."))
1975+ body = objective_text(_"Build a tower",
1976+ listitem_bullet(_"Build a tower at the north-east border of your territory to get greater visual range and to protect your people from sudden attacks by enemies."))
1977 }
1978
1979 obj_explore_further = {
1980@@ -79,7 +79,7 @@
1981 number = 4,
1982 body = objective_text(_"Build a training infrastructure",
1983 listitem_bullet(_"Build a battle arena and a training camp to the west of the mountains.") ..
1984- listitem_bullet(_"Enhance your metal workshop to an axfactory in order to produce weapons, and build up a second metal workshop to ensure the production of tools. When the blacksmith reaches his next level (master blacksmith), you can even enhance the axfactory to a war mill, which will produce additional weapons.") ..
1985+ listitem_bullet(_"Enhance your metal workshop to an ax workshop in order to produce weapons, and build up a second metal workshop to ensure the production of tools. When the blacksmith reaches his next level (master blacksmith), you can even enhance the ax workshop to a war mill, which will produce additional weapons.") ..
1986 listitem_bullet(_"Build a helm smithy to the west of the mountains to provide your soldiers with better armor."))
1987 }
1988
1989@@ -101,7 +101,7 @@
1990 listitem_bullet(_"Build a battle arena and a training camp to the west of the mountains.") ..
1991 listitem_arrow(_"Training sites like a training camp or a battle arena are used for training soldiers in their different attributes. These attributes are important in fights and the better a soldier is, the higher is the chance to win a fight."
1992 .. "<br>" ..
1993- _"The attributes are: health, attack, defense and evade."))
1994+ _"The attributes are: health, attack, defense and evade."))
1995 }
1996
1997 obj_build_weapon_productions = {
1998@@ -109,7 +109,7 @@
1999 title = _"Build weapons production",
2000 number = 3,
2001 body = objective_text(_"Build weapons production",
2002- listitem_bullet(_"Enhance your metal workshop to an axfactory in order to produce weapons, and build up a second metal workshop to ensure the production of tools. When the blacksmith reaches his next level (master blacksmith), you can even enhance the axfactory to a war mill, which will produce additional weapons."))
2003+ listitem_bullet(_"Enhance your metal workshop to an ax workshop in order to produce weapons, and build up a second metal workshop to ensure the production of tools. When the blacksmith reaches his next level (master blacksmith), you can even enhance the ax workshop to a war mill, which will produce additional weapons."))
2004 }
2005
2006 obj_build_a_helmsmithy = {
2007@@ -145,10 +145,10 @@
2008 title=_"Close to Home",
2009 body =thron(_"Thron looks worried…",
2010 -- TRANSLATORS: Thron
2011- _([[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 against my brothers.]])
2012- .. paragraphdivider() ..
2013+ _([[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 against my brothers.]])
2014+ .. paragraphdivider() ..
2015 -- TRANSLATORS: Thron
2016- _([[For now, we are resting at the borders of the old forest and preparing for the coming days.]]))
2017+ _([[For now, we are resting at the borders of the old forest and preparing for the coming days.]]))
2018 }
2019
2020 story_msg_2 = {
2021@@ -156,7 +156,7 @@
2022 title=_"Another Cold Day",
2023 body =thron(_"Thron looks worried…",
2024 -- TRANSLATORS: Thron
2025- _([[The news that a patrol brought is not good to hear. Our spies tell us that the war tribes 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 war leader 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 capital, securing the outer fortification rings.]]))
2026+ _([[The news that a patrol brought is not good to hear. Our spies tell us that the war tribes 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 war leader 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 capital, securing the outer fortification rings.]]))
2027 }
2028
2029 story_msg_3 = {
2030@@ -164,7 +164,7 @@
2031 title=_"Doubts",
2032 body = boldreth(_"Boldreth is shaking his head…",
2033 -- TRANSLATORS: Boldreth
2034- _([[Thron seeks to believe that Kalitath is tired of fighting and would 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 of bowing before the banner of Chat’Karuth. Why should he march with Chat’Karuth’s son to reclaim his heritage and the throne?]]))
2035+ _([[Thron seeks to believe that Kalitath is tired of fighting and would 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 of bowing before the banner of Chat’Karuth. Why should he march with Chat’Karuth’s son to reclaim his heritage and the throne?]]))
2036 }
2037
2038 story_msg_4 = {
2039@@ -172,7 +172,7 @@
2040 title = _"The Story Continues",
2041 body = boldreth(_"Boldreth says:",
2042 -- TRANSLATORS: Boldreth
2043- _([[However, Thron is not willing to listen to my doubts. He seeks to expand our fortifications to the borders of Kalitath’s territory and to reunite with his forces. I have to keep an eye on everything that happens here.]]))
2044+ _([[However, Thron is not willing to listen to my doubts. He seeks to expand our fortifications to the borders of Kalitath’s territory and to reunite with his forces. I have to keep an eye on everything that happens here.]]))
2045 }
2046
2047 story_msg_5 = {
2048@@ -180,7 +180,7 @@
2049 title = _"Another Cold Day",
2050 body= thron(_"Thron is speaking confidently.",
2051 -- TRANSLATORS: Thron
2052- _([[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 defensible infrastructure. Still, I hope I will not walk alone on this mission, I hope Kalitath son of Kun will follow my call.]]))
2053+ _([[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 defensible infrastructure. Still, I hope I will not walk alone on this mission, I hope Kalitath son of Kun will follow my call.]]))
2054 }
2055
2056 story_msg_6 = {
2057@@ -188,15 +188,15 @@
2058 title = _"The Story Continues",
2059 body = thron(_"Thron says:",
2060 -- TRANSLATORS: Thron
2061- _([[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 spend waiting won’t be lost. I will further upgrade my soldiers and prepare for battle.]]))
2062+ _([[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 spend waiting won’t be lost. I will further upgrade my soldiers and prepare for battle.]]))
2063 }
2064
2065 order_msg_7_destroy_kalitaths_army = {
2066 title = _"Your Loyal Companion",
2067 body = boldreth(_"Boldreth shouts out!",
2068 -- TRANSLATORS: Boldreth
2069- _([[The 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 behavior. From now on, there is war between Kalitath and us!]]))
2070- .. new_objectives(obj_destroy_kalitaths_army)
2071+ _([[The 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 behavior. From now on, there is war between Kalitath and us!]]))
2072+ .. new_objectives(obj_destroy_kalitaths_army)
2073 }
2074
2075
2076@@ -206,13 +206,13 @@
2077 title = _"Renegade Fortification",
2078 body = thron(_"Thron says:",
2079 -- TRANSLATORS: Thron
2080- _([[The traitor left his armies dying where they lay when he saw that he would not keep my forces back. Kalitath disappeared in the confusion of the war, but I don’t care now. Shall he flee and be forgotten for all times as a tribal leader that would not bow before the wooden throne, that is mine to take now.]])
2081- .. paragraphdivider() ..
2082- -- TRANSLATORS: Thron
2083- _([[Furthermore, his flight brought us a great 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 caused some of his younger followers to desert. This group holds a strong fortification on the main ring.]])
2084- .. paragraphdivider() ..
2085- -- TRANSLATORS: Thron
2086- _([[But there is more news: My scouts have 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.]]))
2087+ _([[The traitor left his armies dying where they lay when he saw that he would not keep my forces back. Kalitath disappeared in the confusion of the war, but I don’t care now. Shall he flee and be forgotten for all times as a tribal leader that would not bow before the wooden throne, that is mine to take now.]])
2088+ .. paragraphdivider() ..
2089+ -- TRANSLATORS: Thron
2090+ _([[Furthermore, his flight brought us a great 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 caused some of his younger followers to desert. This group holds a strong fortification on the main ring.]])
2091+ .. paragraphdivider() ..
2092+ -- TRANSLATORS: Thron
2093+ _([[But there is more news: My scouts have 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.]]))
2094 }
2095
2096 briefing_msg_1 = {
2097@@ -220,7 +220,7 @@
2098 title = _"Winter Ahead",
2099 body = boldreth(_"Boldreth says:",
2100 -- TRANSLATORS: Boldreth
2101- _([[This morning, I found Thron’s mind troubled. 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!]]))
2102+ _([[This morning, I found Thron’s mind troubled. 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!]]))
2103 }
2104
2105 order_msg_1_small_food_economy = {
2106@@ -228,8 +228,8 @@
2107 title = _"The Advisor",
2108 body = khantrukh(_"Khantrukh nods.",
2109 -- TRANSLATORS: Khantrukh
2110- _([[Boldreth is right! We don’t have enough food to survive a long, cold winter. We should start building 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.]]))
2111- .. new_objectives(obj_build_small_food_economy)
2112+ _([[Boldreth is right! We don’t have enough food to survive a long, cold winter. We should start building 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.]]))
2113+ .. new_objectives(obj_build_small_food_economy)
2114 }
2115
2116 story_note_1 = {
2117@@ -237,16 +237,16 @@
2118 title = _"Food Economy Completed",
2119 body = thron(_"Thron says:",
2120 -- TRANSLATORS: Thron
2121- _([[Khantrukh has just informed me that our basic food economy was built up successfully. Finally, none of us has to fear starvation anymore.]]))
2122+ _([[Khantrukh has just informed me that our basic food economy was built up successfully. Finally, none of us has to fear starvation anymore.]]))
2123 }
2124
2125-order_msg_2_build_a_donjon = {
2126+order_msg_2_build_a_tower = {
2127 posy = 1,
2128 title = _"Tracks",
2129 body = boldreth(_"Boldreth says:",
2130 -- TRANSLATORS: Boldreth
2131- _([[Thron told me that he discovered tracks in the snow to the northeast of our settlement. He has instructed us to build a donjon, to have a greater visual range over the area around our hall to protect our people from sudden attacks.]]))
2132- .. new_objectives(obj_build_a_donjon)
2133+ _([[Thron told me that he discovered tracks in the snow to the northeast of our settlement. He has instructed us to build a tower, to have a greater visual range over the area around our hall to protect our people from sudden attacks.]]))
2134+ .. new_objectives(obj_build_a_tower)
2135 }
2136
2137 order_msg_3_explore_further = {
2138@@ -254,11 +254,11 @@
2139 title = _"Further Exploration",
2140 body = boldreth(_"Boldreth says:",
2141 -- TRANSLATORS: Boldreth
2142- _([[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.]])
2143- .. paragraphdivider() ..
2144+ _([[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.]])
2145+ .. paragraphdivider() ..
2146 -- TRANSLATORS: Boldreth
2147- _([[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 doorstep. THEN we will be prepared once trouble seeks to capture our woods.]]))
2148- .. new_objectives(obj_explore_further)
2149+ _([[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 doorstep. THEN we will be prepared once trouble seeks to capture our woods.]]))
2150+ .. new_objectives(obj_explore_further)
2151 }
2152
2153 order_msg_4_build_mining_economy = {
2154@@ -266,8 +266,8 @@
2155 title = _"Mountains Found",
2156 body = khantrukh("Khantrukh says:",
2157 -- TRANSLATORS: Khantrukh
2158- _([[I have just spoken to the leader of our patrol. He told me that they found some mountains to the north-east and east of our territory. With a bit of luck this will open up a new chance for rearming our men, because as far as I remember, most of the mountains west of Al’thunran hold coal and some metal ores.]]))
2159- .. new_objectives(obj_build_mining_economy)
2160+ _([[I have just spoken to the leader of our patrol. He told me that they found some mountains to the north-east and east of our territory. With a bit of luck this will open up a new chance for rearming our men, because as far as I remember, most of the mountains west of Al’thunran hold coal and some metal ores.]]))
2161+ .. new_objectives(obj_build_mining_economy)
2162 }
2163
2164 story_note_2 = {
2165@@ -275,7 +275,7 @@
2166 title = _"Mining Economy Completed",
2167 body = thron(_"Thron says:",
2168 -- TRANSLATORS: Thron
2169- _([[I just got informed that our mining economy has started its work. This news brought a smile to my face – even if the hardest part is still waiting to be done, now that our smiths will give their best to further ease our lives.]]))
2170+ _([[I just got informed that our mining economy has started its work. This news brought a smile to my face – even if the hardest part is still waiting to be done, now that our smiths will give their best to further ease our lives.]]))
2171 }
2172
2173 order_msg_5_build_a_fortress = {
2174@@ -283,8 +283,8 @@
2175 title = _"Fortress Needed",
2176 body = thron(_"Thron says:",
2177 -- TRANSLATORS: Thron
2178- _([[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 of the central 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!]]))
2179- .. new_objectives(obj_build_a_fortress)
2180+ _([[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 of the central 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!]]))
2181+ .. new_objectives(obj_build_a_fortress)
2182 }
2183
2184 story_note_3 = {
2185@@ -292,7 +292,7 @@
2186 title = _"Fortress Completed",
2187 body = thron(_"Thron says:",
2188 -- TRANSLATORS: Thron
2189- _([[Finally! The fortress has just been 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.]]))
2190+ _([[Finally! The fortress has just been 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 towers at the passages, but for now we can take a deep breath.]]))
2191 }
2192
2193 order_msg_6_build_enhanced_economy_and_training = {
2194@@ -300,11 +300,11 @@
2195 title = _"Enhanced Economy and Training",
2196 body = boldreth(_"Boldreth says:",
2197 -- TRANSLATORS: Boldreth
2198- _([[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 war to come.]])
2199- .. paragraphdivider() ..
2200+ _([[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 war to come.]])
2201+ .. paragraphdivider() ..
2202 -- TRANSLATORS: Boldreth
2203- _([[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 training sites to prepare them for their future tasks.]]))
2204- .. new_objectives(obj_build_training_infrastructure)
2205+ _([[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 training sites to prepare them for their future tasks.]]))
2206+ .. new_objectives(obj_build_training_infrastructure)
2207 }
2208
2209 story_msg_7 = {
2210@@ -312,12 +312,12 @@
2211 title=_"Another Cold Day",
2212 body= thron(_"Thron looks worried…",
2213 -- TRANSLATORS: Thron
2214- _([[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.]])
2215- .. paragraphdivider() ..
2216+ _([[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.]])
2217+ .. paragraphdivider() ..
2218 -- TRANSLATORS: Thron
2219- _([[Nothing is left of that beauty I remember, only ruins remain of the old capital. I am sorrowful but also relieved. I never hoped to 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 there 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 its old beauty.]]))
2220- .. objective_text(_"Victory",
2221- _([[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.]]))
2222+ _([[Nothing is left of that beauty I remember, only ruins remain of the old capital. I am sorrowful but also relieved. I never hoped to 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 there 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 its old beauty.]]))
2223+ .. objective_text(_"Victory",
2224+ _([[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.]]))
2225 }
2226
2227 order_msg_7_free_althunran = {
2228@@ -325,20 +325,20 @@
2229 title = _"Military Assault",
2230 body = thron(_"Thron says:",
2231 -- TRANSLATORS: Thron
2232- _([[So be it, the generals are out and about arranging my troops, and Boldreth himself will lead the first strike. I will ride by his side, to free Al’thunran of this war and return peace to our capital.]])
2233- .. paragraphdivider() ..
2234- -- TRANSLATORS: Thron
2235- _([[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 honor of my father, whose eyes are set upon me today.]])
2236- .. paragraphdivider() ..
2237- -- TRANSLATORS: Thron
2238- _([[So be it!]]))
2239- .. new_objectives(obj_military_assault_on_althunran),
2240+ _([[So be it, the generals are out and about arranging my troops, and Boldreth himself will lead the first strike. I will ride by his side, to free Al’thunran of this war and return peace to our capital.]])
2241+ .. paragraphdivider() ..
2242+ -- TRANSLATORS: Thron
2243+ _([[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 honor of my father, whose eyes are set upon me today.]])
2244+ .. paragraphdivider() ..
2245+ -- TRANSLATORS: Thron
2246+ _([[So be it!]]))
2247+ .. new_objectives(obj_military_assault_on_althunran),
2248 }
2249
2250 cattlefarm_01 = {
2251 title = _"Faster Transportation",
2252 body = khantrukh(_"Khantrukh says:",
2253 -- TRANSLATORS: Khantrukh
2254- _([[Chieftain, remember the poor carriers: Our roads get longer and longer and the burden on their shoulders never gets lighter. We should breed more oxen to make their work lighter and our transportation more efficient.]]))
2255- .. new_objectives(obj_build_cattlefarm),
2256+ _([[Chieftain, remember the poor carriers: Our roads get longer and longer and the burden on their shoulders never gets lighter. We should breed more oxen to make their work lighter and our transportation more efficient.]]))
2257+ .. new_objectives(obj_build_cattlefarm),
2258 }
2259
2260=== removed file 'campaigns/dummy.wmf/allowed_worker_types'
2261--- campaigns/dummy.wmf/allowed_worker_types 2011-01-04 12:17:44 +0000
2262+++ campaigns/dummy.wmf/allowed_worker_types 1970-01-01 00:00:00 +0000
2263@@ -1,5 +0,0 @@
2264-[global]
2265-packet_version="1"
2266-
2267-[player_1]
2268-carrier="true"
2269
2270=== modified file 'campaigns/emp01.wmf/scripting/mission_thread.lua'
2271--- campaigns/emp01.wmf/scripting/mission_thread.lua 2015-05-31 13:45:13 +0000
2272+++ campaigns/emp01.wmf/scripting/mission_thread.lua 2015-11-03 18:26:36 +0000
2273@@ -12,8 +12,8 @@
2274
2275 -- Show the sea
2276 p1:reveal_fields(sea:region(6))
2277- local ship = p1:place_bob("ship",sea)
2278- sleep(200)
2279+ local ship = p1:place_ship(sea)
2280+ sleep(1000)
2281 campaign_message_box(diary_page_2)
2282 -- Hide the sea after 5 seconds
2283 run(function() sleep(5000) p1:hide_fields(sea:region(6)) end)
2284@@ -27,40 +27,40 @@
2285 sleep(400)
2286
2287 campaign_message_box(saledus_1)
2288- p1:allow_buildings{"barracks"}
2289- local o = add_campaign_objective(obj_build_barracks)
2290- while #p1:get_buildings("barracks") < 1 do sleep(3249) end
2291+ p1:allow_buildings{"empire_blockhouse"}
2292+ local o = add_campaign_objective(obj_build_blockhouse)
2293+ while #p1:get_buildings("empire_blockhouse") < 1 do sleep(3249) end
2294 o.done = true
2295
2296- -- Barracks are completed now
2297+ -- Blockhouse is completed now
2298 campaign_message_box(saledus_2)
2299- p1:allow_buildings{"lumberjacks_house"}
2300+ p1:allow_buildings{"empire_lumberjacks_house"}
2301 o = add_campaign_objective(obj_build_lumberjack)
2302 campaign_message_box(amalea_1)
2303- while #p1:get_buildings("lumberjacks_house") < 1 do sleep(3249) end
2304+ while #p1:get_buildings("empire_lumberjacks_house") < 1 do sleep(3249) end
2305 o.done = true
2306
2307 -- Lumberjack is now build
2308 campaign_message_box(amalea_2)
2309- p1:allow_buildings{"sawmill"}
2310+ p1:allow_buildings{"empire_sawmill"}
2311 o = add_campaign_objective(obj_build_sawmill_and_lumberjacks)
2312- while not check_for_buildings(p1, { lumberjacks_house = 3, sawmill = 1})
2313+ while not check_for_buildings(p1, { empire_lumberjacks_house = 3, empire_sawmill = 1})
2314 do sleep(2343) end
2315 o.done = true
2316
2317 -- Now the lady demands a forester after having us cut down the whole forest.
2318 campaign_message_box(amalea_3)
2319 o = add_campaign_objective(obj_build_forester)
2320- p1:allow_buildings{"foresters_house"}
2321- while not check_for_buildings(p1, { foresters_house = 1 }) do sleep(2434) end
2322+ p1:allow_buildings{"empire_foresters_house"}
2323+ while not check_for_buildings(p1, { empire_foresters_house = 1 }) do sleep(2434) end
2324 o.done = true
2325
2326
2327 -- Now a quarry
2328 campaign_message_box(saledus_3)
2329 o = add_campaign_objective(obj_build_quarry)
2330- p1:allow_buildings{"quarry"}
2331- while not check_for_buildings(p1, { quarry = 1 }) do sleep(2434) end
2332+ p1:allow_buildings{"empire_quarry"}
2333+ while not check_for_buildings(p1, { empire_quarry = 1 }) do sleep(2434) end
2334 o.done = true
2335
2336 -- All buildings done. Got home
2337@@ -72,9 +72,9 @@
2338 p1:reveal_scenario("empiretut01")
2339 end
2340
2341--- Show a funny message when the player has build 10 barracks
2342+-- Show a funny message when the player has build 10 blockhouses
2343 function easter_egg()
2344- while not check_for_buildings(p1, {barracks = 10}) do sleep(4253) end
2345+ while not check_for_buildings(p1, {empire_blockhouse = 10}) do sleep(4253) end
2346
2347 campaign_message_box(safe_peninsula)
2348 end
2349@@ -82,4 +82,3 @@
2350
2351 run(mission_thread)
2352 run(easter_egg)
2353-
2354
2355=== modified file 'campaigns/emp01.wmf/scripting/starting_conditions.lua'
2356--- campaigns/emp01.wmf/scripting/starting_conditions.lua 2014-10-17 08:38:24 +0000
2357+++ campaigns/emp01.wmf/scripting/starting_conditions.lua 2015-11-03 18:26:36 +0000
2358@@ -3,57 +3,56 @@
2359 -- =======================================================================
2360 p1:forbid_buildings("all")
2361
2362-hq = p1:place_building("headquarters_shipwreck",
2363+hq = p1:place_building("empire_headquarters_shipwreck",
2364 wl.Game().map:get_field(6, 62), false, true)
2365-hq:set_wares{
2366- helm = 4,
2367- wood_lance = 5,
2368- ax = 6,
2369+hq:set_wares {
2370+ basket = 1,
2371+ empire_bread = 8,
2372 bread_paddle = 2,
2373- basket = 1,
2374- bread = 8,
2375 cloth = 5,
2376 coal = 12,
2377+ felling_ax = 6,
2378 fire_tongs = 2,
2379 fish = 6,
2380 fishing_rod = 2,
2381 flour = 4,
2382 gold = 4,
2383+ granite = 40,
2384 grape = 4,
2385 hammer = 12,
2386+ armor_helmet = 4,
2387 hunting_spear = 2,
2388 iron = 12,
2389- ironore = 5,
2390+ iron_ore = 5,
2391 kitchen_tools = 4,
2392+ log = 30,
2393 marble = 25,
2394- marblecolumn = 6,
2395+ marble_column = 6,
2396 meal = 4,
2397 meat = 6,
2398 pick = 14,
2399+ planks = 45,
2400 ration = 12,
2401 saw = 3,
2402 scythe = 5,
2403 shovel = 6,
2404- stone = 40,
2405- log = 30,
2406+ spear_wooden = 5,
2407 water = 12,
2408 wheat = 4,
2409 wine = 8,
2410- wood = 45,
2411 wool = 2,
2412 }
2413-hq:set_workers{
2414- armorsmith = 1,
2415- brewer = 1,
2416- builder = 10,
2417- carrier = 40,
2418- charcoal_burner = 1,
2419- geologist = 4,
2420- lumberjack = 3,
2421- miner = 4,
2422- stonemason = 2,
2423- toolsmith = 2,
2424- weaponsmith = 1,
2425+hq:set_workers {
2426+ empire_armorsmith = 1,
2427+ empire_brewer = 1,
2428+ empire_builder = 10,
2429+ empire_carrier = 40,
2430+ empire_charcoal_burner = 1,
2431+ empire_geologist = 4,
2432+ empire_lumberjack = 3,
2433+ empire_miner = 4,
2434+ empire_stonemason = 2,
2435+ empire_toolsmith = 2,
2436+ empire_weaponsmith = 1,
2437 }
2438 hq:set_soldiers({0,0,0,0}, 45)
2439-
2440
2441=== modified file 'campaigns/emp01.wmf/scripting/texts.lua'
2442--- campaigns/emp01.wmf/scripting/texts.lua 2015-09-11 17:38:01 +0000
2443+++ campaigns/emp01.wmf/scripting/texts.lua 2015-11-03 18:26:36 +0000
2444@@ -23,12 +23,12 @@
2445 -- ===========
2446 -- objectives
2447 -- ===========
2448-obj_build_barracks = {
2449- name = "build_barracks",
2450- title=_"Build a barracks",
2451+obj_build_blockhouse = {
2452+ name = "build_blockhouse",
2453+ title=_"Build a blockhouse",
2454 number = 1,
2455- body = objective_text(_"Barracks",
2456- listitem_bullet(_[[Build a barracks at the red house symbol on the east side of the forests, to the right of your provisional headquarters.]])
2457+ body = objective_text(_"Blockhouse",
2458+ listitem_bullet(_[[Build a blockhouse at the red house symbol on the east side of the forests, to the right of your provisional headquarters.]])
2459 ),
2460 }
2461
2462@@ -78,19 +78,19 @@
2463 title =_ "A Dark Night",
2464 body=lutius(_"Diary of Lutius",
2465 -- TRANSLATORS: Lutius - Diary
2466- _([[What has become of our Empire? I really ask this question – why did my king forbid me from fighting against that monstrous Barbarian tribe, who first acted as a peaceful friend and then attacked my army in the darkest night?]])
2467- .. paragraphdivider() ..
2468- -- TRANSLATORS: Lutius - Diary
2469- _([[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 children came to us, to admire our clean and tidy uniforms and weapons.]])
2470- .. paragraphdivider() ..
2471- -- TRANSLATORS: Lutius - Diary
2472- _([[But during 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 it would stay theirs until the spirits took the last man of his folk!]])
2473- .. paragraphdivider() ..
2474- -- TRANSLATORS: Lutius - Diary
2475- _([[Three weeks later, I returned to Fremil to speak with our king. He was furious at the Barbarians, yet forbade any attack on these tribes. He believed that our army was too weak to survive in a war against the Barbarians.]])
2476- .. paragraphdivider() ..
2477+ _([[What has become of our Empire? I really ask this question – why did my king forbid me from fighting against that monstrous Barbarian tribe, who first acted as a peaceful friend and then attacked my army in the darkest night?]])
2478+ .. paragraphdivider() ..
2479+ -- TRANSLATORS: Lutius - Diary
2480+ _([[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 children came to us, to admire our clean and tidy uniforms and weapons.]])
2481+ .. paragraphdivider() ..
2482+ -- TRANSLATORS: Lutius - Diary
2483+ _([[But during 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 it would stay theirs until the spirits took the last man of his folk!]])
2484+ .. paragraphdivider() ..
2485+ -- TRANSLATORS: Lutius - Diary
2486+ _([[Three weeks later, I returned to Fremil to speak with our king. He was furious at the Barbarians, yet forbade any attack on these tribes. He believed that our army was too weak to survive in a war against the Barbarians.]])
2487+ .. paragraphdivider() ..
2488 -- TRANSLATORS: Lutius - Diary. Gulf of Perl is a place name.
2489- _([[Still, I saw no way that I could erase my shame without fighting against these Barbarians. So, I left Fremil by boat to find a new world and a new life for myself, somewhere in the south. Now I am sailing on the Gulf of Perl with my family, some of my friends and a few of my best warriors.]])),
2490+ _([[Still, I saw no way that I could erase my shame without fighting against these Barbarians. So, I left Fremil by boat to find a new world and a new life for myself, somewhere in the south. Now I am sailing on the Gulf of Perl with my family, some of my friends and a few of my best warriors.]])),
2491 w=500,
2492 posy=1,
2493 }
2494@@ -99,10 +99,10 @@
2495 title=_"The Rough Sea",
2496 body= lutius(_"Diary of Lutius",
2497 -- TRANSLATORS: Lutius - Diary
2498- _([[It seems as if sailing on the Gulf of Perl 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.]])
2499- .. paragraphdivider() ..
2500+ _([[It seems as if sailing on the Gulf of Perl 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.]])
2501+ .. paragraphdivider() ..
2502 -- TRANSLATORS: Lutius - Diary
2503- _([[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.]])),
2504+ _([[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.]])),
2505 w=400,
2506 posy=1,
2507 }
2508@@ -111,13 +111,13 @@
2509 title=_"Survivor",
2510 body= lutius(_"Diary of Lutius",
2511 -- TRANSLATORS: Lutius - Diary
2512- _([[Finally, the Gods were with us!]])
2513- .. paragraphdivider() ..
2514- -- TRANSLATORS: Lutius - Diary
2515- _([[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: when I woke up this morning, I saw nothing but sand around us.]])
2516- .. paragraphdivider() ..
2517- -- TRANSLATORS: Lutius - Diary
2518- _([[It really seems as if we have 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.]])),
2519+ _([[Finally, the Gods were with us!]])
2520+ .. paragraphdivider() ..
2521+ -- TRANSLATORS: Lutius - Diary
2522+ _([[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: when I woke up this morning, I saw nothing but sand around us.]])
2523+ .. paragraphdivider() ..
2524+ -- TRANSLATORS: Lutius - Diary
2525+ _([[It really seems as if we have 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.]])),
2526 w=400,
2527 posy=1,
2528 }
2529@@ -126,14 +126,14 @@
2530 title=_"A Foreboding",
2531 body= saledus(_"Saledus looks around nervously…",
2532 -- TRANSLATORS: Saledus
2533- _([[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?]])
2534- .. paragraphdivider() ..
2535- -- TRANSLATORS: Saledus
2536- _([[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.]])
2537- .. paragraphdivider() ..
2538- -- TRANSLATORS: Saledus
2539- _([[You really should build a barracks in the eastern portion of the forest. Then one of my men can keep watch in the darkness and keep us safe from these creatures.]]))
2540- .. new_objectives(obj_build_barracks),
2541+ _([[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?]])
2542+ .. paragraphdivider() ..
2543+ -- TRANSLATORS: Saledus
2544+ _([[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.]])
2545+ .. paragraphdivider() ..
2546+ -- TRANSLATORS: Saledus
2547+ _([[You really should build a blockhouse in the eastern portion of the forest. Then one of my men can keep watch in the darkness and keep us safe from these creatures.]]))
2548+ .. new_objectives(obj_build_blockhouse),
2549 w=400,
2550 }
2551
2552@@ -142,10 +142,10 @@
2553 title=_"Safe For Now",
2554 body= saledus(_"Saledus speaks with a sigh of relief…",
2555 -- TRANSLATORS: Saledus
2556- _([[Sire, I saw that the construction of the barracks was completed, so I have assigned one of my best soldiers to it to keep watch on the desert.]])
2557- .. paragraphdivider() ..
2558+ _([[Sire, I saw that the construction of the blockhouse was completed, so I have assigned one of my best soldiers to it to keep watch on the desert.]])
2559+ .. paragraphdivider() ..
2560 -- TRANSLATORS: Saledus
2561- _([[This is a good step forward. Now we can feel a bit safer and can look forward to repairing our ship.]])),
2562+ _([[This is a good step forward. Now we can feel a bit safer and can look forward to repairing our ship.]])),
2563 w=400,
2564 }
2565
2566@@ -153,14 +153,14 @@
2567 title=_"Young Amalea",
2568 body= amalea(_"Amalea smiles…",
2569 -- TRANSLATORS: Amalea
2570- _([[Greetings, Lutius! I just met Saledus outside.]])
2571- .. paragraphdivider() ..
2572- -- TRANSLATORS: Amalea
2573- _([[He told me about the barracks. Well, I don’t think we need more barracks – instead, we might concentrate on other things now.]])
2574- .. paragraphdivider() ..
2575- -- TRANSLATORS: Amalea
2576- _([[It is absolutely clear that we need wood to repair our ship. So, I walked through the forest yesterday to look for a nice place for a lumberjack’s house and found one right south of our provisional headquarters.]]))
2577- .. new_objectives(obj_build_lumberjack),
2578+ _([[Greetings, Lutius! I just met Saledus outside.]])
2579+ .. paragraphdivider() ..
2580+ -- TRANSLATORS: Amalea
2581+ _([[He told me about the blockhouse. Well, I don’t think we need more blockhouses – instead, we might concentrate on other things now.]])
2582+ .. paragraphdivider() ..
2583+ -- TRANSLATORS: Amalea
2584+ _([[It is absolutely clear that we need wood to repair our ship. So, I walked through the forest yesterday to look for a nice place for a lumberjack’s house and found one right south of our provisional headquarters.]]))
2585+ .. new_objectives(obj_build_lumberjack),
2586 w=400,
2587 }
2588
2589@@ -168,11 +168,11 @@
2590 title=_"Young Amalea",
2591 body= amalea(_"Amalea recommends…",
2592 -- TRANSLATORS: Amalea
2593- _([[I got the message that our first lumberjack has started his work today. Perhaps it would be a good idea to wait until he cleans enough space for constructing two more lumberjack’s houses, so that we can harvest the logs faster.]])
2594- .. paragraphdivider() ..
2595+ _([[I got the message that our first lumberjack has started his work today. Perhaps it would be a good idea to wait until he cleans enough space for constructing two more lumberjack’s houses, so that we can harvest the logs faster.]])
2596+ .. paragraphdivider() ..
2597 -- TRANSLATORS: Amalea
2598- _([[But unfortunately the logs are useless for repairing our ship – we need refined lumber, like every ship and every bigger building needs, too. So we should build a sawmill – as soon as we have enough space for this.]]))
2599- .. new_objectives(obj_build_sawmill_and_lumberjacks),
2600+ _([[But unfortunately the logs are useless for repairing our ship – we need to turn them into planks, which are needed by every ship and every bigger building too. So we should build a sawmill – as soon as we have enough space for this.]]))
2601+ .. new_objectives(obj_build_sawmill_and_lumberjacks),
2602 w=400,
2603 }
2604
2605@@ -180,20 +180,20 @@
2606 title=_"Young Amalea",
2607 body= amalea(_"Amalea comes in…",
2608 -- TRANSLATORS: Amalea
2609- _([[I’ve got two important things to talk about… First the good news:]])
2610- .. paragraphdivider() ..
2611- -- TRANSLATORS: Amalea
2612- _([[I noticed that the construction of the sawmill is complete, so we can begin to refine the logs that the lumberjacks are harvesting into lumber.]])
2613- .. paragraphdivider() ..
2614- -- TRANSLATORS: Amalea
2615- _([[But the bad news is that our lumberjacks harvest at an incredible speed. There are almost no trees left on this island.]])
2616- .. paragraphdivider() ..
2617- -- TRANSLATORS: Amalea
2618- _([[These trees provide shelter from the sandstorms that sweep in from the desert, and shade on the hot days, and they are the home of many gentle animals. We shouldn’t leave this island a complete desert.]])
2619- .. paragraphdivider() ..
2620- -- TRANSLATORS: Amalea
2621- _([[Lutius, please find someone who will take care of planting new trees.]]))
2622- .. new_objectives(obj_build_forester),
2623+ _([[I’ve got two important things to talk about… First the good news:]])
2624+ .. paragraphdivider() ..
2625+ -- TRANSLATORS: Amalea
2626+ _([[I noticed that the construction of the sawmill is complete, so we can begin to refine the logs that the lumberjacks are harvesting into lumber.]])
2627+ .. paragraphdivider() ..
2628+ -- TRANSLATORS: Amalea
2629+ _([[But the bad news is that our lumberjacks harvest at an incredible speed. There are almost no trees left on this island.]])
2630+ .. paragraphdivider() ..
2631+ -- TRANSLATORS: Amalea
2632+ _([[These trees provide shelter from the sandstorms that sweep in from the desert, and shade on the hot days, and they are the home of many gentle animals. We shouldn’t leave this island a complete desert.]])
2633+ .. paragraphdivider() ..
2634+ -- TRANSLATORS: Amalea
2635+ _([[Lutius, please find someone who will take care of planting new trees.]]))
2636+ .. new_objectives(obj_build_forester),
2637 w=400,
2638 }
2639
2640@@ -201,11 +201,11 @@
2641 title=_"Thinking About the Future",
2642 body= saledus(_"Saledus notes…",
2643 -- TRANSLATORS: Saledus
2644- _([[Sire, 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.]])
2645- .. paragraphdivider() ..
2646+ _([[Sire, 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.]])
2647+ .. paragraphdivider() ..
2648 -- TRANSLATORS: Saledus
2649- _([[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.]]))
2650- .. new_objectives(obj_build_quarry),
2651+ _([[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.]]))
2652+ .. new_objectives(obj_build_quarry),
2653 w=400,
2654 }
2655
2656@@ -213,10 +213,10 @@
2657 title=_"A Step Forward",
2658 body= saledus(_"Saledus looks excited…",
2659 -- TRANSLATORS: Saledus
2660- _([[Sire, 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.]])
2661- .. paragraphdivider() ..
2662+ _([[Sire, 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.]])
2663+ .. paragraphdivider() ..
2664 -- TRANSLATORS: Saledus
2665- _([[Now we truly can look forward to settling down on another island.]])),
2666+ _([[Now we truly can look forward to settling down on another island.]])),
2667 w=400,
2668 }
2669
2670@@ -224,15 +224,15 @@
2671 title=_"Mission Complete",
2672 body= lutius(_"Diary of Lutius",
2673 -- TRANSLATORS: Lutius - Diary
2674- _([[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.]])
2675- .. paragraphdivider() ..
2676- -- TRANSLATORS: Lutius - Diary
2677- _([[Tonight will be our last night on this island. Tomorrow morning we will leave, searching for a new place for our exile.]])
2678- .. paragraphdivider() ..
2679- -- TRANSLATORS: Lutius - Diary
2680- _([[I still wonder if we will ever see Fremil again.]]))
2681- .. objective_text(_"Victory",
2682- _[[You have completed this mission. You may continue playing if you wish, otherwise move on to the next mission.]]),
2683+ _([[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.]])
2684+ .. paragraphdivider() ..
2685+ -- TRANSLATORS: Lutius - Diary
2686+ _([[Tonight will be our last night on this island. Tomorrow morning we will leave, searching for a new place for our exile.]])
2687+ .. paragraphdivider() ..
2688+ -- TRANSLATORS: Lutius - Diary
2689+ _([[I still wonder if we will ever see Fremil again.]]))
2690+ .. objective_text(_"Victory",
2691+ _[[You have completed this mission. You may continue playing if you wish, otherwise move on to the next mission.]]),
2692 posy=1
2693 }
2694
2695@@ -240,5 +240,5 @@
2696 title=_"Safe Peninsula",
2697 body= saledus(_"Saledus speaks:",
2698 -- TRANSLATORS: Saledus
2699- _[[Sire, you have made this peninsula a very secure place. Now it’s time to move on!]])
2700+ _[[Sire, you have made this peninsula a very secure place. Now it’s time to move on!]])
2701 }
2702
2703=== modified file 'campaigns/emp02.wmf/scripting/mission_thread.lua'
2704--- campaigns/emp02.wmf/scripting/mission_thread.lua 2015-05-31 13:45:13 +0000
2705+++ campaigns/emp02.wmf/scripting/mission_thread.lua 2015-11-03 18:26:36 +0000
2706@@ -22,9 +22,9 @@
2707 -- Check for completing of the woodeconomy
2708 run(function()
2709 while not check_for_buildings(p1, {
2710- lumberjacks_house = 3,
2711- foresters_house = 1,
2712- sawmill = 1,
2713+ empire_lumberjacks_house = 3,
2714+ empire_foresters_house = 1,
2715+ empire_sawmill = 1,
2716 }) do sleep(2342) end
2717
2718 campaign_message_box(diary_page_6)
2719@@ -38,7 +38,7 @@
2720 local o_quarry = add_campaign_objective(obj_build_quarry)
2721 -- Check for completeness of the quarry
2722 run(function()
2723- while not check_for_buildings(p1, {quarry=1}) do sleep(3423) end
2724+ while not check_for_buildings(p1, {empire_quarry=1}) do sleep(3423) end
2725 o_quarry.done = true
2726
2727 campaign_message_box(diary_page_7)
2728@@ -49,11 +49,11 @@
2729 -- Wait till one mine goes up
2730 while true do
2731 local rv = p1:get_buildings{
2732- "coalmine",
2733- "deep_coalmine",
2734- "oremine",
2735- "deep_oremine",
2736- "marblemine",
2737+ "empire_coalmine",
2738+ "empire_coalmine_deep",
2739+ "empire_ironmine",
2740+ "empire_ironmine_deep",
2741+ "empire_marblemine",
2742 }
2743 local s = 0
2744 for idx,a in pairs(rv) do s = s + #a end
2745@@ -63,41 +63,41 @@
2746
2747 campaign_message_box(amalea_1)
2748 p1:allow_buildings{
2749- "well",
2750- "farm",
2751- "brewery",
2752- "vineyard",
2753- "winery",
2754- "mill",
2755- "bakery",
2756- "hunters_house",
2757- "piggery",
2758- "tavern",
2759- "inn",
2760- "fishers_house",
2761+ "empire_well",
2762+ "empire_farm",
2763+ "empire_brewery",
2764+ "empire_vineyard",
2765+ "empire_winery",
2766+ "empire_mill",
2767+ "empire_bakery",
2768+ "empire_hunters_house",
2769+ "empire_piggery",
2770+ "empire_tavern",
2771+ "empire_inn",
2772+ "empire_fishers_house",
2773 }
2774 local o = add_campaign_objective(obj_build_food_infrastructure)
2775
2776 -- Run easter egg: Amalea says something when Tavern is done
2777 run(function()
2778- while #p1:get_buildings("tavern") < 1 do sleep(2349) end
2779+ while #p1:get_buildings("empire_tavern") < 1 do sleep(2349) end
2780 campaign_message_box(amalea_2)
2781 end)
2782
2783 while true do
2784 local rv = p1:get_buildings{
2785- "brewery",
2786- "fishers_house",
2787- "bakery",
2788- "hunters_house",
2789- "piggery",
2790- "tavern",
2791- "inn",
2792+ "empire_brewery",
2793+ "empire_fishers_house",
2794+ "empire_bakery",
2795+ "empire_hunters_house",
2796+ "empire_piggery",
2797+ "empire_tavern",
2798+ "empire_inn",
2799 }
2800- if #rv.brewery > 0 and
2801- (#rv.tavern + #rv.inn) > 0 and
2802- (#rv.fishers_house + #rv.hunters_house +
2803- #rv.piggery + #rv.bakery) > 0 then break end
2804+ if #rv.empire_brewery > 0 and
2805+ (#rv.empire_tavern + #rv.empire_inn) > 0 and
2806+ (#rv.empire_fishers_house + #rv.empire_hunters_house +
2807+ #rv.empire_piggery + #rv.empire_bakery) > 0 then break end
2808 sleep(4857)
2809 end
2810 o.done = true
2811@@ -123,40 +123,40 @@
2812
2813 campaign_message_box(saledus_3)
2814 p1:allow_buildings{
2815- "coalmine",
2816- "deep_coalmine",
2817- "oremine",
2818- "deep_oremine",
2819- "stonemasons_house",
2820- "toolsmithy",
2821- "armorsmithy",
2822- "weaponsmithy",
2823- "smelting_works",
2824- "charcoal_kiln",
2825+ "empire_coalmine",
2826+ "empire_coalmine_deep",
2827+ "empire_ironmine",
2828+ "empire_ironmine_deep",
2829+ "empire_stonemasons_house",
2830+ "empire_toolsmithy",
2831+ "empire_armorsmithy",
2832+ "empire_weaponsmithy",
2833+ "empire_smelting_works",
2834+ "empire_charcoal_kiln",
2835 }
2836
2837 local o = add_campaign_objective(obj_build_mining_infrastructure)
2838 -- Wait for the infrastructure to come up
2839 while true do
2840 local rv = p1:get_buildings{
2841- "coalmine",
2842- "deep_coalmine",
2843- "oremine",
2844- "deep_oremine",
2845- "stonemasons_house",
2846- "toolsmithy",
2847- "armorsmithy",
2848- "weaponsmithy",
2849- "smelting_works",
2850- "charcoal_kiln",
2851+ "empire_coalmine",
2852+ "empire_coalmine_deep",
2853+ "empire_ironmine",
2854+ "empire_ironmine_deep",
2855+ "empire_stonemasons_house",
2856+ "empire_toolsmithy",
2857+ "empire_armorsmithy",
2858+ "empire_weaponsmithy",
2859+ "empire_smelting_works",
2860+ "empire_charcoal_kiln",
2861 }
2862- if #rv.stonemasons_house > 0 and
2863- #rv.toolsmithy > 0 and
2864- #rv.armorsmithy > 0 and
2865- #rv.smelting_works > 0 and
2866- (#rv.oremine + #rv.deep_oremine > 0) and
2867- (#rv.coalmine + #rv.deep_coalmine + #rv.charcoal_kiln > 0) and
2868- #rv.weaponsmithy > 0 then break end
2869+ if #rv.empire_stonemasons_house > 0 and
2870+ #rv.empire_toolsmithy > 0 and
2871+ #rv.empire_armorsmithy > 0 and
2872+ #rv.empire_smelting_works > 0 and
2873+ (#rv.empire_ironmine + #rv.empire_ironmine_deep > 0) and
2874+ (#rv.empire_coalmine + #rv.empire_coalmine_deep + #rv.empire_charcoal_kiln > 0) and
2875+ #rv.empire_weaponsmithy > 0 then break end
2876 sleep(4948)
2877 end
2878 o.done = true
2879@@ -175,7 +175,7 @@
2880
2881 campaign_message_box(saledus_1)
2882 local o = add_campaign_objective(obj_build_military_buildings)
2883- p1:allow_buildings{"barracks", "sentry"}
2884+ p1:allow_buildings{"empire_blockhouse", "empire_sentry"}
2885
2886 -- Go back to where we were
2887 timed_scroll(array_reverse(pts))
2888@@ -192,9 +192,9 @@
2889 pts = wait_for_roadbuilding_and_scroll(marblemountains)
2890
2891 campaign_message_box(saledus_2)
2892- p1:allow_buildings{"marblemine", "deep_marblemine"}
2893+ p1:allow_buildings{"empire_marblemine", "empire_marblemine_deep"}
2894 o = add_campaign_objective(obj_build_marblemine)
2895- run(function() while not check_for_buildings(p1, {marblemine = 1})
2896+ run(function() while not check_for_buildings(p1, {empire_marblemine = 1})
2897 do sleep(2133) end o.done = true end)
2898
2899 -- Go back to where we were
2900@@ -205,12 +205,13 @@
2901 -- Wait for various buildings to go up
2902 while true do
2903 local rv = p1:get_buildings{
2904- "marblemine", "deep_marblemine", "oremine", "deep_oremine",
2905- "coalmine", "deep_coalmine", "charcoal_kiln"
2906+ "empire_marblemine", "empire_marblemine_deep",
2907+ "empire_ironmine", "empire_ironmine_deep",
2908+ "empire_coalmine", "empire_coalmine_deep", "empire_charcoal_kiln"
2909 }
2910- local mm = #rv.marblemine + #rv.deep_marblemine
2911- local ore = #rv.oremine + #rv.deep_oremine
2912- local coal = #rv.coalmine + #rv.deep_coalmine + #rv.charcoal_kiln
2913+ local mm = #rv.empire_marblemine + #rv.empire_marblemine_deep
2914+ local ore = #rv.empire_ironmine + #rv.empire_ironmine_deep
2915+ local coal = #rv.empire_coalmine + #rv.empire_coalmine_deep + #rv.empire_charcoal_kiln
2916
2917 if mm > 0 and ore > 0 and coal > 0 then break end
2918 sleep(6674)
2919@@ -227,13 +228,13 @@
2920
2921 campaign_message_box(diary_page_8)
2922 local o = add_campaign_objective(obj_build_bigger_military_buildings)
2923- p1:allow_buildings{"outpost", "barrier", "tower"}
2924- p2:allow_buildings{"quarry"}
2925+ p1:allow_buildings{"empire_outpost", "empire_barrier", "empire_tower"}
2926+ p2:allow_buildings{"barbarians_quarry"}
2927
2928 -- Wait for one of the buildings to go up
2929 while true do
2930- local rv = p1:get_buildings{"outpost", "barrier", "tower"}
2931- if (#rv.tower + #rv.outpost + #rv.barrier) > 0 then
2932+ local rv = p1:get_buildings{"empire_outpost", "empire_barrier", "empire_tower"}
2933+ if (#rv.empire_tower + #rv.empire_outpost + #rv.empire_barrier) > 0 then
2934 break
2935 end
2936 sleep(2342)
2937@@ -245,11 +246,11 @@
2938 sleep(2343)
2939 end
2940 campaign_message_box(diary_page_9)
2941- p1:allow_buildings{"fortress"}
2942+ p1:allow_buildings{"empire_fortress"}
2943
2944 o = add_campaign_objective(obj_remove_the_barbarians)
2945 -- Wait for the fortress to come up
2946- while not check_for_buildings(p1, {fortress=1},
2947+ while not check_for_buildings(p1, {empire_fortress = 1},
2948 wl.Game().map:get_field(60,65):region(6))
2949 do sleep(2435) end
2950
2951@@ -269,4 +270,3 @@
2952 run(mining_infrastructure)
2953 run(expand_and_build_marblemine)
2954 run(barbarians_thread)
2955-
2956
2957=== modified file 'campaigns/emp02.wmf/scripting/starting_conditions.lua'
2958--- campaigns/emp02.wmf/scripting/starting_conditions.lua 2014-10-17 08:38:24 +0000
2959+++ campaigns/emp02.wmf/scripting/starting_conditions.lua 2015-11-03 18:26:36 +0000
2960@@ -3,63 +3,63 @@
2961 -- =======================================================================
2962 p1:forbid_buildings("all")
2963 p1:allow_buildings{
2964- "foresters_house",
2965- "lumberjacks_house",
2966- "quarry",
2967- "sawmill",
2968+ "empire_foresters_house",
2969+ "empire_lumberjacks_house",
2970+ "empire_quarry",
2971+ "empire_sawmill",
2972 }
2973 prefilled_buildings(p1,
2974- {"headquarters", 16, 21,
2975+ {"empire_headquarters", 16, 21,
2976 wares = {
2977- helm = 4,
2978- wood_lance = 5,
2979- ax = 6,
2980+ basket = 1,
2981+ empire_bread = 8,
2982 bread_paddle = 2,
2983- basket = 1,
2984- bread = 8,
2985 cloth = 5,
2986 coal = 12,
2987+ felling_ax = 6,
2988 fire_tongs = 2,
2989 fish = 6,
2990 fishing_rod = 2,
2991 flour = 4,
2992 gold = 4,
2993+ granite = 40,
2994 grape = 4,
2995 hammer = 12,
2996+ armor_helmet = 4,
2997 hunting_spear = 2,
2998 iron = 12,
2999- ironore = 5,
3000+ iron_ore = 5,
3001 kitchen_tools = 4,
3002+ log = 30,
3003 marble = 25,
3004- marblecolumn = 6,
3005+ marble_column = 6,
3006 meal = 4,
3007 meat = 6,
3008 pick = 14,
3009+ planks = 45,
3010 ration = 12,
3011 saw = 3,
3012 scythe = 5,
3013 shovel = 6,
3014- stone = 40,
3015- log = 30,
3016+ spear_wooden = 5,
3017 water = 12,
3018 wheat = 4,
3019 wine = 8,
3020- wood = 45,
3021 wool = 2,
3022 },
3023 workers = {
3024- armorsmith = 1,
3025- brewer = 1,
3026- builder = 10,
3027- carrier = 40,
3028- charcoal_burner = 1,
3029- geologist = 4,
3030- lumberjack = 3,
3031- miner = 4,
3032- stonemason = 2,
3033- toolsmith = 2,
3034- weaponsmith = 1,
3035- donkey = 20,
3036+ empire_armorsmith = 1,
3037+ empire_brewer = 1,
3038+ empire_builder = 10,
3039+ empire_carrier = 40,
3040+ empire_charcoal_burner = 1,
3041+ empire_donkey = 20,
3042+ empire_geologist = 4,
3043+ empire_lumberjack = 3,
3044+ empire_miner = 4,
3045+ empire_stonemason = 2,
3046+ empire_toolsmith = 2,
3047+ empire_weaponsmith = 1,
3048 },
3049 soldiers = {
3050 [{0,0,0,0}] = 45,
3051@@ -72,68 +72,67 @@
3052 -- =======================================================================
3053 p2:forbid_buildings("all")
3054 p2:allow_buildings{
3055- "bakery",
3056- "barrier",
3057- "farm",
3058- "reed_yard",
3059- "fishers_hut",
3060- "hardener",
3061- "hunters_hut",
3062- "lumberjacks_hut",
3063- "micro-brewery",
3064- "rangers_hut",
3065- "sentry",
3066- "lime_kiln",
3067- "tavern",
3068- "well",
3069+ "barbarians_bakery",
3070+ "barbarians_barrier",
3071+ "barbarians_farm",
3072+ "barbarians_fishers_hut",
3073+ "barbarians_hunters_hut",
3074+ "barbarians_lime_kiln",
3075+ "barbarians_lumberjacks_hut",
3076+ "barbarians_micro_brewery",
3077+ "barbarians_rangers_hut",
3078+ "barbarians_reed_yard",
3079+ "barbarians_sentry",
3080+ "barbarians_tavern",
3081+ "barbarians_well",
3082+ "barbarians_wood_hardener",
3083 }
3084
3085 prefilled_buildings(p2,
3086- {"headquarters", 60, 65,
3087+ {"barbarians_headquarters", 60, 65,
3088 wares = {
3089 ax = 6,
3090+ blackwood = 32,
3091+ barbarians_bread = 8,
3092 bread_paddle = 2,
3093- blackwood = 32,
3094 cloth = 5,
3095 coal = 12,
3096 fire_tongs = 2,
3097 fish = 6,
3098 fishing_rod = 2,
3099 gold = 4,
3100+ granite = 40,
3101 grout = 12,
3102 hammer = 12,
3103 hunting_spear = 2,
3104 iron = 12,
3105- ironore = 5,
3106+ iron_ore = 5,
3107 kitchen_tools = 4,
3108+ log = 80,
3109 meal = 4,
3110 meat = 6,
3111 pick = 14,
3112- pittabread = 8,
3113 ration = 12,
3114- raw_stone = 40,
3115 scythe = 6,
3116 shovel = 4,
3117 snack = 3,
3118- thatchreed = 24,
3119- log = 80,
3120+ thatch_reed = 24,
3121 },
3122 workers = {
3123- blacksmith = 2,
3124- brewer = 1,
3125- builder = 10,
3126- carrier = 40,
3127- charcoal_burner = 1,
3128- gardener = 1,
3129- geologist = 4,
3130- ["lime-burner"] = 1,
3131- lumberjack = 3,
3132- miner = 4,
3133- ranger = 1,
3134- stonemason = 2,
3135+ barbarians_blacksmith = 2,
3136+ barbarians_brewer = 1,
3137+ barbarians_builder = 10,
3138+ barbarians_carrier = 40,
3139+ barbarians_charcoal_burner = 1,
3140+ barbarians_gardener = 1,
3141+ barbarians_geologist = 4,
3142+ barbarians_lime_burner = 1,
3143+ barbarians_lumberjack = 3,
3144+ barbarians_miner = 4,
3145+ barbarians_ranger = 1,
3146+ barbarians_stonemason = 2,
3147 },
3148 soldiers = {
3149 [{0,0,0,0}] = 45,
3150 }
3151 })
3152-
3153
3154=== modified file 'campaigns/emp02.wmf/scripting/texts.lua'
3155--- campaigns/emp02.wmf/scripting/texts.lua 2015-09-11 17:38:01 +0000
3156+++ campaigns/emp02.wmf/scripting/texts.lua 2015-11-03 18:26:36 +0000
3157@@ -46,7 +46,7 @@
3158 title =_"Protect your colony",
3159 number = 1,
3160 body = objective_text(_"Protect Your Colony",
3161- listitem_bullet(_[[Build some barracks and sentries around the colony.]])
3162+ listitem_bullet(_[[Build some blockhouses and sentries around the colony.]])
3163 ),
3164 }
3165
3166@@ -108,10 +108,10 @@
3167 posy= 1,
3168 body = lutius(_"Diary of Lutius",
3169 -- TRANSLATORS: Lutius - Diary
3170- _([[Finally! This island appears to have been made for us, it is a gift from the Gods to my people and myself. Until now, we have only seen a small part of this island, but this part alone is already bringing sunlight to my mind. I feel as if we have found a priceless treasure, a land like paradise.]])
3171- .. paragraphdivider() ..
3172+ _([[Finally! This island appears to have been made for us, it is a gift from the Gods to my people and myself. Until now, we have only seen a small part of this island, but this part alone is already bringing sunlight to my mind. I feel as if we have found a priceless treasure, a land like paradise.]])
3173+ .. paragraphdivider() ..
3174 -- TRANSLATORS: Lutius - Diary
3175- _([[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.]])),
3176+ _([[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.]])),
3177 }
3178
3179 diary_page_5_1 = {
3180@@ -119,14 +119,14 @@
3181 posy = 1,
3182 body= lutius(_"Diary of Lutius",
3183 -- TRANSLATORS: Lutius - Diary
3184- _([[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.]])
3185- .. paragraphdivider() ..
3186- -- TRANSLATORS: Lutius - Diary
3187- _([[But until that day, many years may 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.]])
3188- .. paragraphdivider() ..
3189- -- TRANSLATORS: Lutius - Diary
3190- _([[But we mustn’t forget to preserve this natural bounty. These forests should last forever, so we really have to build a forester’s house too.]]))
3191- .. new_objectives(obj_build_woodeconomy)
3192+ _([[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.]])
3193+ .. paragraphdivider() ..
3194+ -- TRANSLATORS: Lutius - Diary
3195+ _([[But until that day, many years may 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.]])
3196+ .. paragraphdivider() ..
3197+ -- TRANSLATORS: Lutius - Diary
3198+ _([[But we mustn’t forget to preserve this natural bounty. These forests should last forever, so we really have to build a forester’s house too.]]))
3199+ .. new_objectives(obj_build_woodeconomy)
3200 }
3201
3202 diary_page_5_2 = {
3203@@ -134,11 +134,11 @@
3204 posy = 1,
3205 body= lutius(_"Diary of Lutius",
3206 -- TRANSLATORS: Lutius - Diary
3207- _([[Later, I walked down to the rocks in the south and looked for a place where we could build a quarry to get some hard stone for our larger buildings.]])
3208- .. paragraphdivider() ..
3209+ _([[Later, I walked down to the rocks in the south and looked for a place where we could build a quarry to get some hard stones for our larger buildings.]])
3210+ .. paragraphdivider() ..
3211 -- TRANSLATORS: Lutius - Diary
3212- _([[Again, I felt like I was 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.]]))
3213- .. new_objectives(obj_build_quarry)
3214+ _([[Again, I felt like I was 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.]]))
3215+ .. new_objectives(obj_build_quarry)
3216 }
3217
3218 diary_page_6 = {
3219@@ -146,15 +146,15 @@
3220 posy=1,
3221 body= lutius(_"Diary of Lutius",
3222 -- TRANSLATORS: Lutius - Diary
3223- _([[Good news! Today our wood economy was completed. Now we can be sure that we will have enough wood for our future building projects.]]))
3224+ _([[Good news! Today our wood economy was completed. Now we can be sure that we will have enough wood for our future building projects.]]))
3225 }
3226
3227 diary_page_7 = {
3228- title =_ "Stone for the Colony",
3229+ title =_ "Stones for the Colony",
3230 posy=1,
3231 body= lutius(_"Diary of Lutius",
3232 -- TRANSLATORS: Lutius - Diary
3233- _[[Great! Today the building of the quarry was completed. Now we will get enough stone to construct larger buildings.]]),
3234+ _[[Great! Today the building of the quarry was completed. Now we will get enough stones to construct larger buildings.]]),
3235 }
3236
3237 saledus_1 = {
3238@@ -162,66 +162,66 @@
3239 posy = 1,
3240 body= saledus(_"Saledus looks unhappy",
3241 -- TRANSLATORS: Saledus
3242- _([[Sire, 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.]])
3243- .. paragraphdivider() ..
3244- -- TRANSLATORS: Saledus
3245- _([[Perhaps the people aboard that ship were caught in the same storm which brought us to Malac’ Mor – and were brought to this island.]])
3246- .. paragraphdivider() ..
3247- -- TRANSLATORS: Saledus
3248- _([[I beg you to be cautious and to build some barracks or sentries around our colony.]]))
3249- .. new_objectives(obj_build_military_buildings)
3250+ _([[Sire, 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.]])
3251+ .. paragraphdivider() ..
3252+ -- TRANSLATORS: Saledus
3253+ _([[Perhaps the people aboard that ship were caught in the same storm which brought us to Malac’ Mor – and were brought to this island.]])
3254+ .. paragraphdivider() ..
3255+ -- TRANSLATORS: Saledus
3256+ _([[I beg you to be cautious and to build some blockhouses or sentries around our colony.]]))
3257+ .. new_objectives(obj_build_military_buildings)
3258 }
3259
3260 saledus_2 = {
3261 title =_ "Marble on the Mountain",
3262 body= saledus(_"Saledus smiles",
3263 -- TRANSLATORS: Saledus
3264- _([[Sire, I’ve got good news for you: As I walked to the east, I found a larger mountain. 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.]])
3265- .. paragraphdivider() ..
3266- -- TRANSLATORS: Saledus
3267- _([[It would be a good source for bolstering our supply of quality marble, beyond the meager quantities available from the quarry. Perhaps you were right when you said that this island was like paradise.]])
3268- .. paragraphdivider() ..
3269- -- TRANSLATORS: Saledus
3270- _([[Please, expand to that mountain and start mining marble.]]))
3271- .. new_objectives(obj_build_marblemine)
3272+ _([[Sire, I’ve got good news for you: As I walked to the east, I found a larger mountain. 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.]])
3273+ .. paragraphdivider() ..
3274+ -- TRANSLATORS: Saledus
3275+ _([[It would be a good source for bolstering our supply of quality marble, beyond the meager quantities available from the quarry. Perhaps you were right when you said that this island was like paradise.]])
3276+ .. paragraphdivider() ..
3277+ -- TRANSLATORS: Saledus
3278+ _([[Please, expand to that mountain and start mining marble.]]))
3279+ .. new_objectives(obj_build_marblemine)
3280 }
3281
3282 saledus_3 = {
3283 title =_ "Further Mountains",
3284 body= saledus(_"Saledus is excited",
3285 -- TRANSLATORS: Saledus
3286- _([[By the Gods, this is an unbelievable stroke of fortune! There are two more mountains, and it seems that one has a large quantity of coal and the other of iron ore. I advise you to immediately build iron ore and coal mines (or at least charcoal kilns), smelting works, toolsmithies, armor and weapon smithies.]])
3287- .. paragraphdivider() ..
3288- -- TRANSLATORS: Saledus
3289- _([[However: for all these bigger buildings, we need better and more elegant building materials. So you have to build a house for the stonemason, who will cut columns from marble.]])
3290- .. paragraphdivider() ..
3291- -- TRANSLATORS: Saledus
3292- _([[After everything, we can now begin to live like we did in Fremil.]]))
3293- .. new_objectives(obj_build_mining_infrastructure)
3294+ _([[By the Gods, this is an unbelievable stroke of fortune! There are two more mountains, and it seems that one has a large quantity of coal and the other of iron ore. I advise you to immediately build iron ore and coal mines (or at least charcoal kilns), smelting works, toolsmithies, armor and weapon smithies.]])
3295+ .. paragraphdivider() ..
3296+ -- TRANSLATORS: Saledus
3297+ _([[However: for all these bigger buildings, we need better and more elegant building materials. So you have to build a house for the stonemason, who will cut columns from marble.]])
3298+ .. paragraphdivider() ..
3299+ -- TRANSLATORS: Saledus
3300+ _([[After everything, we can now begin to live like we did in Fremil.]]))
3301+ .. new_objectives(obj_build_mining_infrastructure)
3302 }
3303
3304 amalea_1 = {
3305 title =_ "Food for the Miners",
3306 body= amalea(_"Amalea enters…",
3307 -- TRANSLATORS: Amalea
3308- _([[Lutius, don’t you think you forgot something important?]])
3309- .. paragraphdivider() ..
3310- -- TRANSLATORS: Amalea
3311- _([[It’s nice, and of course a good idea, to build up mines, which will give us a more comfortable life, 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.]])
3312- .. paragraphdivider() ..
3313- -- TRANSLATORS: Amalea
3314- _([[What do you think about helping them out? I can’t tell you what we need exactly… but here are my recommendations:]]))
3315- .. new_objectives(obj_build_food_infrastructure)
3316+ _([[Lutius, don’t you think you forgot something important?]])
3317+ .. paragraphdivider() ..
3318+ -- TRANSLATORS: Amalea
3319+ _([[It’s nice, and of course a good idea, to build up mines, which will give us a more comfortable life, 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.]])
3320+ .. paragraphdivider() ..
3321+ -- TRANSLATORS: Amalea
3322+ _([[What do you think about helping them out? I can’t tell you what we need exactly… but here are my recommendations:]]))
3323+ .. new_objectives(obj_build_food_infrastructure)
3324 }
3325
3326 amalea_2 = {
3327 title =_ "Our New Tavern",
3328 body= amalea(_"Amalea smiles",
3329 -- TRANSLATORS: Amalea
3330- _([[I just visited our new tavern ‘At the palms’. The beer they serve is really tasty. You really should have a drink there, too.]])
3331- .. paragraphdivider() ..
3332+ _([[I just visited our new tavern ‘At the palms’. The beer they serve is really tasty. You really should have a drink there, too.]])
3333+ .. paragraphdivider() ..
3334 -- TRANSLATORS: Amalea
3335- _([[It is good to see that we have now got a warmer and more familiar environment on our island. Thank you, Lutius.]]))
3336+ _([[It is good to see that we have now got a warmer and more familiar environment on our island. Thank you, Lutius.]]))
3337 }
3338
3339 diary_page_8 = {
3340@@ -229,17 +229,17 @@
3341 posy=1,
3342 body= lutius(_"Diary of Lutius",
3343 -- TRANSLATORS: Lutius - Diary
3344- _([[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.]])
3345- .. paragraphdivider() ..
3346- -- TRANSLATORS: Lutius - Diary
3347- _([[Today, as I walked down to the eastern shore, I got a shock. I caught sight of one of those hated, evil, Barbarian tribes with whom we have had so many problems before.]])
3348- .. paragraphdivider() ..
3349- -- TRANSLATORS: Lutius - Diary
3350- _([[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 I was able to flee and hide myself, before retreating back to our colony under cover of darkness.]])
3351- .. paragraphdivider() ..
3352- -- TRANSLATORS: Lutius - Diary
3353- _([[Anyway, we must build up stronger military buildings as soon as possible.]]))
3354- .. new_objectives(obj_build_bigger_military_buildings)
3355+ _([[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.]])
3356+ .. paragraphdivider() ..
3357+ -- TRANSLATORS: Lutius - Diary
3358+ _([[Today, as I walked down to the eastern shore, I got a shock. I caught sight of one of those hated, evil, Barbarian tribes with whom we have had so many problems before.]])
3359+ .. paragraphdivider() ..
3360+ -- TRANSLATORS: Lutius - Diary
3361+ _([[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 I was able to flee and hide myself, before retreating back to our colony under cover of darkness.]])
3362+ .. paragraphdivider() ..
3363+ -- TRANSLATORS: Lutius - Diary
3364+ _([[Anyway, we must build up stronger military buildings as soon as possible.]]))
3365+ .. new_objectives(obj_build_bigger_military_buildings)
3366 }
3367
3368 diary_page_9 = {
3369@@ -247,8 +247,8 @@
3370 posy=1,
3371 body= lutius(_"Diary of Lutius",
3372 -- TRANSLATORS: Lutius - Diary
3373- _([[That’s good. The first large military building is complete and the mining infrastructure is getting better and better. Now we should think about preparing ourselves for battle.]]))
3374- .. new_objectives(obj_remove_the_barbarians)
3375+ _([[That’s good. The first large military building is complete and the mining infrastructure is getting better and better. Now we should think about preparing ourselves for battle.]]))
3376+ .. new_objectives(obj_remove_the_barbarians)
3377 }
3378
3379 diary_page_10 = {
3380@@ -256,12 +256,12 @@
3381 posy=1,
3382 body= lutius(_"Diary of Lutius",
3383 -- TRANSLATORS: Lutius - Diary
3384- _([[Today is a proud day. We have fought for our new home and risen victorious.]])
3385- .. paragraphdivider() ..
3386+ _([[Today is a proud day. We have fought for our new home and risen victorious.]])
3387+ .. paragraphdivider() ..
3388 -- TRANSLATORS: Lutius - Diary
3389- _([[There are still a few Barbarians hiding on our island, but I am sure that we will find them soon. Every Barbarian who doesn’t attack us will be put in a boat with the other peaceful ones, and sent back to their country.]]))
3390- .. objective_text(_"Victory",
3391- _[[You have established a working economy, trained new soldiers and driven the Barbarians from the island.]])
3392+ _([[There are still a few Barbarians hiding on our island, but I am sure that we will find them soon. Every Barbarian who doesn’t attack us will be put in a boat with the other peaceful ones, and sent back to their country.]]))
3393+ .. objective_text(_"Victory",
3394+ _[[You have established a working economy, trained new soldiers and driven the Barbarians from the island.]])
3395 }
3396
3397 seven_days_later = {
3398@@ -276,10 +276,10 @@
3399 posy=1,
3400 body= lutius(_"Diary of Lutius",
3401 -- TRANSLATORS: Lutius - Diary
3402- _([[Today a pigeon landed on our island. It brought a message which fills me with dark thoughts and brings back my fears.]])
3403- .. paragraphdivider() ..
3404+ _([[Today a pigeon landed on our island. It brought a message which fills me with dark thoughts and brings back my fears.]])
3405+ .. paragraphdivider() ..
3406 -- TRANSLATORS: Lutius - Diary
3407- _([[The message was addressed to me, begging me to come back to Fremil. It says that the Empire is at war with the Barbarians. They were attacked from the north by the tribe that I was forbidden to attack. It is clear to me what I must do…]])
3408- .. paragraphdivider() ..
3409- _([[You have completed this mission. You may continue playing if you wish, otherwise move on to the next mission.]]))
3410+ _([[The message was addressed to me, begging me to come back to Fremil. It says that the Empire is at war with the Barbarians. They were attacked from the north by the tribe that I was forbidden to attack. It is clear to me what I must do…]])
3411+ .. paragraphdivider() ..
3412+ _([[You have completed this mission. You may continue playing if you wish, otherwise move on to the next mission.]]))
3413 }
3414
3415=== modified file 'campaigns/tutorial01_basic_control.wmf/scripting/helper_functions.lua'
3416--- campaigns/tutorial01_basic_control.wmf/scripting/helper_functions.lua 2014-10-17 08:38:24 +0000
3417+++ campaigns/tutorial01_basic_control.wmf/scripting/helper_functions.lua 2015-11-03 18:26:36 +0000
3418@@ -12,13 +12,13 @@
3419 local remove_field = true
3420
3421 if f.immovable then
3422- local n = f.immovable.descr.name:match("greenland_stones(%d*)")
3423+ local n = f.immovable.descr.name:match("greenland_rocks(%d*)")
3424 if n then
3425 n = tonumber(n)
3426 f.immovable:remove()
3427 if n > 1 then
3428 remove_field = false
3429- map:place_immovable("greenland_stones" .. n-1, f)
3430+ map:place_immovable("greenland_rocks" .. n-1, f, "world")
3431 end
3432 sleep(sleeptime)
3433 end
3434@@ -29,4 +29,3 @@
3435 end
3436 end
3437 end
3438-
3439
3440=== modified file 'campaigns/tutorial01_basic_control.wmf/scripting/helper_functions_demonstration.lua'
3441--- campaigns/tutorial01_basic_control.wmf/scripting/helper_functions_demonstration.lua 2014-10-19 09:39:36 +0000
3442+++ campaigns/tutorial01_basic_control.wmf/scripting/helper_functions_demonstration.lua 2015-11-03 18:26:36 +0000
3443@@ -55,16 +55,16 @@
3444
3445 sleep(sleeptime)
3446 if panel ~= nil then
3447- if not panel.active then -- If this is a tab and already on, do nothing
3448- mouse_smoothly_to_panel(panel, g_T)
3449- sleep(sleeptime)
3450- if panel.press then panel:press() sleep(250) end
3451- if panel.click then panel:click() end
3452- sleep(sleeptime)
3453- end
3454+ if not panel.active then -- If this is a tab and already on, do nothing
3455+ mouse_smoothly_to_panel(panel, g_T)
3456+ sleep(sleeptime)
3457+ if panel.press then panel:press() sleep(250) end
3458+ if panel.click then panel:click() end
3459+ sleep(sleeptime)
3460+ end
3461 else
3462 print('Attempt to click on a non-existing panel.')
3463- end
3464+ end
3465 blocker:lift_blocks()
3466 end
3467
3468
3469=== modified file 'campaigns/tutorial01_basic_control.wmf/scripting/init.lua'
3470--- campaigns/tutorial01_basic_control.wmf/scripting/init.lua 2015-02-16 12:49:11 +0000
3471+++ campaigns/tutorial01_basic_control.wmf/scripting/init.lua 2015-11-03 18:26:36 +0000
3472@@ -33,4 +33,3 @@
3473 include "map:scripting/helper_functions_demonstration.lua"
3474
3475 include "map:scripting/mission_thread.lua"
3476-
3477
3478=== modified file 'campaigns/tutorial01_basic_control.wmf/scripting/mission_thread.lua'
3479--- campaigns/tutorial01_basic_control.wmf/scripting/mission_thread.lua 2015-06-01 20:08:40 +0000
3480+++ campaigns/tutorial01_basic_control.wmf/scripting/mission_thread.lua 2015-11-03 18:26:36 +0000
3481@@ -3,7 +3,7 @@
3482 -- ================
3483
3484 function starting_infos()
3485- map:place_immovable("debris00",second_quarry_field)
3486+ map:place_immovable("debris00",second_quarry_field, "world")
3487 -- so that the player cannot build anything here
3488
3489 sleep(1000)
3490@@ -44,7 +44,7 @@
3491
3492 click_on_field(first_lumberjack_field)
3493 click_on_panel(wl.ui.MapView().windows.field_action.tabs.small)
3494- click_on_panel(wl.ui.MapView().windows.field_action.buttons.lumberjacks_hut)
3495+ click_on_panel(wl.ui.MapView().windows.field_action.buttons.barbarians_lumberjacks_hut)
3496
3497 sleep(500)
3498
3499@@ -99,7 +99,7 @@
3500 sleep(30*1000) -- let the player experiment a bit with the speed
3501 message_box_objective(plr, construction_site_window)
3502
3503- while #plr:get_buildings("lumberjacks_hut") < 1 do sleep(300) end
3504+ while #plr:get_buildings("barbarians_lumberjacks_hut") < 1 do sleep(300) end
3505
3506 message_box_objective(plr, lumberjack_message_07)
3507
3508@@ -153,7 +153,7 @@
3509 immovable_is_legal = function(i)
3510 -- only allow quarry and flag at this position because the road building below relies on this
3511 if (i.fields[1] == first_quarry_field) or (i.fields[1] == first_quarry_field.brn) then
3512- cs = allow_constructionsite(i, {"quarry"})
3513+ cs = allow_constructionsite(i, {"barbarians_quarry"})
3514 return cs
3515 else return false end
3516 end
3517@@ -237,7 +237,7 @@
3518 -- Interludium: talk about census and statistics
3519 census_and_statistics()
3520
3521- while #plr:get_buildings("quarry") < 2 do sleep(1400) end
3522+ while #plr:get_buildings("barbarians_quarry") < 2 do sleep(1400) end
3523 o.done = true
3524
3525 messages()
3526@@ -253,7 +253,7 @@
3527 local cs = nil
3528 immovable_is_legal = function(i)
3529 if (i.fields[1] == second_quarry_field) or (i.fields[1] == second_quarry_field.brn) then
3530- cs = allow_constructionsite(i, {"quarry"})
3531+ cs = allow_constructionsite(i, {"barbarians_quarry"})
3532 return cs
3533 elseif(i.descr.type_name == "flag") or (i.descr.type_name == "road") then
3534 register_immovable_as_allowed(i)
3535@@ -340,7 +340,7 @@
3536 -- From now on, the player can build whatever he wants
3537 terminate_bad_boy_sentinel = true
3538
3539- while #plr:get_buildings("quarry") > 0 do sleep(200) end
3540+ while #plr:get_buildings("barbarians_quarry") > 0 do sleep(200) end
3541 o.done = true
3542
3543 sleep(3000)
3544@@ -357,7 +357,12 @@
3545 -- wait until there are soldiers inside so that the player sees the expansion
3546 local soldier_inside = false
3547 while not soldier_inside do
3548- local military_buildings = array_combine(plr:get_buildings("sentry"), plr:get_buildings("donjon"), plr:get_buildings("barrier"), plr:get_buildings("fortress"), plr:get_buildings("citadel"))
3549+ local military_buildings = array_combine(
3550+ plr:get_buildings("barbarians_sentry"),
3551+ plr:get_buildings("barbarians_tower"),
3552+ plr:get_buildings("barbarians_barrier"),
3553+ plr:get_buildings("barbarians_fortress"),
3554+ plr:get_buildings("barbarians_citadel"))
3555 for i = 1,#military_buildings do
3556 for k,v in pairs(military_buildings[i]:get_soldiers("all")) do
3557 soldier_inside = true
3558@@ -385,4 +390,3 @@
3559
3560 run(bad_boy_sentry)
3561 run(starting_infos)
3562-
3563
3564=== modified file 'campaigns/tutorial01_basic_control.wmf/scripting/starting_conditions.lua'
3565--- campaigns/tutorial01_basic_control.wmf/scripting/starting_conditions.lua 2014-10-17 08:38:24 +0000
3566+++ campaigns/tutorial01_basic_control.wmf/scripting/starting_conditions.lua 2015-11-03 18:26:36 +0000
3567@@ -5,6 +5,5 @@
3568 plr:allow_buildings("all")
3569
3570 -- A default headquarters
3571-include "tribes/barbarians/scripting/sc00_headquarters.lua"
3572-init.func(plr) -- defined in sc00_headquarters
3573-
3574+include "tribes/scripting/starting_conditions/barbarians/headquarters.lua"
3575+init.func(plr) -- defined in headquarters
3576
3577=== modified file 'campaigns/tutorial01_basic_control.wmf/scripting/texts.lua'
3578--- campaigns/tutorial01_basic_control.wmf/scripting/texts.lua 2015-07-30 07:16:09 +0000
3579+++ campaigns/tutorial01_basic_control.wmf/scripting/texts.lua 2015-11-03 18:26:36 +0000
3580@@ -40,7 +40,7 @@
3581 body = rt(
3582 h1(_"Let’s dive right in!") ..
3583 p(_[[There are three different tribes in Widelands: the Barbarians, the Empire and the Atlanteans. All tribes have a different economy, strength and weaknesses, but the general gameplay is the same for all. We will play the Barbarians for now.]]) ..
3584- p(_[[You will usually start the game with one headquarters. This is the big building with the blue flag in front of it. The headquarters is a warehouse that stores wares, workers and soldiers. Some wares are needed for building houses, others for making other wares. Obviously, the wares in the headquarters will not last forever, so you must make sure to replace them. The most important wares in the early game are the basic construction wares: logs and raw stone. Let’s make sure that we do not run out of logs. For this, we need a lumberjack and a hut for him to stay in.]]) ..
3585+ p(_[[You will usually start the game with one headquarters. This is the big building with the blue flag in front of it. The headquarters is a warehouse that stores wares, workers and soldiers. Some wares are needed for building houses, others for making other wares. Obviously, the wares in the headquarters will not last forever, so you must make sure to replace them. The most important wares in the early game are the basic construction wares: logs and granite. Let’s make sure that we do not run out of logs. For this, we need a lumberjack and a hut for him to stay in.]]) ..
3586 p(_[[We need to find a nice place for the lumberjack’s hut. To make this easier, we can activate ‘Show Building Spaces’. There are two ways you can do this, either by clicking on the ‘Show Building Spaces’ button at the bottom of the screen, which is the fourth one from the left. Or you can use the SPACE key to toggle it.]]) ..
3587 paragraphdivider() ..
3588 listitem_bullet(_[[Left-click the ‘OK’ button to close this box and then try it.]])
3589@@ -169,7 +169,7 @@
3590 title = _"Lumberjack is Done",
3591 position = "topright",
3592 body = rt(
3593- p(_[[Excellent. The lumberjack’s hut is done. A lumberjack will now move in and start chopping down trees, so our log income is secured for now. Now on to the raw stone.]])
3594+ p(_[[Excellent. The lumberjack’s hut is done. A lumberjack will now move in and start chopping down trees, so our log income is secured for now. Now on to the granite.]])
3595 ),
3596 h = 300,
3597 w = 350
3598@@ -179,7 +179,7 @@
3599 title = _"Some Rocks Were Found",
3600 body = rt(h1(_"Getting a Quarry Up")) ..
3601 rt(
3602- p(_[[Stones can be mined in granite mines, but the easier way is to build a quarry next to some rocks lying around. As it happens, there is a pile of them just to the west (left) of your headquarters. I will teach you now how to move your view over there.]]) ..
3603+ p(_[[Granite can be mined in granite mines, but the easier way is to build a quarry next to some rocks lying around. As it happens, there is a pile of them just to the west (left) of your headquarters. I will teach you now how to move your view over there.]]) ..
3604 paragraphdivider() ..
3605 listitem_arrow(_[[There are three ways to move your view. The first one is using the cursor keys on your keyboard. Go ahead and try this out.]]) ..
3606 listitem_bullet(_[[Click the ‘OK’ button and then move the view using the cursor keys]])
3607@@ -360,7 +360,7 @@
3608 position = "topright",
3609 title = _"Build a second quarry",
3610 body = rt(
3611- p(_[[When there are many rocks, you can consider building another quarry. This will make the stone production faster.]]) ..
3612+ p(_[[When there are many rocks, you can consider building another quarry. This will make the granite production faster.]]) ..
3613 paragraphdivider() ..
3614 listitem_bullet(_[[Build a second quarry near the rocks and connect it to your road network.]])
3615 ),
3616@@ -474,7 +474,7 @@
3617 title = _"Expanding Your Territory!",
3618 body = rt(
3619 p(_[[There is one more thing I’d like to teach you now: Expanding your territory. The place that we started with around our headquarters is barely enough for a basic building infrastructure, and we do not have access to mountains, which we need to mine minerals and coal. So, we have to expand our territory.]]) ..
3620- p(_[[Expanding is as simple as building a military building at the edge of your territory. The Barbarians have a selection of different military buildings: sentries, barriers, donjons, fortresses and citadels. The bigger the building, the more expensive it is to build, but the more land it will conquer around itself and the more soldiers can be stationed there. The buildings also vary in their vision range: buildings with a tower see farther than others.]]) ..
3621+ p(_[[Expanding is as simple as building a military building at the edge of your territory. The Barbarians have a selection of different military buildings: sentries, barriers, towers, fortresses and citadels. The bigger the building, the more expensive it is to build, but the more land it will conquer around itself and the more soldiers can be stationed there. The buildings also vary in their vision range: buildings with a tower see farther than others.]]) ..
3622 p(_[[As soon as a military building is manned, it will extend your land. I will tell your more about military buildings in another tutorial.]]) ..
3623 paragraphdivider() ..
3624 listitem_bullet(_[[Let’s try it out now: build a military building on your border.]]) ..
3625@@ -486,7 +486,7 @@
3626 h1(_"Make your territory grow") ..
3627 p(_[[In Widelands, it is necessary to build many buildings, which take up a lot of space. To expand your territory, you have to build military buildings next to your border. Every tribe has several military buildings.]]) ..
3628 paragraphdivider() ..
3629- listitem_bullet(_[[The Barbarians have four different military buildings you can build: the sentry (small), the barrier and the donjon (both medium) and the fortress (big). Just choose the one you like most.]]) ..
3630+ listitem_bullet(_[[The Barbarians have four different military buildings you can build: the sentry (small), the barrier and the tower (both medium) and the fortress (big). Just choose the one you like most.]]) ..
3631 listitem_arrow(_[[Remember that big buildings (green icon) cannot be built on small (red) or medium (yellow) building plots, but buildings can be built on a building plot that provides more space than they need. You should always keep that in mind when you search for a suitable place.]])
3632 )
3633 }
3634
3635=== modified file 'campaigns/tutorial02_warfare.wmf/scripting/init.lua'
3636--- campaigns/tutorial02_warfare.wmf/scripting/init.lua 2014-10-28 12:58:23 +0000
3637+++ campaigns/tutorial02_warfare.wmf/scripting/init.lua 2015-11-03 18:26:36 +0000
3638@@ -17,4 +17,3 @@
3639 include "map:scripting/texts.lua"
3640
3641 include "map:scripting/mission_thread.lua"
3642-
3643
3644=== modified file 'campaigns/tutorial02_warfare.wmf/scripting/mission_thread.lua'
3645--- campaigns/tutorial02_warfare.wmf/scripting/mission_thread.lua 2015-05-31 13:45:13 +0000
3646+++ campaigns/tutorial02_warfare.wmf/scripting/mission_thread.lua 2015-11-03 18:26:36 +0000
3647@@ -1,105 +1,104 @@
3648--- ================
3649--- Mission thread
3650--- ================
3651-
3652-function intro()
3653- sleep(1000)
3654- message_box_objective(plr, introduction)
3655-
3656- training()
3657-end
3658-
3659-function training()
3660- -- Teach about trainingsites and soldiers' abilities
3661- sleep(5000) -- to let soldiers walk
3662-
3663- message_box_objective(plr, abilities)
3664- local o = message_box_objective(plr, battlearena1)
3665- while #plr:get_buildings("battlearena") == 0 do sleep(500) end
3666- o.done = true
3667- message_box_objective(plr, battlearena2)
3668-
3669- o = message_box_objective(plr, trainingcamp1)
3670- while #plr:get_buildings("trainingcamp") == 0 do sleep(500) end
3671- o.done = true
3672- message_box_objective(plr, trainingcamp2)
3673-
3674- sleep(300)
3675-
3676- military_buildings()
3677-end
3678-
3679-function military_buildings()
3680- message_box_objective(plr, heroes_rookies)
3681- message_box_objective(plr, soldier_capacity)
3682- local o = message_box_objective(plr, dismantle)
3683-
3684- while #plr:get_buildings("sentry") > 1 do sleep(200) end
3685- o.done = true
3686-
3687- sleep(2000)
3688-
3689- enhance_fortress()
3690-end
3691-
3692-function enhance_fortress()
3693- sleep(5000)
3694-
3695- local citadel_field = wl.Game().map:get_field(32, 62)
3696- local o = message_box_objective(plr, fortress_enhancement)
3697- while not (citadel_field.immovable and
3698- citadel_field.immovable.descr.name == "citadel") do sleep(800) end
3699- o.done = true
3700-
3701- create_enemy()
3702-
3703- -- Wait for soldiers to move in
3704- local citadel = citadel_field.immovable
3705- local break_out = false
3706- while not break_out do
3707- for k,v in pairs(citadel:get_soldiers("all")) do
3708- break_out = true
3709- break -- Break out if there is at least one soldier here
3710- end
3711-
3712- sleep(500)
3713- end
3714-
3715- sleep(300)
3716-
3717- attack()
3718-end
3719-
3720-function create_enemy()
3721- prefilled_buildings(wl.Game().players[2],
3722- {"barrier", 24, 7},
3723- {"sentry", 29, 16},
3724- {"tower", 30, 21},
3725- {"headquarters", 30, 27,
3726- soldiers = {
3727- [{0,0,0,0}] = 15,
3728- }
3729- }
3730- )
3731- wl.Game().players[2]:forbid_buildings("all")
3732-end
3733-
3734-function attack()
3735- local o = message_box_objective(plr, attack_enemy)
3736-
3737- local plr2 = wl.Game().players[2]
3738- while #plr2:get_buildings("headquarters") > 0 do
3739- sleep(3000)
3740- end
3741- o.done = true
3742-
3743- conclusion()
3744-end
3745-
3746-function conclusion()
3747- sleep(4000)
3748- message_box_objective(plr, conclude_tutorial)
3749-end
3750-
3751-run(intro)
3752-
3753+-- ================
3754+-- Mission thread
3755+-- ================
3756+
3757+function intro()
3758+ sleep(1000)
3759+ message_box_objective(plr, introduction)
3760+
3761+ training()
3762+end
3763+
3764+function training()
3765+ -- Teach about trainingsites and soldiers' abilities
3766+ sleep(5000) -- to let soldiers walk
3767+
3768+ message_box_objective(plr, abilities)
3769+ local o = message_box_objective(plr, battlearena1)
3770+ while #plr:get_buildings("barbarians_battlearena") == 0 do sleep(500) end
3771+ o.done = true
3772+ message_box_objective(plr, battlearena2)
3773+
3774+ o = message_box_objective(plr, trainingcamp1)
3775+ while #plr:get_buildings("barbarians_trainingcamp") == 0 do sleep(500) end
3776+ o.done = true
3777+ message_box_objective(plr, trainingcamp2)
3778+
3779+ sleep(300)
3780+
3781+ military_buildings()
3782+end
3783+
3784+function military_buildings()
3785+ message_box_objective(plr, heroes_rookies)
3786+ message_box_objective(plr, soldier_capacity)
3787+ local o = message_box_objective(plr, dismantle)
3788+
3789+ while #plr:get_buildings("barbarians_sentry") > 1 do sleep(200) end
3790+ o.done = true
3791+
3792+ sleep(2000)
3793+
3794+ enhance_fortress()
3795+end
3796+
3797+function enhance_fortress()
3798+ sleep(5000)
3799+
3800+ local citadel_field = wl.Game().map:get_field(32, 62)
3801+ local o = message_box_objective(plr, fortress_enhancement)
3802+ while not (citadel_field.immovable and
3803+ citadel_field.immovable.descr.name == "barbarians_citadel") do sleep(800) end
3804+ o.done = true
3805+
3806+ create_enemy()
3807+
3808+ -- Wait for soldiers to move in
3809+ local citadel = citadel_field.immovable
3810+ local break_out = false
3811+ while not break_out do
3812+ for k,v in pairs(citadel:get_soldiers("all")) do
3813+ break_out = true
3814+ break -- Break out if there is at least one soldier here
3815+ end
3816+
3817+ sleep(500)
3818+ end
3819+
3820+ sleep(300)
3821+
3822+ attack()
3823+end
3824+
3825+function create_enemy()
3826+ prefilled_buildings(wl.Game().players[2],
3827+ {"empire_barrier", 24, 7},
3828+ {"empire_sentry", 29, 16},
3829+ {"empire_tower", 30, 21},
3830+ {"empire_headquarters", 30, 27,
3831+ soldiers = {
3832+ [{0,0,0,0}] = 15,
3833+ }
3834+ }
3835+ )
3836+ wl.Game().players[2]:forbid_buildings("all")
3837+end
3838+
3839+function attack()
3840+ local o = message_box_objective(plr, attack_enemy)
3841+
3842+ local plr2 = wl.Game().players[2]
3843+ while #plr2:get_buildings("empire_headquarters") > 0 do
3844+ sleep(3000)
3845+ end
3846+ o.done = true
3847+
3848+ conclusion()
3849+end
3850+
3851+function conclusion()
3852+ sleep(4000)
3853+ message_box_objective(plr, conclude_tutorial)
3854+end
3855+
3856+run(intro)
3857
3858=== modified file 'campaigns/tutorial02_warfare.wmf/scripting/starting_conditions.lua'
3859--- campaigns/tutorial02_warfare.wmf/scripting/starting_conditions.lua 2014-10-17 08:38:24 +0000
3860+++ campaigns/tutorial02_warfare.wmf/scripting/starting_conditions.lua 2015-11-03 18:26:36 +0000
3861@@ -7,8 +7,8 @@
3862 plr:allow_buildings("all")
3863
3864 prefilled_buildings(plr,
3865- {"fortress", 32, 62, soldiers = {[{3,5,0,2}] = 8 }},
3866- {"warehouse", 33, 57,
3867+ {"barbarians_fortress", 32, 62, soldiers = {[{3,5,0,2}] = 8 }},
3868+ {"barbarians_warehouse", 33, 57,
3869 soldiers = {
3870 [{0,0,0,0}] = 20, -- needed for training
3871 [{1,0,0,0}] = 1,
3872@@ -24,9 +24,9 @@
3873 [{3,5,0,2}] = 30,
3874 },
3875 workers = {
3876- builder = 3,
3877- ox = 15,
3878- trainer = 2
3879+ barbarians_builder = 3,
3880+ barbarians_ox = 15,
3881+ barbarians_trainer = 2
3882 },
3883 wares = {
3884 log = 40,
3885@@ -34,27 +34,27 @@
3886 cloth = 10,
3887 gold = 10,
3888 grout = 30,
3889- raw_stone = 30,
3890- thatchreed = 40,
3891+ granite = 30,
3892+ thatch_reed = 40,
3893
3894 -- wares for training
3895- sharpax = 20,
3896- broadax = 20,
3897- bronzeax = 20,
3898- battleax = 20,
3899- warriorsax = 20,
3900- helm = 20,
3901- mask = 20,
3902- warhelm = 20,
3903- strongbeer = 50,
3904- pittabread = 200,
3905+ ax_sharp = 20,
3906+ ax_broad = 20,
3907+ ax_bronze = 20,
3908+ ax_battle = 20,
3909+ ax_warriors = 20,
3910+ helmet = 20,
3911+ helmet_mask = 20,
3912+ helmet_warhelm = 20,
3913+ beer_strong = 50,
3914+ barbarians_bread = 200,
3915 meat = 200
3916 }
3917 },
3918- {"sentry", 28, 57, soldiers = {[{3,5,0,2}] = 2 }},
3919- {"sentry", 37, 61, soldiers = {[{3,5,0,2}] = 2 }},
3920- {"barrier", 30, 58, soldiers = {[{0,0,0,0}] = 1 }}, -- to make sure some soldiers walk out
3921- {"lumberjacks_hut", 24, 1}
3922+ {"barbarians_sentry", 28, 57, soldiers = {[{3,5,0,2}] = 2 }},
3923+ {"barbarians_sentry", 37, 61, soldiers = {[{3,5,0,2}] = 2 }},
3924+ {"barbarians_barrier", 30, 58, soldiers = {[{0,0,0,0}] = 1 }}, -- to make sure some soldiers walk out
3925+ {"barbarians_lumberjacks_hut", 24, 1}
3926 )
3927
3928 -- Build the roads
3929@@ -66,4 +66,3 @@
3930 end
3931
3932 run(init_player)
3933-
3934
3935=== modified file 'campaigns/tutorial02_warfare.wmf/scripting/texts.lua'
3936--- campaigns/tutorial02_warfare.wmf/scripting/texts.lua 2015-09-05 16:42:45 +0000
3937+++ campaigns/tutorial02_warfare.wmf/scripting/texts.lua 2015-11-03 18:26:36 +0000
3938@@ -1,215 +1,214 @@
3939--- =======================================================================
3940--- Texts for the tutorial mission
3941--- =======================================================================
3942-
3943--- =========================
3944--- Some formating functions
3945--- =========================
3946-
3947-include "scripting/formatting.lua"
3948-include "scripting/format_scenario.lua"
3949-
3950--- =============
3951--- Texts below
3952--- =============
3953-
3954-introduction = {
3955- title = _"Introduction",
3956- body = rt(
3957- h1(_"Soldiers, Training and Warfare") ..
3958- p(_[[In this scenario, I’m going to tell you about soldiers, their training and their profession: warfare. Although Widelands is about building up, not burning down, there is an enemy you sometimes have to defeat. Yet warfare is mainly focused on economics, not on military strategies, and its mechanics deserve explanation.]]) ..
3959- p(_[[I’ve set up a small village that contains the most important buildings. You also have enough wares, so you do not have to take care of your weapons production. In a real game, you will not have this luxury.]])
3960- ),
3961- h = 300
3962-}
3963-
3964-abilities = {
3965- position = "topright",
3966- title = _"Soldiers’ abilities",
3967- body = rt(
3968- p(_[[A new soldier is created like a worker: when a military building needs a soldier, a carrier grabs the needed weapons and armor from a warehouse (or your headquarters) and walks up the road to your new building. Basic Barbarian soldiers do not use armor, they only need an ax.]]) ..
3969- p(_[[Take a look at the soldiers that are on their way to our military buildings. They look different from normal workers: they have a health bar over their head that displays their remaining health, and they have four symbols, which symbolize the individual soldier’s current levels in the four different categories: health, attack, defense and evade.]]) ..
3970- p(_[[If a Barbarian soldier is fully trained, he has level 3 health, level 5 attack, level 0 defense and level 2 evade. This is one fearsome warrior then! The individual abilities have the following meaning:]])
3971- ) ..
3972- rt("image=tribes/barbarians/soldier/hp_level0.png", h2(_"Health:"))..
3973- rt(p(_[[The total life of a soldier. A Barbarian soldier starts with 130 health, and he will gain 28 health with each health level.]])) ..
3974- rt("image=tribes/barbarians/soldier/attack_level0.png", h2(_"Attack:")) ..
3975- rt(p(_[[The amount of damage a soldier will inflict on the enemy when an attack is successful. A Barbarian soldier with attack level 0 inflicts ~14 points of health damage when he succeeds in hitting an enemy. For each attack level, he gains 7 damage points.]])) ..
3976- -- The Atlanteans' image, because the Barbarian one has a white background
3977- rt("image=tribes/atlanteans/soldier/defense_level0.png", h2(_"Defense:")) ..
3978- rt(p(_[[The defense is the percentage that is subtracted from the attack value. The Barbarians cannot train in this skill and therefore have always defense level 0, which means that the damage is always reduced by 3%. If an attacker with an attack value of 35 points hits a Barbarian soldier, the Barbarian will lose 35·0.97 = 34 health.]])) ..
3979- rt("image=tribes/barbarians/soldier/evade_level0.png", h2(_"Evade:")) ..
3980- rt(p(_[[Evade is the chance that the soldier is able to dodge an attack. A level 0 Barbarian has a 25% chance to evade an attack, and this increases in steps of 15% for each level.]]))
3981-}
3982-
3983-battlearena1 = {
3984- position = "topright",
3985- title = _"The Battle Arena",
3986- body = rt(
3987- p(_[[Now I have talked about training and levels. Let me elaborate on that.]]) ..
3988- p(_[[A newly created soldier has no experience and is not very good at fighting. To make him stronger, you can build training sites.]]) ..
3989- p(_[[One of these training sites is the battle arena. It is a big and expensive building, and it trains soldiers in evade. Since soldiers get very hungry during their workout, this building needs a lot of food and strongbeer. In a real game, you should have a good infrastructure before you build it.]]) ..
3990- paragraphdivider() ..
3991- listitem_bullet(_[[To see evade training in action, build a battle arena.]]) ..
3992- "</p><p font-size=8><br></p>" ..
3993- p(_[[While we’re waiting for the battle arena, you’ll probably notice some soldiers walking around. They are automatically exchanged from time to time. I’ll teach you about that later.]])
3994- ),
3995- h = 400,
3996- obj_name = "build_battlearena",
3997- obj_title = _"Build a battle arena",
3998- obj_body = rt(
3999- paragraphdivider() ..
4000- listitem_bullet(_[[Build a battle arena. It is a big building.]]) ..
4001- listitem_arrow(_[[Since the construction will take some time, you can change the game speed using PAGE UP and PAGE DOWN.]])
4002- )
4003-}
4004-
4005-battlearena2 = {
4006- position = "topright",
4007- title = _"The Battle Arena",
4008- body = rt(
4009- h1(_"The Battle Arena Has Been Constructed") ..
4010- p(_[[Very good. Our battle arena has been finished, and the soldiers are already walking towards it.]]) ..
4011- -- Not perfectly correct (some training steps need either bread or meat), but we do not want to confuse new players
4012- p(_[[The needed wares are also delivered there. For successful training, you need pitta bread and strongbeer, as well as either fish or meat.]] .. " " ..
4013- _[[For more information, you can have a look at the building’s help window, accessible via the question mark in every building’s window.]]) ..
4014- p(_[[To learn how far your soldiers have progressed in their training, you can have a look at their icons. They are modified by red dots:]])
4015- ) ..
4016- rt("image=tribes/barbarians/soldier/evade_level0.png", p(_[[No red dots means that the soldier is not trained, so he has level 0. All your new recruits have this.]])) ..
4017- rt("image=tribes/barbarians/soldier/evade_level1.png", p(_[[With every successful training step, your soldier becomes stronger. This is indicated by a red dot. This soldier is on level 1 in evade training.]])) ..
4018- rt("image=tribes/barbarians/soldier/evade_level2.png", p(_[[When your soldier has reached the highest possible level (in this case level 2), this is indicated by a white background color.]])),
4019- h = 450
4020-}
4021-
4022-trainingcamp1 = {
4023- position = "topright",
4024- title = _"The Training Camp",
4025- body = rt(
4026- h1(_"The Training Camp") ..
4027- p(_[[There is a second training site: the training camp. It is a big building too, and to complement the battle arena, it trains attack and health (remember, the Barbarian soldiers cannot be trained in defense).]]) ..
4028- paragraphdivider() ..
4029- listitem_bullet(_[[Build a training camp.]])
4030- ),
4031- h = 300,
4032- obj_name = "build_trainingcamp",
4033- obj_title = _"Build a training camp",
4034- obj_body = rt(
4035- p(_[[The battle arena only trains the soldiers in evade. To get the strongest possible soldier, you also need to build a training camp, which trains them in attack and health.]]) ..
4036- paragraphdivider() ..
4037- listitem_bullet(_[[Build a training camp.]])
4038- )
4039-}
4040-
4041-trainingcamp2 = {
4042- position = "topright",
4043- title = _"The Training Camp",
4044- body = rt(
4045- p(_[[Great, our training camp has now been finished, too. Now nothing will hinder us from getting the strongest warriors the world has ever seen.]]) ..
4046- p(_[[To train in the training camp, our soldiers need food like in the battle arena, but no strongbeer. Instead, they need different axes for attack training and helmets for health training.]]) ..
4047- p(_[[This equipment is produced in smithies out of coal, iron, and sometimes gold. You will learn more about this in the second scenario of the Barbarian campaign.]]) ..
4048- p(_[[You should also keep in mind that each of the three tribes in Widelands has its own way of training, so the buildings and wares are different. Also, the ability levels cannot be compared: an Imperial soldier with evade level 0 has a 30% chance of evading, while a Barbarian soldier at the same level only has a 25% chance.]])
4049- )
4050-}
4051-
4052-heroes_rookies = {
4053- position = "topright",
4054- title = _"Heroes and Rookies",
4055- body = rt(
4056- h1(_"Heroes and Rookies") ..
4057- p(_[[While our soldiers are training, let me tell you what we can do with them.]]) ..
4058- p(_[[In every military building, you can set the preference for heroes (trained soldiers) or rookies. From time to time, a soldier will walk out of the building and be replaced by a stronger/weaker one automatically – this is what you saw earlier.]]) ..
4059- p(_[[The initial setting depends on the type of the building. For the Barbarians, the sentry is the only building that prefers rookies by default. You should change this setting to fit your current needs.]]) ..
4060- p(_[[When you are expanding into no man’s land, you can make your buildings prefer rookies. When you are planning to attack, send heroes into that region. Conquered buildings always prefer heroes.]])
4061- )
4062-}
4063-
4064-soldier_capacity = {
4065- position = "topright",
4066- title = _"Soldier capacity",
4067- body = rt(
4068- h1(_"Adjusting the number of soldiers") ..
4069- p(_[[There is another way how you can control the strength of a military building: by the number of soldiers stationed there. Just click on the arrow buttons to decrease or increase the desired number of soldiers. Every building has a maximum capacity. In case of the barrier, it is five, for example.]]) ..
4070- p(_[[If you wish to send a certain soldier away, you can simply click on it. It will then be replaced by another soldier.]]) ..
4071- p(_[[Let me also describe what the numbers in the statistics string mean. This string can contain up to three numbers, e.g. ‘1 (+5) soldier (+2)’.]]) ..
4072- paragraphdivider() ..
4073- listitem_bullet(_[[The first number describes how many soldiers are currently in this building. In this example, only one soldier is left inside (each military building is always guarded by at least one soldier).]]) ..
4074- listitem_bullet(_[[The second number tells you how many additional soldiers reside in this building, but are currently outside. The five soldiers may be attacking an enemy. They will return when they have been successful.]]) ..
4075- listitem_bullet(_[[The third number indicates the missing soldiers. From the eight soldiers (1 + 5 + 2) you wish to have here, two may have died. They will be replaced by new soldiers from your warehouse, if possible.]])
4076- )
4077-}
4078-
4079-dismantle = {
4080- position = "topright",
4081- title = _"Dismantle your sentry",
4082- body = rt(
4083- h1(_"Dismantling military buildings") ..
4084- p(_[[You can only reduce the number of soldiers to one. The last soldier of a building will never come out (unless this building is attacked). If you want to have your soldier elsewhere, you will have to dismantle the building (buildings of an alien tribe cannot be dismantled, only be burned down).]]) ..
4085- p(_[[However, destroying a military building is always linked with a risk: the land is still yours, but it is no longer protected. Any enemy that builds his own military sites can take over that land without a fight, causing your buildings to burst into flames. Furthermore, some parts of the land can now be hidden under the fog of war. You should therefore only dismantle military buildings deep inside your territory where you are safe from enemies.]]) ..
4086- p(_[[Have you seen your sentry? Since it cannot contain many soldiers and is next to a stronger barrier, it is rather useless.]]) ..
4087- paragraphdivider() ..
4088- -- TRANSLATORS: 'it' refers to the Barbarian sentry
4089- listitem_bullet(_[[Dismantle it.]])
4090- ) ..
4091- rt(p(_[[You can also use this opportunity to become familiar with the other options: the heroes/rookies preference and the capacity.]])),
4092- obj_name = "dismantle_sentry",
4093- obj_title = _"Dismantle your north-western sentry",
4094- obj_body = rt(
4095- p(_[[You can control the number of soldiers stationed at a military site with the arrow buttons. If you want to get even your last soldier out, you will have to destroy it. However, it then will no longer protect your territory, which will make it vulnerable to hostile attacks.]]) ..
4096- paragraphdivider() ..
4097- listitem_bullet(_[[Dismantle your sentry in the north-west, next to the barrier.]])
4098- )
4099-}
4100-
4101-fortress_enhancement = {
4102- position = "topright",
4103- title = _"Enhance Your Fortress",
4104- body = rt(
4105- h1(_"Enhancing Buildings") ..
4106- p(_[[Well done. Now you know how to draw back your soldiers from the places where you don’t need them. It is time to tell you how to reinforce your front line.]]) ..
4107- p(_[[Your fortress is already quite strong and conquers a lot of space. But there is an even bigger building: the citadel.]]) ..
4108- p(_[[Citadels can’t be built directly. Instead, you’ll have to construct a fortress first and then enhance it to a citadel. To do so, click on the fortress, then choose the ‘Enhance to Citadel’ button.]]) ..
4109- p(_[[Your soldiers will leave the fortress while the construction is going on. This means that your fortress will lose its military influence, as I described above.]]) ..
4110- listitem_bullet(_[[Enhance your fortress to a citadel now.]])
4111- ),
4112- obj_name = "enhance_fortress",
4113- obj_title = _"Enhance your fortress to a citadel",
4114- obj_body = rt(
4115- h1(_"Enhance Your Fortress") ..
4116- paragraphdivider() ..
4117- listitem_bullet(_[[Enhance your fortress to a mighty citadel.]]) ..
4118- listitem_arrow(_[[The citadel can house 12 soldiers, and it is the biggest military building the Barbarians can build. It also costs a lot of resources and takes a long time to build. It is most suited to guard strategically important points like constricted points or mountains.]])
4119- )
4120-}
4121-
4122-attack_enemy = {
4123- position = "topright",
4124- field = wl.Game().map:get_field(29,4), -- show the lost territory
4125- title = _"Defeat your Enemy",
4126- body = rt(
4127- h1(_"Defeat the Enemy") ..
4128- p(_[[Great work, the citadel is finished. But what’s that? A hostile tribe has settled next to us while the citadel was under construction! Do you see how they took away a part of our land? And our lumberjack has now lost his place of work. This is what I was talking about. Let’s take our land back and defeat the enemy!]]) ..
4129- p(_[[To attack a building, click on its doors, choose the number of soldiers that you wish to send and click on the ‘Attack’ button.]] .. " " .. _[[Your soldiers will come from all nearby military buildings. Likewise, the defenders will come from all nearby military buildings of the enemy and intercept your forces.]]) ..
4130- paragraphdivider() ..
4131- listitem_bullet(_[[Attack and conquer all military buildings of the enemy and destroy their headquarters.]])
4132- ),
4133- h = 350,
4134- obj_name = "defeated_the_empire",
4135- obj_title = _"Defeat the enemy tribe",
4136- obj_body = rt(
4137- h1(_"Defeat Your Enemy") ..
4138- paragraphdivider() ..
4139- listitem_bullet(_[[Defeat the nearby enemy.]]) ..
4140- listitem_arrow(_[[To attack a building, click on its doors, choose the number of soldiers that you wish to send and click on the ‘Attack’ button.]])
4141- )
4142-}
4143-
4144-conclude_tutorial = {
4145- title = _"Conclusion",
4146- body = rt(
4147- h1(_"Conclusion") ..
4148- p(_[[Thank you for playing this tutorial. I hope you enjoyed it and you learned how to create and train soldiers, how to control where they go and how to defeat an enemy. Did you see how easily you could overwhelm your enemy? Having trained soldiers is a huge advantage.]]) ..
4149- p(_[[But a war is expensive, and not always the path leading to the goal. When setting up a new game, you can also choose peaceful win conditions. You should definitely try them out, they’re worth it.]]) ..
4150- p(_[[You are now ready to play the campaigns. They will teach you about the different economies of the tribes. You can also play the remaining tutorials, but they are not crucial for succeeding in the campaigns.]])
4151- )
4152-}
4153-
4154+-- =======================================================================
4155+-- Texts for the tutorial mission
4156+-- =======================================================================
4157+
4158+-- =========================
4159+-- Some formating functions
4160+-- =========================
4161+
4162+include "scripting/formatting.lua"
4163+include "scripting/format_scenario.lua"
4164+
4165+-- =============
4166+-- Texts below
4167+-- =============
4168+
4169+introduction = {
4170+ title = _"Introduction",
4171+ body = rt(
4172+ h1(_"Soldiers, Training and Warfare") ..
4173+ p(_[[In this scenario, I’m going to tell you about soldiers, their training and their profession: warfare. Although Widelands is about building up, not burning down, there is an enemy you sometimes have to defeat. Yet warfare is mainly focused on economics, not on military strategies, and its mechanics deserve explanation.]]) ..
4174+ p(_[[I’ve set up a small village that contains the most important buildings. You also have enough wares, so you do not have to take care of your weapons production. In a real game, you will not have this luxury.]])
4175+ ),
4176+ h = 300
4177+}
4178+
4179+abilities = {
4180+ position = "topright",
4181+ title = _"Soldiers’ abilities",
4182+ body = rt(
4183+ p(_[[A new soldier is created like a worker: when a military building needs a soldier, a carrier grabs the needed weapons and armor from a warehouse (or your headquarters) and walks up the road to your new building. Basic Barbarian soldiers do not use armor, they only need an ax.]]) ..
4184+ p(_[[Take a look at the soldiers that are on their way to our military buildings. They look different from normal workers: they have a health bar over their head that displays their remaining health, and they have four symbols, which symbolize the individual soldier’s current levels in the four different categories: health, attack, defense and evade.]]) ..
4185+ p(_[[If a Barbarian soldier is fully trained, he has level 3 health, level 5 attack, level 0 defense and level 2 evade. This is one fearsome warrior then! The individual abilities have the following meaning:]])
4186+ ) ..
4187+ rt("image=tribes/workers/barbarians/soldier/hp_level0.png", h2(_"Health:"))..
4188+ rt(p(_[[The total life of a soldier. A Barbarian soldier starts with 130 health, and he will gain 28 health with each health level.]])) ..
4189+ rt("image=tribes/workers/barbarians/soldier/attack_level0.png", h2(_"Attack:")) ..
4190+ rt(p(_[[The amount of damage a soldier will inflict on the enemy when an attack is successful. A Barbarian soldier with attack level 0 inflicts ~14 points of health damage when he succeeds in hitting an enemy. For each attack level, he gains 7 damage points.]])) ..
4191+ -- The Atlanteans' image, because the Barbarian one has a white background
4192+ rt("image=tribes/workers/atlanteans/soldier/defense_level0.png", h2(_"Defense:")) ..
4193+ rt(p(_[[The defense is the percentage that is subtracted from the attack value. The Barbarians cannot train in this skill and therefore have always defense level 0, which means that the damage is always reduced by 3%. If an attacker with an attack value of 35 points hits a Barbarian soldier, the Barbarian will lose 35·0.97 = 34 health.]])) ..
4194+ rt("image=tribes/workers/barbarians/soldier/evade_level0.png", h2(_"Evade:")) ..
4195+ rt(p(_[[Evade is the chance that the soldier is able to dodge an attack. A level 0 Barbarian has a 25% chance to evade an attack, and this increases in steps of 15% for each level.]]))
4196+}
4197+
4198+battlearena1 = {
4199+ position = "topright",
4200+ title = _"The Battle Arena",
4201+ body = rt(
4202+ p(_[[Now I have talked about training and levels. Let me elaborate on that.]]) ..
4203+ p(_[[A newly created soldier has no experience and is not very good at fighting. To make him stronger, you can build training sites.]]) ..
4204+ p(_[[One of these training sites is the battle arena. It is a big and expensive building, and it trains soldiers in evade. Since soldiers get very hungry during their workout, this building needs a lot of food and strong beer. In a real game, you should have a good infrastructure before you build it.]]) ..
4205+ paragraphdivider() ..
4206+ listitem_bullet(_[[To see evade training in action, build a battle arena.]]) ..
4207+ "</p><p font-size=8><br></p>" ..
4208+ p(_[[While we’re waiting for the battle arena, you’ll probably notice some soldiers walking around. They are automatically exchanged from time to time. I’ll teach you about that later.]])
4209+ ),
4210+ h = 400,
4211+ obj_name = "build_battlearena",
4212+ obj_title = _"Build a battle arena",
4213+ obj_body = rt(
4214+ paragraphdivider() ..
4215+ listitem_bullet(_[[Build a battle arena. It is a big building.]]) ..
4216+ listitem_arrow(_[[Since the construction will take some time, you can change the game speed using PAGE UP and PAGE DOWN.]])
4217+ )
4218+}
4219+
4220+battlearena2 = {
4221+ position = "topright",
4222+ title = _"The Battle Arena",
4223+ body = rt(
4224+ h1(_"The Battle Arena Has Been Constructed") ..
4225+ p(_[[Very good. Our battle arena has been finished, and the soldiers are already walking towards it.]]) ..
4226+ -- Not perfectly correct (some training steps need either bread or meat), but we do not want to confuse new players
4227+ p(_[[The needed wares are also delivered there. For successful training, you need pitta bread and strong beer, as well as either fish or meat.]] .. " " ..
4228+ _[[For more information, you can have a look at the building’s help window, accessible via the question mark in every building’s window.]]) ..
4229+ p(_[[To learn how far your soldiers have progressed in their training, you can have a look at their icons. They are modified by red dots:]])
4230+ ) ..
4231+ rt("image=tribes/workers/barbarians/soldier/evade_level0.png", p(_[[No red dots means that the soldier is not trained, so he has level 0. All your new recruits have this.]])) ..
4232+ rt("image=tribes/workers/barbarians/soldier/evade_level1.png", p(_[[With every successful training step, your soldier becomes stronger. This is indicated by a red dot. This soldier is on level 1 in evade training.]])) ..
4233+ rt("image=tribes/workers/barbarians/soldier/evade_level2.png", p(_[[When your soldier has reached the highest possible level (in this case level 2), this is indicated by a white background color.]])),
4234+ h = 450
4235+}
4236+
4237+trainingcamp1 = {
4238+ position = "topright",
4239+ title = _"The Training Camp",
4240+ body = rt(
4241+ h1(_"The Training Camp") ..
4242+ p(_[[There is a second training site: the training camp. It is a big building too, and to complement the battle arena, it trains attack and health (remember, the Barbarian soldiers cannot be trained in defense).]]) ..
4243+ paragraphdivider() ..
4244+ listitem_bullet(_[[Build a training camp.]])
4245+ ),
4246+ h = 300,
4247+ obj_name = "build_trainingcamp",
4248+ obj_title = _"Build a training camp",
4249+ obj_body = rt(
4250+ p(_[[The battle arena only trains the soldiers in evade. To get the strongest possible soldier, you also need to build a training camp, which trains them in attack and health.]]) ..
4251+ paragraphdivider() ..
4252+ listitem_bullet(_[[Build a training camp.]])
4253+ )
4254+}
4255+
4256+trainingcamp2 = {
4257+ position = "topright",
4258+ title = _"The Training Camp",
4259+ body = rt(
4260+ p(_[[Great, our training camp has now been finished, too. Now nothing will hinder us from getting the strongest warriors the world has ever seen.]]) ..
4261+ p(_[[To train in the training camp, our soldiers need food like in the battle arena, but no strong beer. Instead, they need different axes for attack training and helmets for health training.]]) ..
4262+ p(_[[This equipment is produced in smithies out of coal, iron, and sometimes gold. You will learn more about this in the second scenario of the Barbarian campaign.]]) ..
4263+ p(_[[You should also keep in mind that each of the three tribes in Widelands has its own way of training, so the buildings and wares are different. Also, the ability levels cannot be compared: an Imperial soldier with evade level 0 has a 30% chance of evading, while a Barbarian soldier at the same level only has a 25% chance.]])
4264+ )
4265+}
4266+
4267+heroes_rookies = {
4268+ position = "topright",
4269+ title = _"Heroes and Rookies",
4270+ body = rt(
4271+ h1(_"Heroes and Rookies") ..
4272+ p(_[[While our soldiers are training, let me tell you what we can do with them.]]) ..
4273+ p(_[[In every military building, you can set the preference for heroes (trained soldiers) or rookies. From time to time, a soldier will walk out of the building and be replaced by a stronger/weaker one automatically – this is what you saw earlier.]]) ..
4274+ p(_[[The initial setting depends on the type of the building. For the Barbarians, the sentry is the only building that prefers rookies by default. You should change this setting to fit your current needs.]]) ..
4275+ p(_[[When you are expanding into no man’s land, you can make your buildings prefer rookies. When you are planning to attack, send heroes into that region. Conquered buildings always prefer heroes.]])
4276+ )
4277+}
4278+
4279+soldier_capacity = {
4280+ position = "topright",
4281+ title = _"Soldier capacity",
4282+ body = rt(
4283+ h1(_"Adjusting the number of soldiers") ..
4284+ p(_[[There is another way how you can control the strength of a military building: by the number of soldiers stationed there. Just click on the arrow buttons to decrease or increase the desired number of soldiers. Every building has a maximum capacity. In case of the barrier, it is five, for example.]]) ..
4285+ p(_[[If you wish to send a certain soldier away, you can simply click on it. It will then be replaced by another soldier.]]) ..
4286+ p(_[[Let me also describe what the numbers in the statistics string mean. This string can contain up to three numbers, e.g. ‘1 (+5) soldier (+2)’.]]) ..
4287+ paragraphdivider() ..
4288+ listitem_bullet(_[[The first number describes how many soldiers are currently in this building. In this example, only one soldier is left inside (each military building is always guarded by at least one soldier).]]) ..
4289+ listitem_bullet(_[[The second number tells you how many additional soldiers reside in this building, but are currently outside. The five soldiers may be attacking an enemy. They will return when they have been successful.]]) ..
4290+ listitem_bullet(_[[The third number indicates the missing soldiers. From the eight soldiers (1 + 5 + 2) you wish to have here, two may have died. They will be replaced by new soldiers from your warehouse, if possible.]])
4291+ )
4292+}
4293+
4294+dismantle = {
4295+ position = "topright",
4296+ title = _"Dismantle your sentry",
4297+ body = rt(
4298+ h1(_"Dismantling military buildings") ..
4299+ p(_[[You can only reduce the number of soldiers to one. The last soldier of a building will never come out (unless this building is attacked). If you want to have your soldier elsewhere, you will have to dismantle the building (buildings of an alien tribe cannot be dismantled, only be burned down).]]) ..
4300+ p(_[[However, destroying a military building is always linked with a risk: the land is still yours, but it is no longer protected. Any enemy that builds his own military sites can take over that land without a fight, causing your buildings to burst into flames. Furthermore, some parts of the land can now be hidden under the fog of war. You should therefore only dismantle military buildings deep inside your territory where you are safe from enemies.]]) ..
4301+ p(_[[Have you seen your sentry? Since it cannot contain many soldiers and is next to a stronger barrier, it is rather useless.]]) ..
4302+ paragraphdivider() ..
4303+ -- TRANSLATORS: 'it' refers to the Barbarian sentry
4304+ listitem_bullet(_[[Dismantle it.]])
4305+ ) ..
4306+ rt(p(_[[You can also use this opportunity to become familiar with the other options: the heroes/rookies preference and the capacity.]])),
4307+ obj_name = "dismantle_sentry",
4308+ obj_title = _"Dismantle your north-western sentry",
4309+ obj_body = rt(
4310+ p(_[[You can control the number of soldiers stationed at a military site with the arrow buttons. If you want to get even your last soldier out, you will have to destroy it. However, it then will no longer protect your territory, which will make it vulnerable to hostile attacks.]]) ..
4311+ paragraphdivider() ..
4312+ listitem_bullet(_[[Dismantle your sentry in the north-west, next to the barrier.]])
4313+ )
4314+}
4315+
4316+fortress_enhancement = {
4317+ position = "topright",
4318+ title = _"Enhance Your Fortress",
4319+ body = rt(
4320+ h1(_"Enhancing Buildings") ..
4321+ p(_[[Well done. Now you know how to draw back your soldiers from the places where you don’t need them. It is time to tell you how to reinforce your front line.]]) ..
4322+ p(_[[Your fortress is already quite strong and conquers a lot of space. But there is an even bigger building: the citadel.]]) ..
4323+ p(_[[Citadels can’t be built directly. Instead, you’ll have to construct a fortress first and then enhance it to a citadel. To do so, click on the fortress, then choose the ‘Enhance to Citadel’ button.]]) ..
4324+ p(_[[Your soldiers will leave the fortress while the construction is going on. This means that your fortress will lose its military influence, as I described above.]]) ..
4325+ listitem_bullet(_[[Enhance your fortress to a citadel now.]])
4326+ ),
4327+ obj_name = "enhance_fortress",
4328+ obj_title = _"Enhance your fortress to a citadel",
4329+ obj_body = rt(
4330+ h1(_"Enhance Your Fortress") ..
4331+ paragraphdivider() ..
4332+ listitem_bullet(_[[Enhance your fortress to a mighty citadel.]]) ..
4333+ listitem_arrow(_[[The citadel can house 12 soldiers, and it is the biggest military building the Barbarians can build. It also costs a lot of resources and takes a long time to build. It is most suited to guard strategically important points like constricted points or mountains.]])
4334+ )
4335+}
4336+
4337+attack_enemy = {
4338+ position = "topright",
4339+ field = wl.Game().map:get_field(29,4), -- show the lost territory
4340+ title = _"Defeat your Enemy",
4341+ body = rt(
4342+ h1(_"Defeat the Enemy") ..
4343+ p(_[[Great work, the citadel is finished. But what’s that? A hostile tribe has settled next to us while the citadel was under construction! Do you see how they took away a part of our land? And our lumberjack has now lost his place of work. This is what I was talking about. Let’s take our land back and defeat the enemy!]]) ..
4344+ p(_[[To attack a building, click on its doors, choose the number of soldiers that you wish to send and click on the ‘Attack’ button.]] .. " " .. _[[Your soldiers will come from all nearby military buildings. Likewise, the defenders will come from all nearby military buildings of the enemy and intercept your forces.]]) ..
4345+ paragraphdivider() ..
4346+ listitem_bullet(_[[Attack and conquer all military buildings of the enemy and destroy their headquarters.]])
4347+ ),
4348+ h = 350,
4349+ obj_name = "defeated_the_empire",
4350+ obj_title = _"Defeat the enemy tribe",
4351+ obj_body = rt(
4352+ h1(_"Defeat Your Enemy") ..
4353+ paragraphdivider() ..
4354+ listitem_bullet(_[[Defeat the nearby enemy.]]) ..
4355+ listitem_arrow(_[[To attack a building, click on its doors, choose the number of soldiers that you wish to send and click on the ‘Attack’ button.]])
4356+ )
4357+}
4358+
4359+conclude_tutorial = {
4360+ title = _"Conclusion",
4361+ body = rt(
4362+ h1(_"Conclusion") ..
4363+ p(_[[Thank you for playing this tutorial. I hope you enjoyed it and you learned how to create and train soldiers, how to control where they go and how to defeat an enemy. Did you see how easily you could overwhelm your enemy? Having trained soldiers is a huge advantage.]]) ..
4364+ p(_[[But a war is expensive, and not always the path leading to the goal. When setting up a new game, you can also choose peaceful win conditions. You should definitely try them out, they’re worth it.]]) ..
4365+ p(_[[You are now ready to play the campaigns. They will teach you about the different economies of the tribes. You can also play the remaining tutorials, but they are not crucial for succeeding in the campaigns.]])
4366+ )
4367+}
4368
4369=== modified file 'campaigns/tutorial03_seafaring.wmf/scripting/helper_functions.lua'
4370--- campaigns/tutorial03_seafaring.wmf/scripting/helper_functions.lua 2014-10-17 08:38:24 +0000
4371+++ campaigns/tutorial03_seafaring.wmf/scripting/helper_functions.lua 2015-11-03 18:26:36 +0000
4372@@ -25,4 +25,3 @@
4373 elseif b.valid_wares then b:set_wares(b.valid_wares) end
4374 end
4375 end
4376-
4377
4378=== modified file 'campaigns/tutorial03_seafaring.wmf/scripting/init.lua'
4379--- campaigns/tutorial03_seafaring.wmf/scripting/init.lua 2014-10-28 12:58:23 +0000
4380+++ campaigns/tutorial03_seafaring.wmf/scripting/init.lua 2015-11-03 18:26:36 +0000
4381@@ -25,4 +25,3 @@
4382 include "map:scripting/starting_conditions.lua"
4383
4384 include "map:scripting/mission_thread.lua"
4385-
4386
4387=== modified file 'campaigns/tutorial03_seafaring.wmf/scripting/mission_thread.lua'
4388--- campaigns/tutorial03_seafaring.wmf/scripting/mission_thread.lua 2015-06-01 20:08:40 +0000
4389+++ campaigns/tutorial03_seafaring.wmf/scripting/mission_thread.lua 2015-11-03 18:26:36 +0000
4390@@ -1,92 +1,91 @@
4391--- ===============
4392--- Mission thread
4393--- ===============
4394-
4395-function introduction()
4396- additional_port_space.terr = "wasser" -- disable the port space
4397- sleep(1000)
4398- message_box_objective(plr, intro_south)
4399- sleep(300)
4400- message_box_objective(plr, intro_north)
4401- sleep(20000)
4402-
4403- build_port()
4404-end
4405-
4406-function build_port()
4407- sleep(200)
4408- message_box_objective(plr, tell_about_port)
4409-
4410- wl.ui.MapView().buildhelp = true -- so that the player sees the port building icon
4411- local o = message_box_objective(plr, tell_about_port_building)
4412-
4413- while #plr:get_buildings("port") < 2 do sleep(200) end
4414- o.done = true
4415-
4416- build_ships()
4417-end
4418-
4419-function build_ships()
4420- sleep(200)
4421- local o = message_box_objective(plr, tell_about_shipyard)
4422- plr:allow_buildings{"shipyard"}
4423-
4424- while #plr:get_buildings("shipyard") < 1 do sleep(200) end
4425- o.done = true
4426-
4427- local o = message_box_objective(plr, tell_about_ships)
4428-
4429- -- we only wait for one ship and a bit longer because it takes long enough
4430- while #plr:get_ships() < 1 do sleep(30*1000) end
4431- sleep(5*60*1000)
4432-
4433- o.done = true
4434-
4435- expedition()
4436-end
4437-
4438-function expedition()
4439- sleep(200)
4440- message_box_objective(plr, expedition1)
4441- local o = message_box_objective(plr, expedition2)
4442-
4443- local function _ship_ready_for_expedition()
4444- for k,ship in ipairs(plr:get_ships()) do
4445- if ship.state == "exp_waiting" then return true end
4446- end
4447- return false
4448- end
4449-
4450- while not _ship_ready_for_expedition() do sleep(1000) end
4451- o.done = true
4452-
4453- local o2 = message_box_objective(plr, expedition3)
4454-
4455- while #plr:get_buildings("port") < 3 do sleep(200) end
4456- o.done = true
4457-
4458- -- places 5 signs with iron to show the player he really found some iron ore
4459- local fields = map:get_field(97,35):region(3)
4460- for i=1,5 do
4461- local successful = false
4462- while not successful do
4463- local idx = math.random(#fields)
4464- f = fields[idx]
4465- if ((f.resource == "iron") and not f.immovable) then
4466- map:place_immovable("resi_iron2",f,"atlanteans")
4467- successful = true
4468- end
4469- table.remove(fields,idx)
4470- end
4471- end
4472-
4473- conclude()
4474-end
4475-
4476-function conclude()
4477- additional_port_space.terr = "desert_steppe" -- make it land again so that the player can build a port
4478- message_box_objective(plr, conclusion)
4479-end
4480-
4481-run(introduction)
4482-
4483+-- ===============
4484+-- Mission thread
4485+-- ===============
4486+
4487+function introduction()
4488+ additional_port_space.terr = "wasser" -- disable the port space
4489+ sleep(1000)
4490+ message_box_objective(plr, intro_south)
4491+ sleep(300)
4492+ message_box_objective(plr, intro_north)
4493+ sleep(20000)
4494+
4495+ build_port()
4496+end
4497+
4498+function build_port()
4499+ sleep(200)
4500+ message_box_objective(plr, tell_about_port)
4501+
4502+ wl.ui.MapView().buildhelp = true -- so that the player sees the port building icon
4503+ local o = message_box_objective(plr, tell_about_port_building)
4504+
4505+ while #plr:get_buildings("atlanteans_port") < 2 do sleep(200) end
4506+ o.done = true
4507+
4508+ build_ships()
4509+end
4510+
4511+function build_ships()
4512+ sleep(200)
4513+ local o = message_box_objective(plr, tell_about_shipyard)
4514+ plr:allow_buildings{"atlanteans_shipyard"}
4515+
4516+ while #plr:get_buildings("atlanteans_shipyard") < 1 do sleep(200) end
4517+ o.done = true
4518+
4519+ local o = message_box_objective(plr, tell_about_ships)
4520+
4521+ -- we only wait for one ship and a bit longer because it takes long enough
4522+ while #plr:get_ships() < 1 do sleep(30*1000) end
4523+ sleep(5*60*1000)
4524+
4525+ o.done = true
4526+
4527+ expedition()
4528+end
4529+
4530+function expedition()
4531+ sleep(200)
4532+ message_box_objective(plr, expedition1)
4533+ local o = message_box_objective(plr, expedition2)
4534+
4535+ local function _ship_ready_for_expedition()
4536+ for k,ship in ipairs(plr:get_ships()) do
4537+ if ship.state == "exp_waiting" then return true end
4538+ end
4539+ return false
4540+ end
4541+
4542+ while not _ship_ready_for_expedition() do sleep(1000) end
4543+ o.done = true
4544+
4545+ local o2 = message_box_objective(plr, expedition3)
4546+
4547+ while #plr:get_buildings("atlanteans_port") < 3 do sleep(200) end
4548+ o.done = true
4549+
4550+ -- places 5 signs with iron to show the player he really found some iron ore
4551+ local fields = map:get_field(97,35):region(3)
4552+ for i=1,5 do
4553+ local successful = false
4554+ while not successful do
4555+ local idx = math.random(#fields)
4556+ f = fields[idx]
4557+ if ((f.resource == "iron") and not f.immovable) then
4558+ map:place_immovable("resi_iron2",f,"tribes")
4559+ successful = true
4560+ end
4561+ table.remove(fields,idx)
4562+ end
4563+ end
4564+
4565+ conclude()
4566+end
4567+
4568+function conclude()
4569+ additional_port_space.terr = "desert_steppe" -- make it land again so that the player can build a port
4570+ message_box_objective(plr, conclusion)
4571+end
4572+
4573+run(introduction)
4574
4575=== modified file 'campaigns/tutorial03_seafaring.wmf/scripting/starting_conditions.lua'
4576--- campaigns/tutorial03_seafaring.wmf/scripting/starting_conditions.lua 2014-10-18 09:02:51 +0000
4577+++ campaigns/tutorial03_seafaring.wmf/scripting/starting_conditions.lua 2015-11-03 18:26:36 +0000
4578@@ -5,144 +5,144 @@
4579 plr:allow_buildings("all")
4580
4581 function init_player()
4582- filled_buildings(plr, {"port", sf.x, sf.y,
4583+ filled_buildings(plr, {"atlanteans_port", sf.x, sf.y,
4584 wares = {
4585- diamond = 7,
4586- ironore = 20,
4587- quartz = 9,
4588- stone = 50,
4589- spideryarn = 9,
4590- log = 80,
4591+ blackroot = 5,
4592+ blackroot_flour = 12,
4593+ atlanteans_bread = 28,
4594+ bread_paddle = 2,
4595+ buckets = 2,
4596 coal = 12,
4597- goldyarn = 6,
4598- iron = 12,
4599- planks = 65,
4600- spidercloth = 35,
4601- blackroot = 5,
4602- blackrootflour = 12,
4603- bread = 28,
4604 corn = 15,
4605- cornflour = 12,
4606+ cornmeal = 12,
4607+ diamond = 7,
4608+ fire_tongs = 2,
4609 fish = 13,
4610- meat = 13,
4611- smoked_fish = 26,
4612- smoked_meat = 26,
4613- water = 12,
4614- bread_paddle = 2,
4615- bucket = 2,
4616- fire_tongs = 2,
4617 fishing_net = 4,
4618+ gold_thread = 6,
4619+ granite = 50,
4620 hammer = 11,
4621+ hook_pole = 2,
4622 hunting_bow = 1,
4623+ iron = 12,
4624+ iron_ore = 20,
4625+ log = 80,
4626+ meat = 13,
4627 milking_tongs = 2,
4628- hook_pole = 2,
4629 pick = 8,
4630+ planks = 65,
4631+ quartz = 9,
4632 saw = 9,
4633 scythe = 4,
4634 shovel = 9,
4635+ smoked_fish = 26,
4636+ smoked_meat = 26,
4637+ spider_silk = 9,
4638+ spidercloth = 35,
4639 tabard = 15,
4640- light_trident = 15,
4641+ trident_light = 15,
4642+ water = 12,
4643 },
4644 workers = {
4645- armorsmith = 1,
4646- blackroot_farmer = 1,
4647- builder = 10,
4648- charcoal_burner = 1,
4649- carrier = 40,
4650- fish_breeder = 2,
4651- geologist = 4,
4652- miner = 3,
4653- sawyer = 1,
4654- stonecutter = 2,
4655- toolsmith = 2,
4656- weaponsmith = 1,
4657- woodcutter = 3,
4658- horse = 15,
4659+ atlanteans_armorsmith = 1,
4660+ atlanteans_blackroot_farmer = 1,
4661+ atlanteans_builder = 10,
4662+ atlanteans_charcoal_burner = 1,
4663+ atlanteans_carrier = 40,
4664+ atlanteans_fishbreeder = 2,
4665+ atlanteans_geologist = 4,
4666+ atlanteans_miner = 3,
4667+ atlanteans_sawyer = 1,
4668+ atlanteans_stonecutter = 2,
4669+ atlanteans_toolsmith = 2,
4670+ atlanteans_weaponsmith = 1,
4671+ atlanteans_woodcutter = 3,
4672+ atlanteans_horse = 15,
4673 },
4674 soldiers = {
4675 [{0,0,0,0}] = 35,
4676 }
4677 },
4678- {"woodcutters_house", 32, 48},
4679- {"woodcutters_house", 33, 47},
4680- {"woodcutters_house", 29, 56},
4681- {"woodcutters_house", 30, 57},
4682- {"foresters_house", 31, 53},
4683- {"foresters_house", 32, 46},
4684- {"foresters_house", 32, 50},
4685- {"foresters_house", 34, 50},
4686- {"sawmill", 41, 46},
4687- {"quarry", 45, 54},
4688- {"tower", 43, 52},
4689- {"tower", 35, 46},
4690- {"guardhouse", 49, 60},
4691- {"crystalmine", 51, 61},
4692- {"guardhall", 43, 64},
4693- {"fish_breeders_house", 40, 66},
4694- {"fishers_house", 42, 66},
4695- {"fish_breeders_house", 44, 66},
4696- {"fishers_house", 46, 66},
4697- {"fish_breeders_house", 48, 66},
4698- {"castle", 22, 55},
4699- {"coalmine", 22, 48},
4700- {"coalmine", 16, 49},
4701- {"farm", 20, 59},
4702- {"farm", 23, 59},
4703- {"farm", 19, 64},
4704- {"farm", 21, 65},
4705- {"farm", 26, 64},
4706- {"blackroot_farm", 53, 53},
4707- {"blackroot_farm", 56, 50},
4708- {"mill", 34, 58},
4709- {"mill", 32, 64},
4710- {"bakery", 38, 49},
4711- {"bakery", 40, 48},
4712- {"smokery", 46, 57},
4713- {"smokery", 44, 57},
4714- {"horsefarm", 40, 55},
4715- {"spiderfarm", 37, 45},
4716- {"weaving-mill", 45, 45},
4717- {"smelting_works", 35, 56, wares = {coal = 8, ironore = 8}}, -- no gold
4718- {"smelting_works", 35, 59, wares = {coal = 8, ironore = 8}},
4719- {"toolsmithy", 41, 52},
4720- {"weaponsmithy", 37, 54},
4721- {"small_tower", 34, 63},
4722- {"tower", 52, 46},
4723- {"well", 39, 43},
4724- {"well", 39, 45},
4725- {"well", 38, 55},
4726- {"well", 35, 61},
4727- {"well", 32, 59},
4728- {"warehouse", 36, 57},
4729+ {"atlanteans_woodcutters_house", 32, 48},
4730+ {"atlanteans_woodcutters_house", 33, 47},
4731+ {"atlanteans_woodcutters_house", 29, 56},
4732+ {"atlanteans_woodcutters_house", 30, 57},
4733+ {"atlanteans_foresters_house", 31, 53},
4734+ {"atlanteans_foresters_house", 32, 46},
4735+ {"atlanteans_foresters_house", 32, 50},
4736+ {"atlanteans_foresters_house", 34, 50},
4737+ {"atlanteans_sawmill", 41, 46},
4738+ {"atlanteans_quarry", 45, 54},
4739+ {"atlanteans_tower", 43, 52},
4740+ {"atlanteans_tower", 35, 46},
4741+ {"atlanteans_guardhouse", 49, 60},
4742+ {"atlanteans_crystalmine", 51, 61},
4743+ {"atlanteans_guardhall", 43, 64},
4744+ {"atlanteans_fishbreeders_house", 40, 66},
4745+ {"atlanteans_fishers_house", 42, 66},
4746+ {"atlanteans_fishbreeders_house", 44, 66},
4747+ {"atlanteans_fishers_house", 46, 66},
4748+ {"atlanteans_fishbreeders_house", 48, 66},
4749+ {"atlanteans_castle", 22, 55},
4750+ {"atlanteans_coalmine", 22, 48},
4751+ {"atlanteans_coalmine", 16, 49},
4752+ {"atlanteans_farm", 20, 59},
4753+ {"atlanteans_farm", 23, 59},
4754+ {"atlanteans_farm", 19, 64},
4755+ {"atlanteans_farm", 21, 65},
4756+ {"atlanteans_farm", 26, 64},
4757+ {"atlanteans_blackroot_farm", 53, 53},
4758+ {"atlanteans_blackroot_farm", 56, 50},
4759+ {"atlanteans_mill", 34, 58},
4760+ {"atlanteans_mill", 32, 64},
4761+ {"atlanteans_bakery", 38, 49},
4762+ {"atlanteans_bakery", 40, 48},
4763+ {"atlanteans_smokery", 46, 57},
4764+ {"atlanteans_smokery", 44, 57},
4765+ {"atlanteans_horsefarm", 40, 55},
4766+ {"atlanteans_spiderfarm", 37, 45},
4767+ {"atlanteans_weaving_mill", 45, 45},
4768+ {"atlanteans_smelting_works", 35, 56, wares = {coal = 8, iron_ore = 8}}, -- no gold
4769+ {"atlanteans_smelting_works", 35, 59, wares = {coal = 8, iron_ore = 8}},
4770+ {"atlanteans_toolsmithy", 41, 52},
4771+ {"atlanteans_weaponsmithy", 37, 54},
4772+ {"atlanteans_tower_small", 34, 63},
4773+ {"atlanteans_tower", 52, 46},
4774+ {"atlanteans_well", 39, 43},
4775+ {"atlanteans_well", 39, 45},
4776+ {"atlanteans_well", 38, 55},
4777+ {"atlanteans_well", 35, 61},
4778+ {"atlanteans_well", 32, 59},
4779+ {"atlanteans_warehouse", 36, 57},
4780
4781 -- everthing below is in the north
4782- {"castle", castle_field.x, castle_field.y},
4783- {"warehouse", 37, 16,
4784+ {"atlanteans_castle", castle_field.x, castle_field.y},
4785+ {"atlanteans_warehouse", 37, 16,
4786 wares = {
4787- smoked_meat = 50,
4788- smoked_fish = 150,
4789- bread = 200,
4790+ atlanteans_bread = 200,
4791+ diamond = 3,
4792+ gold = 2,
4793+ granite = 10,
4794+ hammer = 1,
4795 log = 30,
4796 planks = 30,
4797- stone = 10,
4798- diamond = 3,
4799 quartz = 4,
4800+ smoked_fish = 150,
4801+ smoked_meat = 50,
4802 spidercloth = 14,
4803- gold = 2,
4804- hammer = 1
4805 },
4806 workers = {
4807- builder = 3,
4808- miner = 3
4809+ atlanteans_builder = 3,
4810+ atlanteans_miner = 3
4811 },
4812 soldiers = {
4813 [{0,0,0,0}] = 10,
4814 }
4815 }, -- end of warehouse on northern peninsula
4816- {"goldmine", 32, 25}
4817+ {"atlanteans_goldmine", 32, 25}
4818 )
4819
4820- plr:forbid_buildings{"shipyard"}
4821+ plr:forbid_buildings{"atlanteans_shipyard"}
4822
4823 connected_road(plr,map:get_field(42,44).immovable,"bl,br,bl|bl,bl|bl,l|l,bl|l,l,l|l,l|tr,tl|r,tr")
4824 connected_road(plr,map:get_field(42,44).immovable,"br,r|br,r,r|r,r,tr|r,r|r,r|br,bl|br,br|br,br|r,r")
4825@@ -161,4 +161,3 @@
4826 end
4827
4828 run(init_player)
4829-
4830
4831=== modified file 'campaigns/tutorial03_seafaring.wmf/scripting/texts.lua'
4832--- campaigns/tutorial03_seafaring.wmf/scripting/texts.lua 2015-05-31 13:45:13 +0000
4833+++ campaigns/tutorial03_seafaring.wmf/scripting/texts.lua 2015-11-03 18:26:36 +0000
4834@@ -1,193 +1,192 @@
4835--- =======================================================================
4836--- Texts for the tutorial mission
4837--- =======================================================================
4838-
4839--- =========================
4840--- Some formating functions
4841--- =========================
4842-
4843-include "scripting/formatting.lua"
4844-include "scripting/format_scenario.lua"
4845-
4846-
4847--- =============
4848--- Texts below
4849--- =============
4850-
4851-intro_south = {
4852- position = "topright",
4853- field = sf,
4854- title = _"Seafaring",
4855- body = rt(
4856- h1(_"Seafaring Tutorial") ..
4857- p(_[[Welcome back. In this tutorial, you are going to learn the most important things about seafaring, that is ships, ports, and expedition.]]) ..
4858- p(_[[But let me first give you an overview about your territory: here in the south, you have a whole economy with almost everything you need.]])
4859- ),
4860- h = 250
4861-}
4862-
4863-intro_north = {
4864- position = "topright",
4865- field = castle_field,
4866- title = _"The Northern Part",
4867- body = rt(
4868- p(_[[Here in the northern part, you only have a goldmine and a warehouse. While the miners are supplied well with food, there is no way to transport the gold ore to our smelting works in the southern part.]]) ..
4869- p(_[[We have tried to build a road, but the mountain is too wide and too steep. We therefore have only one possibility: we need to establish a sea lane between these two parts.]]) ..
4870- p(_[[But I don’t want to rush you: you have just arrived here and you would probably like to have a closer look at your camp. I will also take a short break and be back soon.]])
4871- ),
4872- h = 350
4873-}
4874-
4875-tell_about_port = {
4876- position = "topright",
4877- title = _"Ports",
4878- body = rt(
4879- h1(_"Ports") ..
4880- p(_[[For everything you do on the high seas, you need a port at the shore. Ports are like headquarters: they can store wares, workers and soldiers. The soldiers inside will automatically come out when an enemy attacks the port.]]) ..
4881- p(_[[Additionally, ports offer the possibility of transporting wares via ships. When you click on the port you already have, you will notice two additional tabs: wares and workers in the dock. They are waiting for a ship to transport them to another port. Currently, there are none because we have not yet built a second port. So let’s change this!]])
4882- ),
4883- h = 350
4884-}
4885-
4886-tell_about_port_building = {
4887- position = "topright",
4888- field = second_port_field,
4889- title = _"Building ports",
4890- body = rt(
4891- h1(_"How to build a port") ..
4892- p(_[[Ports are big buildings, but they can only be built at special locations: those marked with the]])
4893- ) ..
4894- rt("image=pics/port.png", p(_[[blue port space icon.]])) ..
4895- rt(
4896- p(_[[Port spaces are set by the map designer, so a map will either contain them or not. They might, however, be hidden under trees or be blocked by surrounding buildings.]]) ..
4897- p(_[[You might already have noticed that you have such an icon next to your castle.]]) ..
4898- paragraphdivider() ..
4899- listitem_bullet(_[[Build a port in the northern part of your camp.]])
4900- ),
4901- obj_name = "build_port",
4902- obj_title = _"Build a port in the northern part of your camp.",
4903- obj_body = rt(
4904- h1(_"Build a port") ..
4905- p(_[[You always need a port when you want to transport wares with a ship.]]) ..
4906- paragraphdivider() ..
4907- listitem_bullet(_[[Build a port next to your castle, on the blue port space icon.]]) ..
4908- listitem_arrow(_[[Ports are built like normal buildings, but are only available on blue port spaces. Just click on a field with the icon and the building menu automatically offers you to build a port.]]) ..
4909- listitem_arrow(_[[Although ports act as warehouses, you should not build more than necessary: they cost quartz, diamonds and gold, which makes them quite expensive.]])
4910- ),
4911-}
4912-
4913-tell_about_shipyard = {
4914- position = "topright",
4915- title = _"Constructing ships",
4916- body = rt(
4917- h1(_"Let’s build ships") ..
4918- p(_[[Great. Your port has just been finished. Now we need some ships.]]) ..
4919- p(_[[Ships are constructed in a shipyard by a shipwright. We have to build one somewhere close to the shore.]]) ..
4920- paragraphdivider() ..
4921- listitem_bullet(_[[Build a shipyard close to the coast. It is a medium building.]])
4922- ),
4923- h = 300,
4924- obj_name = "build_shipyard",
4925- obj_title = _"Build a shipyard",
4926- obj_body = rt(
4927- h1(_"Build a shipyard") ..
4928- p(_[[Ships are produced in a shipyard.]]) ..
4929- paragraphdivider() ..
4930- listitem_bullet(_[[Build a shipyard close to the shore of the southern part of your territory.]]) ..
4931- listitem_arrow(_[[The shipyard is a medium building. Although it can be built everywhere on the map, the shipwright only works when he is close to the water and there are no trees or roads at the shoreline.]])
4932- ),
4933-}
4934-
4935-tell_about_ships = {
4936- position = "topright",
4937- title = _"Constructing ships",
4938- body = rt(
4939- h1(_"Waiting for the ships") ..
4940- p(_[[Very good. Your shipyard is finished and your shipwright immediately started working. For the construction of ships, he needs logs, planks and spidercloth, which will be transported to the shipyard.]] .. " " ..
4941- _[[The shipwright will take the ware he needs to a free spot at the shoreline and build a ship there. When the first ship is finished, it will launch onto the sea, and the shipwright will construct another one.]]) ..
4942- paragraphdivider() ..
4943- listitem_bullet(_[[We should wait until we have two ships. That should be enough for now.]]) ..
4944- listitem_arrow(_[[You need to stop your shipyard when you have enough ships. Otherwise, your shipwright will consume all your logs and spidercloth, producing dozens of ships.]])
4945- ) ..
4946- rt("image=pics/stop.png",p(_[[This is the icon for stopping production. You will find it in the building window.]])),
4947- obj_name = "wait_for_ships",
4948- obj_title = _"Construct two ships",
4949- obj_body = rt(
4950- p(_[[Ships are constructed automatically when the shipyard is complete and the needed wares have been delivered.]]) ..
4951- paragraphdivider() ..
4952- listitem_bullet(_[[Wait until the shipwright has constructed two ships.]]) ..
4953- listitem_arrow(_[[Do not forget to stop your shipyard when you have enough ships.]])
4954- )
4955-}
4956-
4957-expedition1 = {
4958- position = "topright",
4959- title = _"No Iron",
4960- body = rt(
4961- h1(_"We lack iron") ..
4962- p(_[[The second ship might not be finished yet, but we have an urgent problem.]]) ..
4963- p(_[[As you surely have already noticed, there is no iron in the mountain in the west. We have plenty of coal and gold ore, but without iron ore, we cannot produce any tools.]]) ..
4964- p(_[[Although it might take long and be expensive and not without dangers – who knows what monsters live in the sea? – I see no other possibility: we will have to undertake an expedition to the unknown seas.]])
4965- ),
4966- h = 300
4967-}
4968-
4969-expedition2 = {
4970- position = "topright",
4971- -- TRANSLATORS: This shall be the beginning of a poem
4972- title = _"A trip by the sea, what fun it can be",
4973- body = rt(
4974- h1(_"Expeditions") ..
4975- p(_[[During an expedition, you send a ship out to discover new islands and maybe found a colony there.]])
4976- ) ..
4977- rt("image=pics/start_expedition.png",p(_[[Expeditions can be started in every port. Then, all needed wares are transported to that port. The wares are exactly those your tribe needs to build a port (your goal is to build a port far away from home, so this is not surprising), and of course you need a builder, too. When everything is prepared, a ship will come and pick it up.]] .. " " ..
4978- _[[You can check out the needed wares in the fifth tab of your port (it will appear when you’ve started an expedition).]]) ..
4979- p(_[[Now try this out. I will tell you later what the next steps are.]]) ..
4980- paragraphdivider() ..
4981- listitem_bullet(_[[Start an expedition in any of your ports.]])
4982- ),
4983- obj_name = "start_expedition",
4984- obj_title = _"Start an expedition",
4985- obj_body = rt(
4986- paragraphdivider() ..
4987- listitem_bullet(_[[Start an expedition.]])
4988- ) ..
4989- rt("image=pics/start_expedition.png",p(_[[To do so, click on the ‘Start Expedition’ button in any port. A new tab where you can see the needed wares will appear.]])
4990- )
4991-}
4992-
4993-expedition3 = {
4994- position = "topright",
4995- title = _"Off to greener pastures",
4996- body = rt(
4997- h1(_"Start your expedition") ..
4998- p(_[[Your expedition ship is ready. It is waiting for your orders in front of your port. It isn’t transporting wares anymore. Use its buttons to send your ship in any of the six main directions of the Widelands map. When it has reached a coastline, you can make it travel around the coast, where it will look for suitable places for landing.]] .. " " ..
4999- _[[Once a port space has been found, you can construct a new port with the button in the center of the ship’s control window.]]) ..
5000- p(_[[The wares will then be unloaded, and the ship will take up the task of transporting wares once again. The builder will start his work and build a port.]]) ..
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches

to status/vote changes: