GunChleoc has proposed merging lp:~widelands-dev/widelands/bug-1322473 into lp:widelands.
Requested reviews: Widelands Developers (widelands-dev) Related bugs: Bug #1322473 in widelands: " Add Win conditions as an Objective" https://bugs.launchpad.net/widelands/+bug/1322473 For more details, see: https://code.launchpad.net/~widelands-dev/widelands/bug-1322473/+merge/221235 Initial win condition is now an objective. Keep the bug open for further future improvements. -- https://code.launchpad.net/~widelands-dev/widelands/bug-1322473/+merge/221235 Your team Widelands Developers is requested to review the proposed merge of lp:~widelands-dev/widelands/bug-1322473 into lp:widelands.
=== modified file 'maps/MP Scenarios/Island Hopping.wmf/scripting/multiplayer_init.lua' --- maps/MP Scenarios/Island Hopping.wmf/scripting/multiplayer_init.lua 2014-03-25 06:18:48 +0000 +++ maps/MP Scenarios/Island Hopping.wmf/scripting/multiplayer_init.lua 2014-05-28 13:43:10 +0000 @@ -239,6 +239,9 @@ disable_unused_buildings() send_to_all(welcome_msg) + -- set the objective with the game type for all players + -- TODO change this to a broadcast once individual game objectives have been implementes + game.players[1]:add_objective("win_conditions", _"Rules", welcome_msg) for idx,plr in ipairs(game.players) do run(function() run_island(plr, 1) end) === modified file 'maps/MP Scenarios/Smugglers.wmf/scripting/multiplayer_init.lua' --- maps/MP Scenarios/Smugglers.wmf/scripting/multiplayer_init.lua 2014-03-25 06:18:48 +0000 +++ maps/MP Scenarios/Smugglers.wmf/scripting/multiplayer_init.lua 2014-05-28 13:43:10 +0000 @@ -140,7 +140,9 @@ end send_to_all(welcome_msg:format((ngettext("%i point", "%i points", points_to_win)):format(points_to_win))) - + -- set the objective with the game type for all players + -- TODO change this to a broadcast once individual game objectives have been implementes + game.players[1]:add_objective("win_conditions", _"Rules", welcome_msg:format((ngettext("%i point", "%i points", points_to_win)):format(points_to_win))) for idx,descr in ipairs(route_descrs) do run(wait_for_established_route, descr) === modified file 'maps/Plateau.wmf/scripting/init.lua' --- maps/Plateau.wmf/scripting/init.lua 2014-03-25 06:18:48 +0000 +++ maps/Plateau.wmf/scripting/init.lua 2014-05-28 13:43:10 +0000 @@ -22,6 +22,7 @@ sleep(300) send_msg(briefing_1_the_forbidden_island) + local o = add_obj(obj_forbidden_island) local map = wl.Game().map while not p1:seen_field(map:get_field(5,8)) do sleep(2345) end @@ -47,7 +48,8 @@ scroll_smoothly_to(castle) send_msg(briefing_2_found_ancient_castle) - local o = add_obj(obj_capture_ancient_castle) + o.done = true + o = add_obj(obj_capture_ancient_castle) -- Wait till we conquered the castle while #p1:get_buildings"castle.atlanteans" < 1 do sleep(2345) end === modified file 'maps/Plateau.wmf/scripting/texts.lua' --- maps/Plateau.wmf/scripting/texts.lua 2014-04-09 17:50:02 +0000 +++ maps/Plateau.wmf/scripting/texts.lua 2014-05-28 13:43:10 +0000 @@ -23,6 +23,19 @@ return p1:add_objective(o.name, o.title, _obj(reflow(o.body)), o) end +obj_forbidden_island = { + name = "forbidden_island", + title =_"The Forbidden Island", + body = _( +[[Finally! We have just taken our first step towards victory! ]] .. +[[Last night, we landed on the forbidden island and defeated the few guards that were watching the ]] .. +[[north-western part of the island. ]] .. +[[I am quite sure that none of the other warlords has detected us so far, ]] .. +[[so we should keep quiet and build up our infrastructure. Soon we will be strong enough to raid their positions.]]), +} + + + obj_capture_ancient_castle = { name = "capture_ancient_castle", title =_ "Capture the Ancient Castle", === modified file 'scripting/win_condition_functions.lua' --- scripting/win_condition_functions.lua 2013-08-07 16:58:48 +0000 +++ scripting/win_condition_functions.lua 2014-05-28 13:43:10 +0000 @@ -125,3 +125,19 @@ wl.game.report_result(p, 0, make_extra_data(p, wc_name, wc_ver, extra)) end end + + +-- RST +-- .. function:: broadcast_objective(plrs, header, msg, body) +-- +-- :arg plrs: This should be wl.Game().players +-- :arg name: A unique name for the objective +-- :arg title: The title to be displayed for the objective +-- :arg body: The content text to be displayed for the objective +-- +-- broadcast an objective to all players +-- technically, it is assigned to player1, because all players will see all objectives +function broadcast_objective(plrs, name, title, body) + plrs[1]:add_objective(name, title, body) +end + === modified file 'scripting/win_conditions/00_endless_game.lua' --- scripting/win_conditions/00_endless_game.lua 2014-03-25 06:18:48 +0000 +++ scripting/win_conditions/00_endless_game.lua 2014-05-28 13:43:10 +0000 @@ -18,7 +18,8 @@ func = function() local plrs = wl.Game().players - broadcast(plrs, wc_name, wc_desc) + -- set the objective with the game type for all players + broadcast_objective(plrs, "win_condition", wc_name, wc_desc) -- Iterate all players, if one is defeated, remove him -- from the list, send him a defeated message and give him full vision === modified file 'scripting/win_conditions/01_defeat_all.lua' --- scripting/win_conditions/01_defeat_all.lua 2014-03-25 06:18:48 +0000 +++ scripting/win_conditions/01_defeat_all.lua 2014-05-28 13:43:10 +0000 @@ -18,7 +18,8 @@ func = function() local plrs = wl.Game().players - broadcast(plrs, wc_name, wc_desc) + -- set the objective with the game type for all players + broadcast_objective(plrs, "win_condition", wc_name, wc_desc) -- Iterate all players, if one is defeated, remove him -- from the list, send him a defeated message and give him full vision === modified file 'scripting/win_conditions/02_collectors.lua' --- scripting/win_conditions/02_collectors.lua 2014-03-25 06:18:48 +0000 +++ scripting/win_conditions/02_collectors.lua 2014-05-28 13:43:10 +0000 @@ -22,6 +22,10 @@ name = wc_name, description = wc_desc, func = function() + local plrs = wl.Game().players + + -- set the objective with the game type for all players + broadcast_objective(plrs, "win_condition", wc_name, wc_desc) -- Simple flowing text. One Paragraph local function p(s) @@ -167,12 +171,6 @@ sleep(1000) local remaining_time = 60 * 4 -local plrs = wl.Game().players - --- send a message with the game type to all players -for idx, p in ipairs(plrs) do - p:send_message(wc_name, wc_desc) -end -- Endless loop while true do === modified file 'scripting/win_conditions/03_territorial_lord.lua' --- scripting/win_conditions/03_territorial_lord.lua 2014-03-25 06:18:48 +0000 +++ scripting/win_conditions/03_territorial_lord.lua 2014-05-28 13:43:10 +0000 @@ -21,6 +21,10 @@ name = wc_name, description = wc_desc, func = function() + local plrs = wl.Game().players + + -- set the objective with the game type for all players + broadcast_objective(plrs, "win_condition", wc_name, wc_desc) -- Get all valueable fields of the map local fields = {} @@ -50,12 +54,6 @@ local candidateisteam = false local remaining_time = 10 -- (dummy) -- time in secs, if == 0 -> victory - -- Find all valid players - local plrs = wl.Game().players - - -- send a message with the game type to all players - broadcast(plrs, wc_name, wc_desc) - -- Find all valid teams local teamnumbers = {} -- array with team numbers for idx,p in ipairs(plrs) do === modified file 'scripting/win_conditions/03_territorial_time.lua' --- scripting/win_conditions/03_territorial_time.lua 2014-03-25 06:18:48 +0000 +++ scripting/win_conditions/03_territorial_time.lua 2014-05-28 13:43:10 +0000 @@ -26,6 +26,10 @@ name = wc_name, description = wc_desc, func = function() + local plrs = wl.Game().players + + -- set the objective with the game type for all players + broadcast_objective(plrs, "win_condition", wc_name, wc_desc) -- Get all valueable fields of the map local fields = {} @@ -58,12 +62,6 @@ local candidateisteam = false local remaining_time = 10 -- (dummy) -- time in secs, if == 0 -> victory - -- Find all valid players - local plrs = wl.Game().players - - -- send a message with the game type to all players - broadcast(plrs, wc_name, wc_desc) - -- Find all valid teams local teamnumbers = {} -- array with team numbers for idx,p in ipairs(plrs) do === modified file 'scripting/win_conditions/04_wood_gnome.lua' --- scripting/win_conditions/04_wood_gnome.lua 2014-03-25 06:18:48 +0000 +++ scripting/win_conditions/04_wood_gnome.lua 2014-05-28 13:43:10 +0000 @@ -21,10 +21,10 @@ name = wc_name, description = wc_desc, func = function() - local plrs = wl.Game().players + local plrs = wl.Game().players - -- send a message with the game type to all players - broadcast(plrs, wc_name, wc_desc) + -- set the objective with the game type for all players + broadcast_objective(plrs, "win_condition", wc_name, wc_desc) local remaining_time = 4 * 60 -- 4 hours === modified file 'scripting/win_conditions/05_endless_game_fogless.lua' --- scripting/win_conditions/05_endless_game_fogless.lua 2014-03-25 06:18:48 +0000 +++ scripting/win_conditions/05_endless_game_fogless.lua 2014-05-28 13:43:10 +0000 @@ -18,7 +18,8 @@ func = function() local plrs = wl.Game().players - broadcast(plrs, wc_name, wc_desc) + -- set the objective with the game type for all players + broadcast_objective(plrs, "win_condition", wc_name, wc_desc) -- reveal the whole map for every player local game = wl.Game() === modified file 'src/logic/cmd_queue.h' --- src/logic/cmd_queue.h 2014-05-11 12:29:55 +0000 +++ src/logic/cmd_queue.h 2014-05-28 13:43:10 +0000 @@ -22,6 +22,7 @@ #include <memory> #include <queue> +#include <stdint.h> #include "logic/queue_cmd_ids.h" === modified file 'src/wui/interactive_player.cc' --- src/wui/interactive_player.cc 2014-05-27 11:01:15 +0000 +++ src/wui/interactive_player.cc 2014-05-28 13:43:10 +0000 @@ -155,10 +155,7 @@ } m_toolbar.add(&m_toggle_help, UI::Box::AlignLeft); - if (not scenario) - m_toggle_objectives.set_visible(false); - else - m_toolbar.add(&m_toggle_objectives, UI::Box::AlignLeft); + m_toolbar.add(&m_toggle_objectives, UI::Box::AlignLeft); m_toolbar.add(&m_toggle_message_menu, UI::Box::AlignLeft); set_player_number(plyn);
_______________________________________________ Mailing list: https://launchpad.net/~widelands-dev Post to : widelands-dev@lists.launchpad.net Unsubscribe : https://launchpad.net/~widelands-dev More help : https://help.launchpad.net/ListHelp