widelands-dev team mailing list archive
-
widelands-dev team
-
Mailing list archive
-
Message #10140
Re: [Merge] lp:~widelands-dev/widelands/empire-mission-3 into lp:widelands
Two diff comments:
- name attribute in texts.lua.
- superfluous comment in mission_thread
Diff comments:
>
> === added file 'data/campaigns/emp03.wmf/scripting/mission_thread.lua'
> --- data/campaigns/emp03.wmf/scripting/mission_thread.lua 1970-01-01 00:00:00 +0000
> +++ data/campaigns/emp03.wmf/scripting/mission_thread.lua 2017-05-11 21:11:09 +0000
> @@ -0,0 +1,466 @@
> +include "scripting/messages.lua"
> +include "map:scripting/helper_functions.lua"
> +
> +function check_stonemason() -- check for completed stonemason
> + while #p1:get_buildings("empire_stonemasons_house") < 1 do sleep(3000) end
> + campaign_message_box(amalea_3)
> +
> + -- don't use all your marble for columns
> + o3 = add_campaign_objective(obj_lower_marble_column_demand)
> + run(economy_settings)
> +end
> +
> +function explore_sea() -- if more than 3 ships are available it is time to explore the whole map
> + while #p1:get_ships() < 3 do sleep(3000) end
> + if #p1:get_buildings("empire_port") == 5 then
> + run(artifacts)
> + else
> + campaign_message_box(amalea_11)
> + o11 = add_campaign_objective(obj_find_all_ports)
> + -- check if all ports possible are build
> + while #p1:get_buildings("empire_port") < 5 do sleep(3000) end
> + o11.done = true
> + campaign_message_box(amalea_12)
> + run(artifacts)
> + end
> +end
> +
> +function artifacts() -- check for control of all pieces of Neptune's shrine (artifacts)
> + local artifact_fields = {}
> + local i = 1
> + -- find all artifacts
> + for x=0, map.width-1 do
> + for y=0, map.height-1 do
> + local field = map:get_field(x,y)
> + if field.immovable and field.immovable:has_attribute("artifact") then
> + -- this assumes that the immovable has size small or medium, i.e. only occupies one field
> + artifact_fields[i] = map:get_field(x,y)
> + i = i + 1
> + end
> + end
> + end
> +
> + while true do
> + sleep(4000)
> + -- objective will be triggered if 50+ buildings are build
> + local number_buildings = {
> + "empire_headquarters_shipwreck",
> + "empire_warehouse",
> + "empire_port",
> + "empire_quarry",
> + "empire_lumberjacks_house",
> + "empire_foresters_house",
> + "empire_fishers_house",
> + "empire_hunters_house",
> + "empire_well",
> + "empire_scouts_house",
> + "empire_stonemasons_house",
> + "empire_sawmill",
> + "empire_mill",
> + "empire_bakery",
> + "empire_brewery",
> + "empire_vineyard",
> + "empire_winery",
> + "empire_tavern",
> + "empire_inn",
> + "empire_charcoal_kiln",
> + "empire_smelting_works",
> + "empire_toolsmithy",
> + "empire_armorsmithy",
> + "empire_shipyard",
> + "empire_donkeyfarm",
> + "empire_farm",
> + "empire_piggery",
> + "empire_sheepfarm",
> + "empire_weaving_mill",
> + "empire_weaponsmithy",
> + "empire_marblemine",
> + "empire_marblemine_deep",
> + "empire_coalmine",
> + "empire_coalmine_deep",
> + "empire_ironmine",
> + "empire_ironmine_deep",
> + "empire_goldmine",
> + "empire_goldmine_deep",
> + "empire_arena",
> + "empire_colosseum",
> + "empire_trainingcamp",
> + "empire_blockhouse",
> + "empire_sentry",
> + "empire_outpost",
> + "empire_barrier",
> + "empire_tower",
> + "empire_fortress",
> + "empire_castle",
> + }
> + if count_buildings(p1, number_buildings) > 50 then
> + break
> + end
> + sleep(4000)
> + end
> + campaign_message_box(saledus_8)
> +
> +
> + o12 = add_campaign_objective(obj_find_artifacts)
> +
> + local artifacts_owner = {}
> + repeat
> + sleep(2000)
> + local all_artifacts_found = true
> + for idx, f in ipairs(artifact_fields) do
> + if f.owner then
> + if not artifacts_owner[f] then
> + if f.owner ~= p1 then
> + artifacts_owner[f] = nil
> + all_artifacts_found = false
> + else
> + artifacts_owner[f] = f.owner
> + sleep(2000)
> + local prior_center = scroll_to_field(f)
> + campaign_message_box(diary_page_6)
> + sleep(2000)
> + scroll_to_map_pixel(prior_center)
> + end
> + end
> + else
> + all_artifacts_found = false
> + end
> + end
> + until all_artifacts_found
> + campaign_message_box(saledus_9)
> + o12.done = true
> +end
> +
> +function check_wood_industry() -- check for completed Woddcutter and sawmill
> + while not check_for_buildings(p1, { empire_lumberjacks_house = 1, empire_sawmill = 1}) do sleep(2000) end
> + campaign_message_box(amalea_10)
> +end
> +
> +function check_military() -- check for too much military buildings
> + local too_much_mil_build = nil
> + while not too_much_mil_build do
> + local number_mil_buildings = {
> + "empire_sentry",
> + "empire_blockhouse",
> + "empire_outpost",
> + "empire_barrier",
> + "empire_tower",
> + }
> + if count_buildings(p1, number_mil_buildings) > 2 and #p1:get_buildings("empire_port") < 2 then
> + too_much_mil_build = 1
> + break
> + end
> + sleep(3000)
> + end
> + campaign_message_box(amalea_9)
> +end
> +
> +function economy_settings() -- check for economy options of marble column lowered to 4
> + local flag_field = map:get_field(4, 7)
> + local flag = flag_field.immovable
> + local eco = flag.economy
> + while eco:ware_target_quantity("marble_column") ~= 4 do
> + sleep(2434)
> + end
> + sleep(4000)
> + o3.done = true
> + campaign_message_box(amalea_8)
> +end
> +
> +function building_industry() -- check for completed building industry
> + run(check_stonemason)
> + run(check_wood_industry)
> + while not check_for_buildings(p1, { empire_lumberjacks_house = 1, empire_sawmill = 1, empire_stonemasons_house = 1})
> + do sleep(2343) end
> + o2.done = true
> + end
> +
> +function port_build() -- check for port build to realize we need gold
> + while not check_for_buildings(p1, {empire_port = 1}) do sleep(2434) end
> + campaign_message_box(amalea_6)
> + p1:allow_buildings{
> + "empire_brewery",
> + "empire_coalmine",
> + "empire_coalmine_deep",
> + "empire_ironmine",
> + "empire_ironmine_deep",
> + "empire_goldmine",
> + "empire_goldmine_deep",
> + "empire_vineyard",
> + "empire_winery",
> + "empire_mill",
> + "empire_bakery",
> + "empire_piggery",
> + "empire_donkeyfarm",
> + "empire_tavern",
> + "empire_inn",
> + "empire_toolsmithy",
> + "empire_armorsmithy",
> + "empire_weaponsmithy",
> + "empire_smelting_works",
> + }
> + p2:allow_buildings{
> + "barbarians_coalmine",
> + "barbarians_ironmine",
> + "barbarians_goldmine",
> + "barbarians_granitemine",
> + "barbarians_coalmine_deep",
> + "barbarians_ironmine_deep",
> + "barbarians_goldmine_deep",
> + "barbarians_coalmine_deeper",
> + "barbarians_ironmine_deeper",
> + "barbarians_goldmine_deeper",
> + "barbarians_port",
> + "barbarians_cattlefarm",
> + "barbarians_charcoal_kiln",
> + "barbarians_weaving_mill",
> + }
> + o7 = add_campaign_objective(obj_produce_gold)
> + run(check_gold)
> +end
> +
> +function check_gold() -- check for gold to be able to send out expeditions
> + while p1:get_produced_wares_count('gold') < 6 do sleep(2434) end
> + campaign_message_box(amalea_7)
> + o7.done = true
> +end
> +
> +function ship_industry()
> + run(port_build)
> + while not check_for_buildings(p1, { empire_port = 1, empire_shipyard =1 }) do sleep(2434) end
> + campaign_message_box(diary_page_4)
> + o5.done = true
> +end
> +
> +function wheat() -- check for enough wheat in warehouses
> + while count_in_warehouses("wheat") < 50 do sleep(2434) end
> + campaign_message_box(amalea_5)
> + p1:allow_buildings{"empire_well"}
> + p2:allow_buildings{"barbarians_warehouse" }
> + o6.done = true
> + -- We need to turn the wheat into cloth for building ships
> + o8 = add_campaign_objective(obj_produce_cloth)
> + p1:allow_buildings{
> + "empire_sheepfarm",
> + "empire_weaving_mill",
> + "empire_charcoal_kiln",
> + "empire_marblemine",
> + "empire_marblemine_deep"
> + }
> + p2:allow_buildings{
> + "barbarians_port",
> + "barbarians_shipyard",
> + "barbarians_brewery",
> + "barbarians_inn",
> + "barbarians_smelting_works",
> + "barbarians_metal_workshop",
> + "barbarians_ax_workshop",
> + "barbarians_warmill",
> + "barbarians_helmsmithy",
> + "barbarians_barracks",
> + "barbarians_battlearena",
> + "barbarians_trainingcamp",
> + "barbarians_big_inn",
> + }
> + while #p1:get_buildings("empire_weaving_mill") < 1 do sleep(3000) end
> + campaign_message_box(amalea_13)
> + while p1:get_produced_wares_count('cloth') < 6 do sleep(2434) end
> + o8.done = true
> + run(expedition)
> +end
> +
> +function expedition()
> + -- now we should explore our little world
> + while not o5.done == true do sleep(2434) end
> + campaign_message_box(saledus_5)
> + o9 = add_campaign_objective(obj_build_expedition_ports)
> +
> + while not check_for_buildings(p1, { empire_port = 3 }) do sleep(2434) end
> + campaign_message_box(saledus_6)
> +
> + p1:allow_buildings{"empire_barracks",
> + "empire_fortress",
> + "empire_arena",
> + "empire_trainingcamp",
> + "empire_colosseum",
> + "empire_warehouse",
> + "empire_castle",
> + "empire_scouts_house",
> + }
> + p2:allow_buildings{"barbarians_scouts_hut",
> + "barbarians_citadel",
> + }
> +
> + o9.done = true
> + o10 = add_campaign_objective(obj_conquer_all)
> + run(explore_sea)
> + run(soldiers)
> +
> + while true do
> + local barmil = {
> + "barbarians_headquarters",
> + "barbarians_warehouse",
> + "barbarians_port"}
> + if count_buildings(p2, barmil) < 1 then
> + break
> + end
> + sleep(2342)
> + end
> + o10.done = true
> +
> + -- Babarians defeated.
> + campaign_message_box(saledus_7)
> +
> + while not o12.done == true do sleep(3000) end -- to get home we need as well all artifacts
> + sleep(25000) -- Sleep a while to have some time between the last objective done message and final victory
> + campaign_message_box(diary_page_5)
> +
> + p1:reveal_campaign("campsect2")
> + p1:reveal_scenario("empiretut03")
> +end
> +
> +function soldiers() -- after discovery of babarian ruins we should hurry to build a full training capability
> + local ruins = map:get_field(86,82)
> + local ruin_fortress = map:get_field(85,80)
> +
> + while not p1:sees_field(ruins) == true do sleep(3000) end
> + scroll_to_field(ruin_fortress,5)
> + sleep(500)
> + --p1: reveal_fields(ruin_fortress:region(5))
Above: Removing commented code?
> + random_reveal(p1, ruin_fortress:region(5), 1000)
> + sleep(500)
> + campaign_message_box(saledus_12)
> +
> + local training = p1:get_buildings{
> + "empire_trainingcamp",
> + "empire_barracks",
> + "empire_arena",
> + "empire_colosseum"
> + }
> +
> + if #training.empire_trainingcamp > 0 and
> + #training.empire_barracks > 0 and
> + (#training.empire_arena > 0 or #training.empire_colosseum > 0) then
> + campaign_message_box(saledus_10)
> + else
> + campaign_message_box(saledus_11)
> + o13 = add_campaign_objective(obj_training)
> + end
> +
> + while not (#training.empire_trainingcamp > 0 and
> + #training.empire_barracks > 0 and
> + (#training.empire_arena > 0 or #training.empire_colosseum > 0)) do
> + sleep(3000)
> + training = p1:get_buildings{
> + "empire_trainingcamp",
> + "empire_barracks",
> + "empire_arena",
> + "empire_colosseum"
> + }
> + end
> + o13.done = true
> + campaign_message_box(saledus_10)
> +end
> +
> +function mission_thread()
> + sleep(1000)
> +
> + -- Initial messages
> + local sea = map:get_field(28, 8)
> +
> + scroll_to_field(sea,5)
> +
> + campaign_message_box(diary_page_1)
> +
> + -- Show the sea
> + random_reveal(p1, sea:region(5), 1000)
> + sleep(100)
> + local ship = p1:place_ship(sea)
> + sleep(2500)
> + campaign_message_box(diary_page_2)
> +
> + -- Hide the sea after 2 seconds
> + sleep(400)
> + ship:remove()
> + sleep(300)
> + random_hide(p1, sea:region(6), 1000)
> + sleep(300)
> +
> + -- Stranded again
> + scroll_to_field(sf) --scroll to the place where the ship is finally stranded
> + include "map:scripting/starting_conditions.lua" --now we place the shipwreck headquarters and fill it with workers and wares
> + p1:hide_fields(sf:region(13), true)
> + concentric_reveal(p1, sf, 13, 100)
> + campaign_message_box(diary_page_3)
> + sleep(400)
> + campaign_message_box(saledus)
> + sleep(400)
> + campaign_message_box(amalea)
> + sleep(400)
> + campaign_message_box(saledus_1)
> + o = add_campaign_objective(obj_build_first_outpost)
> + while #p1:get_buildings("empire_outpost") < 1 do sleep(3249) end
> + o.done = true
> +
> + -- Outpost is completed now
> + campaign_message_box(saledus_2)
> + o1 = add_campaign_objective(obj_build_quarry)
> + campaign_message_box(amalea_1)
> + while #p1:get_buildings("empire_quarry") < 1 do sleep(3000) end
> + o1.done = true
> +
> + -- quarry is now build but we need more basic infrastructure
> + campaign_message_box(amalea_2)
> + p1:allow_buildings{
> + "empire_barrier",
> + "empire_sawmill",
> + "empire_stonemasons_house",
> + "empire_foresters_house",
> + "empire_tower",
> + }
> + p2:allow_buildings{
> + "barbarians_tower",
> + "barbarians_fortress",
> + }
> + o2 = add_campaign_objective(obj_build_sawmill_stonemason_and_lumberjacks)
> + -- in the same time we need to discover more land and a port space
> + run(building_industry)
> + sleep(40000)
> + campaign_message_box(saledus_3)
> + p1:allow_buildings{
> + "empire_port",
> + "empire_shipyard",
> + }
> + o4 = add_campaign_objective(obj_find_port_space)
> +
> + local port = map:get_field(17, 17)
> + local fowned = nil
> + while not fowned do
> + if port.owner == p1 then
> + fowned = 1
> + break
> + end
> + sleep(3000)
> + end
> +
> + sleep(3213)
> + o4.done = true
> +
> + -- Portspace discovered now we can build a port
> + campaign_message_box(saledus_4)
> + p1:allow_buildings{
> + "empire_farm",
> + "empire_fishers_house",
> + "empire_hunters_house",
> + }
> + o5 = add_campaign_objective(obj_build_port_and_shipyard)
> + run(ship_industry)
> +
> + -- patience we have to think about how to get enough cloth to build a ship
> + campaign_message_box(amalea_4)
> + o6 = add_campaign_objective(obj_produce_wheat)
> + run(wheat)
> +end
> +
> +run(mission_thread)
> +run(check_military)
>
> === added file 'data/campaigns/emp03.wmf/scripting/texts.lua'
> --- data/campaigns/emp03.wmf/scripting/texts.lua 1970-01-01 00:00:00 +0000
> +++ data/campaigns/emp03.wmf/scripting/texts.lua 2017-05-11 21:11:09 +0000
> @@ -0,0 +1,639 @@
> +-- =========================
> +-- Some formating functions
> +-- =========================
> +
> +include "scripting/formatting.lua"
> +include "scripting/format_scenario.lua"
> +
> +function lutius(title, text)
> + return speech("map:Lutius.png", "2F9131", title, text)
> +end
> +function saledus2(title, text)
> + return speech("map:Saledus2.png", "8F9131", title, text)
> +end
> +function saledus3(title, text)
> + return speech("map:Saledus3.png", "8F9131", title, text)
> +end
> +function saledus4(title, text)
> + return speech("map:Saledus2.png", "8F9131", title, text)
> +end
> +function amalea1(title, text)
> + return speech("map:Amalea.png", "AF7511", title, text)
> +end
> +function amalea2(title, text)
> + return speech("map:Amalea2.png", "AF7511", title, text)
> +end
> +function amalea3(title, text)
> + return speech("map:Amalea3.png", "AF7511", title, text)
> +end
> +-- =======================================================================
> +-- Texts - No logic here
> +-- =======================================================================
> +
> +
> +-- ===========
> +-- objectives
> +-- ===========
> +obj_build_first_outpost = {
> + name = "build_a_first_outpost",
> + title=_"Build your first outpost",
> + number = 1,
> + body = objective_text(_"First Outpost",
> + listitem_bullet(_[[Build an outpost at the yellow house symbol to the east of your provisional headquarters.]])
> + ),
> +}
> +
> +obj_build_quarry = {
> + name = "build_quarry",
> + title=_"Build a quarry",
> + number = 1,
> + body = objective_text(_"Quarry",
> + listitem_bullet(_[[Build a quarry close to the abundant rocks, so we can free some building plots and get some valueable resources.]])
> + ),
> +}
> +
> +obj_build_sawmill_stonemason_and_lumberjacks = {
> + name = "build_sawmill_stonemason_and_lumberjacks",
> + title=_"Build a lumberjack’s house, a sawmill and a stonemason’s house",
> + number = 3,
> + body = objective_text(_"Lumberjack, Sawmill and Stonemason",
> + listitem_bullet(_[[Build a lumberjack’s house, a sawmill and a stonemason’s house as soon as there is enough space for them. This will complete the basic building material supply chain.]])
> + ),
> +}
> +
> +
> +obj_lower_marble_column_demand = {
> + name = "lower_marble_column_demand",
> + title=_"Lower the demand for marble columns",
> + number = 1,
> + body = objective_text(_"Lower Demand for Marble Columns",
> + listitem_bullet(_[[We should save some marble for buildings. So, please lower the demand for marble columns in the economy settings to four.]]) ..
> + listitem_arrow(_[[Remember that you can access the economy settings by clicking on any flag.]])
> + ),
> +}
> +
> +obj_find_port_space = {
> + name = "find_port_space",
> + title=_"Find a port space on the small island",
> + number = 1,
> + body = objective_text(_"Port Space",
> + listitem_bullet(_[[In order to regain access to the sea, we first must discover a port space.]])
> + ),
> +}
> +
> +obj_build_port_and_shipyard = {
> + name = "build_port_and_shipyard",
> + title=_"Build a port and a shipyard on the Island",
> + number = 2,
> + body = objective_text(_"Ship Industry",
> + listitem_bullet(_[[Build a port to set sail from this island.]])..
> + listitem_bullet(_[[Build a shipyard to produce the ships to sail on.]])),
> +}
> +
> +obj_produce_wheat = {
> + name = "produce_50_wheat",
> + title=_"Produce at least 50 sheaves of wheat",
> + number = 1,
> + body = objective_text(_"Wheat Production",
> + listitem_bullet(_[[To get our wool production started, we need at least 50 sheaves of wheat.]])
> + ),
> +}
> +
> +obj_produce_cloth = {
> + name = "produce_cloth",
> + title=_"Produce cloth for building our first ship",
> + number = 1,
> + body = objective_text(_"Cloth Production",
> + listitem_bullet(_[[Now let’s turn all the wheat into wool (at least 50 bales) and then use the wool to weave cloth in order to build a ship.]])
> + ),
> +}
> +
> +obj_build_expedition_ports = {
> + name = "build_expedition_ports",
> + title=_"Build 2 ports on distant islands",
> + number = 1,
> + body = objective_text(_"Build 2 Expedition Ports",
> + listitem_bullet(_[[We should explore the island in the south. Use an expedition to build a port there. Afterwards, let’s try to find some mining resources.]]) ..
> + listitem_bullet(_[[We should send a ship nothwards to gather some intelligence about the Barbarians. Try to build a port on the island and found an outpost.]])
> + ),
> +}
> +
> +obj_produce_gold = {
> + name = "produce_gold",
> + title=_"Produce gold to send out expeditions",
> + number = 1,
> + body = objective_text(_"Gold Production",
> + listitem_bullet(_[[We need to produce at least 6 gold to be able to colonize our vicinity.]])
> + ),
> +}
> +
> +obj_conquer_all = {
> + name = "conquer_all",
> + title=_"Defeat the Barbarians",
> + number = 1,
> + body = objective_text(_"Defeat the Enemy",
> + listitem_bullet(_[[We should end the Barbarians’ existence in this part of the world.]])
> + ),
> +}
> +
> +obj_find_all_ports = {
> + name = "Explore_futher_ build_ports",
There is a space in the above name. Shouldn't this string also start with a lowercase letter?
> + title=_"Explore further and build ports",
> + number = 1,
> + body = objective_text(_"Explore Additional Islands and Search for Port Spaces",
> + listitem_bullet(_[[We should discover more land and build as many ports as we can.]])
> + ),
> +}
> +
> +obj_find_artifacts = {
> + name = "find_neptunes_shrine",
> + title=_"Recover the shrine",
> + number = 1,
> + body = text_line("</p><p font-size=14 font-weight=bold font-color=d1d1d1 line-spacing=6>Find the Holy Shrine<br>",
> + listitem_bullet(_[[We need to find and secure all six pieces of the holy shrine of Neptune.]]), "map:artifacts_models.png")
> +}
> +
> +
> +obj_training = {
> + name = "build_training_infrastructure",
> + title=_"Build a training infrastructure",
> + number = 3,
> + body = objective_text(_"Training Infrastructure",
> + listitem_bullet(_[[Build a training camp, some barracks and an arena or colosseum to train our soldiers.]])
> + ),
> +}
> +
> +
> +-- ==================
> +-- Texts to the user
> +-- ==================
> +diary_page_1 = {
> + title =_"The Journey Home",
> + body=lutius(_"Diary of Lutius",
> + -- TRANSLATORS: Lutius - Diary
> + _([[Finally, we were set towards Fremil again. I couldn’t await the chance to clear my records of this big defeat by the Barbarians.]])
> + .. paragraphdivider() ..
> + -- TRANSLATORS: Lutius - Diary
> + _([[But the gods themselves didn’t want us to get home so quickly!]])),
> +
> + posy=1,
> + w=500,
> +
> +}
> +
> +diary_page_2 = {
> + title=_"The Wrath of Neptune",
> + body= lutius(_"Diary of Lutius",
> + -- TRANSLATORS: Lutius - Diary
> + _([[Neptune himself was against us and drove us into a dark, wild storm again. But this time it felt even worse than last time. The waves were twice the height of our brave ship and the winds drove us into unsafe waters.]])
> + .. paragraphdivider() ..
> + -- TRANSLATORS: Lutius - Diary
> + _([[Our ship is heavily damaged. The mast has gone overboard and the hull is taking in more and more water. We would be glad to survive this black night with barely more than our lives.]])),
> +
> + posy=1,
> + w=500,
> +}
> +
> +diary_page_3 = {
> + title=_"Shipwrecked Again",
> + body= lutius(_"Diary of Lutius",
> + -- TRANSLATORS: Lutius - Diary
> + _([[Finally, the wrath of the gods and the ocean seems to be over.]])
> + .. paragraphdivider() ..
> + -- TRANSLATORS: Lutius - Diary
> + _([[We landed on an unknown coast and found some 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 and stone around us.]])
> + .. paragraphdivider() ..
> + -- TRANSLATORS: Lutius - Diary
> + _([[It really seems as if we have landed on a very small island with little space.]])
> + .. paragraphdivider() ..
> + -- TRANSLATORS: Lutius - Diary
> + _([[To make matters even worse, all the land we can see is blocked by rocks and trees. I fear we won’t find the resources we need to build a new ship.]])
> + .. paragraphdivider() ..
> + -- TRANSLATORS: Lutius - Diary
> + _([[I really don’t know if and how we will get back home. And the war is going on without us. I hope my comrades are defending our empire well.]])),
> +
> + posy=1,
> + w=500,
> +}
> +
> +saledus = {
> + title=_"No Sight",
> + body= saledus2(_"Saledus looks around nervously…",
> + -- TRANSLATORS: Saledus
> + _([[Sire, we do not know anything about the island. And I believe we are not safe either. It would probably be reasonable to build a tower to explore the island and add some military strength.]])),
> +
> + posy=1,
> + w=500,
> +}
> +
> +amalea = {
> + title=_"Amalea Interrupts",
> + body= amalea1(_"Amalea raises her hand…",
> + -- TRANSLATORS: Amalea
> + _([[Salve Lutius. As we don’t know how many resources we can get, we should be very restrictive in spending them. Even for military buildings, we should be very careful.]])),
> +
> + posy=1,
> + w=500,
> +}
> +
> +saledus_1 = {
> + title=_"Save Resources",
> + body= saledus2(_"Saledus is nodding in agreement…",
> + -- TRANSLATORS: Saledus
> + _([[Sire, Amalea is right about the resources. Therefore I correct myself. We should only build an outpost as this is the most effective military building.]]))
> + .. new_objectives(obj_build_first_outpost),
> +
> + posy=1,
> + w=500,
> + h=480,
> +}
> +
> +saledus_2 = {
> + title=_"Rocks, Nothing but Rocks",
> + body= saledus3(_"Saledus speaks with a sigh of relief…",
> + -- TRANSLATORS: Saledus
> + _([[Sire, I saw that the construction of the outpost was completed, so I have assigned some of my best soldiers to it to keep the watch.]])
> + .. paragraphdivider() ..
> + -- TRANSLATORS: Saledus
> + _([[But although this is a good step forward, I can’t see much space for buildings. The whole island is littered with rocks. How can we ever build a new ship or even have some basic infrastructure to make our lives more comfortable?]])),
> + posy=1,
> + w=500,
> +}
> +
> +amalea_1 = {
> + title=_"Amalea’s Plan",
> + body= amalea2(_"Amalea smiles…",
> + -- TRANSLATORS: Amalea
> + _([[Lutius, this may seem very tricky, but we can do it. First of all, we need patience as well as speed and a plan to succeed in this part of the world.]])
> + .. paragraphdivider() ..
> + -- TRANSLATORS: Amalea
> + _([[I think we should try to reveal some building space by cutting up all the rocks in a quarry.]])
> + .. paragraphdivider() ..
> + -- TRANSLATORS: Amalea
> + _([[Additionally, this would gain us some granite and some marble to build up our new world. We can use them as soon as there will finally be enough space for buildings.]]))
> + .. new_objectives(obj_build_quarry),
> + posy=1,
> + w=500,
> + h=480,
> +}
> +
> +amalea_2 = {
> + title=_"Amalea’s New Instructions",
> + body= amalea3(_"Amalea recommends…",
> + -- TRANSLATORS: Amalea
> + _([[Good news from the people, Lutius. I got the message that our first quarry has started its work today.]])
> + .. paragraphdivider() ..
> + -- TRANSLATORS: Amalea
> + _([[Perhaps it would be a good idea to wait until it has cleared some space and then build up a basic construction material industry.]]))
> + .. new_objectives(obj_build_sawmill_stonemason_and_lumberjacks),
> + posy=1,
> + w=500,
> + h=500,
> +}
> +
> +amalea_3 = {
> + title=_"Amalea’s Recommendations",
> + body= amalea2(_"Amalea comes in…",
> + -- TRANSLATORS: Amalea
> + _([[I’ve got important things to talk about… First the good news:]])
> + .. paragraphdivider() ..
> + -- TRANSLATORS: Amalea
> + _([[I noticed that our stonemason has started his work, finally. He will cut the number of marble columns that we request in our basic economy settings.]])
> + .. paragraphdivider() ..
> + -- TRANSLATORS: Amalea
> + _([[But here’s the rub, if we use up all of our marble for columns, we might run out. So, we should lower the settings for marble columns in the economy settings to a smaller amount. I think a reserve of 4 columns might be sufficient for the moment being.]]))
> + .. new_objectives(obj_lower_marble_column_demand),
> + posy=1,
> + w=500,
> + h=480,
> +}
> +
> +amalea_10 = {
> + title=_"Amalea Looks Happy",
> + body= amalea2(_"Amalea comes in…",
> + -- TRANSLATORS: Amalea
> + _([[Ave Lutius. I have excellent progress to report now.]])
> + .. paragraphdivider() ..
> + -- TRANSLATORS: Amalea
> + _([[I found out that the construction of the lumberjack´s house and the sawmill is complete, so we can begin to harvest logs and make planks out of them.]])
> + .. paragraphdivider() ..
> + -- TRANSLATORS: Amalea
> + _([[This is a great step forward in constructing advanced buildings. And we can think of using some planks to build new ships.]])),
> + posy=1,
> + w=500,
> +}
> +
> +saledus_3 = {
> + title=_"We Need a Port",
> + body= saledus2(_"Saledus thoughtfully…",
> + -- TRANSLATORS: Saledus
> + _([[Sire, I just pondered our way home. It is of utmost importance to build a port for loading our ships and starting an expedition.]])
> + .. paragraphdivider() ..
> + -- TRANSLATORS: Saledus
> + _([[The problem is that a port is a building which needs a very special place to be build. So, while building our economy, we should nevertheless expand further to discover the whole island. Let’s try to find such a valuable construction site.]]))
> + .. new_objectives(obj_find_port_space),
> + posy=1,
> + w=500,
> + h=480,
> +}
> +
> +saledus_4 = {
> + title=_"A Step Closer to Getting Home",
> + body= saledus3(_"Saledus looks excited…",
> + -- TRANSLATORS: Saledus
> + _([[Sire, today we got a lot closer to finally returning home again. Our military has spotted a space to build a port on. We should start to build a port quickly.]])
> + .. paragraphdivider() ..
> + -- TRANSLATORS: Saledus
> + _([[Now we truly can look forward to building some ships. So, we should build a shipyard as well.]]))
> + .. new_objectives(obj_build_port_and_shipyard),
> + posy=1,
> + w=500,
> + h=480,
> +}
> +
> +amalea_4 = {
> + title=_"Amalea’s Wisdom",
> + body= amalea2(_"Amalea recommends…",
> + -- TRANSLATORS: Amalea
> + _([[I understand the euphoria of Saledus, but we have some serious problems to solve first.]])
> + .. paragraphdivider() ..
> + -- TRANSLATORS: Amalea
> + _([[To send out an expeditionary ship, we first need a ship. Unfortunately we have only 5 bales of cloth left, which we will need to build the port and the shipyard.]])
> + .. paragraphdivider() ..
> + -- TRANSLATORS: Amalea
> + _([[So, we need more cloth to finally be able to build ships. But there is no space on the island for building a whole economy to produce cloth. Therefore, we need to build the necessary wares step by step.]])
> + .. paragraphdivider() ..
> + -- TRANSLATORS: Amalea
> + _([[So, let’s think this over. To weave cloth we need some wool from a sheep farm. The sheepfarm itself needs wheat and water to work. So, let’s find a space for a big building and build a wheat farm first.]])
> + .. paragraphdivider() ..
> + -- TRANSLATORS: Amalea
> + _([[After the production of enough wheat, we can dismantle the farm and build a sheep farm to produce wool. Later on, we could build a weaving mill in the same spot to use our wool for weaving cloth. But for the moment being, let’s start by producing a reasonable amount of wheat.]])
> + .. paragraphdivider() ..
> + -- TRANSLATORS: Amalea
> + _([[I think a stock of 50 wheat would be enough for starters. Perhaps we will have to adjust the target quantity for wheat to achieve this.]]))
> + .. new_objectives(obj_produce_wheat),
> + posy=1,
> + w=500,
> + h=550,
> +}
> +
> +-- NOCOM (#codereview): This message was overlayed by another message by Amalea. Sleep in between?
> +-- I also made some message windows smaller. Our minimum supported resoultion is 800 x 600, so message windows that are higher than 550 are cumbersome.
> +diary_page_4 = {
> + title=_"Seafaring is Possible Again",
> + body= lutius(_"Diary of Lutius",
> + -- TRANSLATORS: Lutius - Diary
> + _([[Praise the gods. We finally have a ship industry.]])),
> + posy=1,
> + w=500,
> +}
> +
> +
> +amalea_5 = {
> + title=_"Amalea Proud",
> + body= amalea2(_"Amalea cheers…",
> + -- TRANSLATORS: Amalea
> + _([[Well done so far. We have produced enough wheat. Now dismantle the farm and build the next building in the production chain.]])
> + .. paragraphdivider() ..
> + -- TRANSLATORS: Amalea
> + _([[Don’t forget to check the target quantity of wool and cloth in the economy settings. We need to turn all the wheat into wool and then the all the wool into cloth.]])
> + .. paragraphdivider() ..
> + -- TRANSLATORS: Amalea
> + _([[Perhaps it would be a good idea to stop the shipyard’s production until we have some cloth available in order to not waste any logs or planks.]]))
> + .. new_objectives(obj_produce_cloth),
> + posy=1,
> + w=500,
> + h=480,
> +}
> +
> +saledus_5 = {
> + title=_"We Should Explore the Islands",
> + body= saledus2(_"Saledus is excited…",
> + -- TRANSLATORS: Saledus
> + _([[Now that we have all resources ready for building a ship, we should explore the surrounding islands.]])
> + .. paragraphdivider() ..
> + -- TRANSLATORS: Saledus
> + _([[First, we need to find some more resources to back up our growing economy. I have spotted an island with some mountains in the south. Perhaps we can find some valuable resources like iron there.]])
> + .. paragraphdivider() ..
> + -- TRANSLATORS: Saledus
> + _([[But the following objective is even more important:]])
> + .. paragraphdivider() ..
> + -- TRANSLATORS: Saledus
> + _([[I think I have heard the wind carrying some weird but well known sounds from the north. If I’m not totally wrong, I have heard some Barbarian war drums. So, we should better go and have a look at what is going on up there.]]))
> + .. new_objectives(obj_build_expedition_ports),
> + posy=1,
> + w=500,
> + h=550,
> +}
> +
> +amalea_6 = {
> + title=_"Amalea Advises",
> + body= amalea3(_"Amalea looks thoughtfully…",
> + -- TRANSLATORS: Amalea
> + _([[Salve Lutius. While talking to all our brave builders, they told me that they had to use up all our remaining gold for building the port. Now we don’t have any gold left.]])
> + .. paragraphdivider() ..
> + -- TRANSLATORS: Amalea
> + _([[But the problem is that for sending out an expedition, we need some gold.]])
> + .. paragraphdivider() ..
> + -- TRANSLATORS: Amalea
> + _([[Fortunately, I spotted a mountain which looks very promising and seems to have some mining resources. Perhaps we should send some geologists to explore the hidden resources.]])
> + .. paragraphdivider() ..
> + -- TRANSLATORS: Amalea
> + _([[I strongly recommend building a production chain for mining and melting some gold. I think we need a vineyard, a winery, a tavern, a fisher’s house or a hunter’s house and a smelting works. And the mines themselves of course.]])
> + .. paragraphdivider() ..
> + -- TRANSLATORS: Amalea
> + _([[If there are difficulties with building all the buildings needed, we should think about all we have learned so far. We can cut down all the rocks. We should perhaps optimize our roads to free up some building sites, or even dismantle some military buildings to obtain more space for our economy.]]))
> + .. new_objectives(obj_produce_gold),
> + posy=1,
> + w=500,
> + h=550,
> +}
> +
> +saledus_6 = {
> + title=_"We Should Conquer All the Islands",
> + body= saledus3(_"Saledus is excited…",
> + -- TRANSLATORS: Saledus
> + _([[Now it is time to conquer the islands.]])
> + .. paragraphdivider() ..
> + _([[Let’s finish the Barbarians off and provide a nice colony to the caesar of our empire.]]))
> + .. new_objectives(obj_conquer_all),
> + posy=1,
> + w=500,
> + h=480,
> +}
> +
> +amalea_7 = {
> + title=_"Amalea’s Luck",
> + body= amalea2(_"Amalea is really proud of the achievements…",
> + -- TRANSLATORS: Amalea
> + _([[Lutius, we have just solved another problem. We managed to melt enough gold to send out at least three expeditions. Perhaps we might even keep some gold to make some jewelry.]])
> + .. paragraphdivider() ..
> + -- TRANSLATORS: Amalea
> + _([[I’m just kidding. Of course we should spare as much gold as we can for building an arena and other buildings to train our soldiers.]])),
> + posy=1,
> + w=500,
> +}
> +
> +amalea_8 = {
> + title=_"Amalea is Pleased",
> + body= amalea1(_"Amalea is content that we will manage all our challenges",
> + -- TRANSLATORS: Amalea
> + _([[Well done so far. Now we will not produce more marble columns than needed. I really think we will need this economy feature quite often to adjust our economy. Remember, our industry will only be working until the given amount in the economy settings is reached.]])
> + .. paragraphdivider() ..
> + -- TRANSLATORS: Amalea
> + _([[For example, it might be a good idea to produce a reasonable amount of a ware and afterwards dismantle the building to gain space for another building.]])),
> + posy=1,
> + w=500,
> +}
> +
> +amalea_9 = {
> + title=_"Amalea’s Reminder",
> + body= amalea3(_"Amalea is shaking her head…",
> + -- TRANSLATORS: Amalea
> + _([[Lutius. I really appreciate that you and Saledus are so concerned about our security. But I think we could use the little space on this island better than by building a lot of military buildings.]])
> + .. paragraphdivider() ..
> + -- TRANSLATORS: Amalea
> + _([[I strongly recommend dismantling the most of them to be able to build industrial buildings. I don’t think there is much danger on this island, but if you want to be cautious, you can keep some sentries or blockhouses near the coastline.]])
> + .. paragraphdivider() ..
> + -- TRANSLATORS: Amalea
> + _([[But be careful not to waste any bigger building spots.]])),
> + posy=1,
> + w=500,
> +}
> +
> +amalea_11 = {
> + title=_"Amalea’s Excited",
> + body= amalea1(_"Amalea is looking forward to the exploration…",
> + -- TRANSLATORS: Amalea
> + _([[Lutius. We have made so much progress so far. I just got the information that we have completed our third ship.]])
> + .. paragraphdivider() ..
> + -- TRANSLATORS: Amalea
> + _([[Now that our fleet is growing and growing we should discover the complete region. Let’s try to find more land and eventually get more resources.]])
> + .. paragraphdivider() ..
> + -- TRANSLATORS: Amalea
> + _([[It would be especially helpful to find more marble, either within fields of rock or in the mountains to mine it.]]))
> + .. new_objectives(obj_find_all_ports),
> + posy=1,
> + w=500,
> + h=480,
> +}
> +
> +amalea_12 = {
> + title=_"Amalea is Very Content",
> + body= amalea2(_"Amalea is clapping her hands…",
> + -- TRANSLATORS: Amalea
> + _([[Lutius. Well done. Well done. We have discovered all possible port locations in the complete region. Now we can backup our economy and we will manage to sail home soon.]])),
> + posy=1,
> + w=500,
> +}
> +
> +amalea_13 = {
> + title=_"Amalea Consulting",
> + body= amalea1(_"Amalea is clapping her hands…",
> + -- TRANSLATORS: Amalea
> + _([[Salve Lutius. We just completed our weaving mill. Now we are very close to get to the sea again. However I thought it would be helpful to remind you that ship production is not the only industry that needs cloth.]])
> + .. paragraphdivider() ..
> + _([[We need as well some cloth to produce armor in our armor smithy. We need it to build some of the training buildings for our soldiers. And most important and most imminent we need it to send out expeditions.]])
> + .. paragraphdivider() ..
> + _([[Therefore I really recommend to check the stock of cloth quite regularly to ensure that at least we keep enough cloth to send out some expeditions. As one expedition needs 3 rolls of cloth I think a reserve of 6 to 9 rolls giving us 2 to 3 expeditions would be sufficient.]])),
> + posy=1,
> + w=500,
> +}
> +
> +saledus_7 = {
> + title=_"Victory is Ours",
> + body= saledus3(_"Saledus is cheering…",
> + -- TRANSLATORS: Saledus
> + _([[Sire, finally we have defeated the Barbarians in this region. And furthermore, we have built a nice colony for our empire.]])
> + .. paragraphdivider() ..
> + _([[Caesar will be very pleased about our victory.]])),
> + posy=1,
> + w=500,
> +}
> +
> +saledus_8 = {
> + title=_"Pleasing Neptune",
> + body= saledus4(_"Saledus is Very Sad and Anxious…",
> + -- TRANSLATORS: Saledus
> + _([[Sire, we are making good progress towards getting home eventually. But there is one thing I need to talk about:]])
> + .. paragraphdivider() ..
> + _([[As we have seen on our last journey, it is of great importance to put the gods and especially Neptune in a good mood to safeguard our journey.]])
> + .. paragraphdivider() ..
> + _([[Unfortunately, we lost our holy shrine of Neptune in the great storm, so we can’t worship him well. I think we should search the whole region to see if we can recover all six pieces of the shrine.]])
> + .. paragraphdivider() ..
> + _([[To ease the search, I have crafted some models of the pieces as you can see. You can give them to our soldiers and sailors to look for them.]]))
> + .. new_objectives(obj_find_artifacts),
> + posy=1,
> + w=500,
> + h=550,
> +}
> +
> +saledus_9 = {
> + title=_"Praise, Praise, Praise",
> + body= saledus2(_"Saledus is happily worshipping…",
> + -- TRANSLATORS: Saledus
> + _([[Sire, we recovered the holy shrine of Neptune. Now we can seek his protection for our journey.]])
> + .. paragraphdivider() ..
> + _([[Oh great Neptune, safeguard our journey! Oh great Neptune, let the winds be friendly to our course! Oh great Neptune, save us from the creatures of the sea! Oh great Neptune, …]])),
> + posy=1,
> + w=500,
> +}
> +
> +saledus_12 = {
> + title=_"Unpleasant Discoveries",
> + body= saledus3(_"Saledus looks very worried…",
> + -- TRANSLATORS: Saledus
> + _([[Sire, we found the ruins of a former Barbarian fortress and village. I’m somewhat worried that we will have to fight against them before we are ready.]])),
> + posy=1,
> + w=500,
> +}
> +
> +saledus_10 = {
> + title=_"Train Faster, Train Harder",
> + body= saledus2(_"Saledus is demanding some discipline",
> + -- TRANSLATORS: Saledus
> + _([[Sire, we have all buildings available for training our soldiers, but we should increase our efforts to train them to the highest level and to train more of them.]])
> + .. paragraphdivider() ..
> + _([[We need a lot of food, a lot of iron and a lot of gold to do so. So, we have lots of challenges to cope with.]])),
> + posy=1,
> + w=500,
> +}
> +
> +saledus_11 = {
> + title=_"Training Infrastructure is Needed",
> + body= saledus3(_"Saledus has security concerns",
> + -- TRANSLATORS: Saledus
> + _([[Sire, we need to train some of our people to serve in your great army. It is important to increase the number of our soldiers as fast as we can. And we should train them well to improve their fighting abilities.]])
> + .. paragraphdivider() ..
> + _([[Therefore, we need to build a full training infrastructure despite the limited space available. We need some barracks, a training camp and an arena or a colosseum.]]))
> + .. new_objectives(obj_training),
> + posy=1,
> + w=500,
> + h=480,
> +}
> +
> +
> +
> +diary_page_5 = {
> + title=_"Time to get Home Again",
> + body= lutius(_"Diary of Lutius",
> + -- TRANSLATORS: Lutius - Diary
> + _([[Yes my fellow soldiers, we have done it! We have met all the challenges that were put in front of us. But my heart is still with our home. We shall set sail as soon as possible to help defend the Empire from the Barbarian tribe.]])
> + .. paragraphdivider() ..
> + _([[You have completed this mission. You may continue playing if you wish, otherwise move on to the next mission.]])),
> + posy=1,
> + w=500,
> +}
> +
> +
> +diary_page_6 = {
> + title=_"Artifact Found",
> + body= lutius(_"Diary of Lutius",
> + -- TRANSLATORS: Lutius - Diary
> + _([[Finally, we found a piece of our shrine. Praise Neptune!]])),
> + posy=1,
> + w=500,
> + }
> +
> +
> +
--
https://code.launchpad.net/~widelands-dev/widelands/empire-mission-3/+merge/321434
Your team Widelands Developers is requested to review the proposed merge of lp:~widelands-dev/widelands/empire-mission-3 into lp:widelands.
References