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

Proposed by GunChleoc
Status: Merged
Merged at revision: 7878
Proposed branch: lp:~widelands-dev/widelands/new_starting_conditions
Merge into: lp:widelands
Diff against target: 735 lines (+559/-5)
16 files modified
data/tribes/preload.lua (+3/-0)
data/tribes/scripting/starting_conditions/atlanteans/fortified_village.lua (+1/-0)
data/tribes/scripting/starting_conditions/atlanteans/headquarters.lua (+1/-0)
data/tribes/scripting/starting_conditions/atlanteans/trading_outpost.lua (+180/-0)
data/tribes/scripting/starting_conditions/barbarians/fortified_village.lua (+1/-0)
data/tribes/scripting/starting_conditions/barbarians/headquarters.lua (+1/-0)
data/tribes/scripting/starting_conditions/barbarians/trading_outpost.lua (+175/-0)
data/tribes/scripting/starting_conditions/empire/fortified_village.lua (+1/-0)
data/tribes/scripting/starting_conditions/empire/headquarters.lua (+1/-0)
data/tribes/scripting/starting_conditions/empire/trading_outpost.lua (+177/-0)
data/txts/developers.lua (+1/-1)
src/logic/map_objects/tribes/tribe_basic_info.cc (+3/-1)
src/logic/map_objects/tribes/tribe_basic_info.h (+4/-2)
src/network/netclient.cc (+3/-1)
src/wui/multiplayersetupgroup.cc (+2/-0)
src/wui/playerdescrgroup.cc (+5/-0)
To merge this branch: bzr merge lp:~widelands-dev/widelands/new_starting_conditions
Reviewer Review Type Date Requested Status
TiborB Approve
Review via email: mp+288059@code.launchpad.net

Commit message

New starting condition "Training Outpost" that will periodically give the player some wares if needed (cheat mode)

Description of the change

New starting condition "Training Outpost" that will periodically give the player some wares if needed (cheat mode)

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

@Gun, I believe that military sites are to be placed sooner (first after headquarters) because they immediately conquer new space (unless positioned too close to headquarters) and that can be useful for placing other buildings

Also more general question - It is probably not possible to find out from within the game, what starting mode are players using... Would be nice...

Otherwise - without testing it looks good

Revision history for this message
GunChleoc (gunchleoc) wrote :

> @Gun, I believe that military sites are to be placed sooner (first after
> headquarters) because they immediately conquer new space (unless positioned
> too close to headquarters) and that can be useful for placing other buildings

But they do get positioned right next to the headquarters, so the gain is very little - we would need to place a building that has a bigger conquer area than the headquarters for it to make any difference - that would be a castle/fortress, which needs a big building space. So, we won't gain that much.

I have now tested all official maps with Player 1 and there were no problems placing the buildings. So, I think we're in the clear here, and the players can profit from the additional territory.

> Also more general question - It is probably not possible to find out from
> within the game, what starting mode are players using... Would be nice...

Something for Build 20 maybe - open a new bug?

When you next have some time, it would be great if you could look at some of the merge requests that kaputtnik has already approved - some of them don't have much new code in them.

Revision history for this message
TiborB (tiborb95) wrote :

> But they do get positioned right next to the headquarters, so the gain is very little...

I mostly agree, some function to place them in bigger distance would be useful here

> When you next have some time, it would be great if you could look at some of the merge requests that kaputtnik has already approved

I wondered why there are approved branches sitting that long - I will have a look, of course....

Revision history for this message
GunChleoc (gunchleoc) wrote :

> > But they do get positioned right next to the headquarters, so the gain is
> very little...
>
> I mostly agree, some function to place them in bigger distance would be useful
> here

Since we're placing them last now, they get placed at the edge of the terrain, so there is some gain :)

> > When you next have some time, it would be great if you could look at some of
> the merge requests that kaputtnik has already approved
>
> I wondered why there are approved branches sitting that long - I will have a
> look, of course....

Thanks!

Revision history for this message
bunnybot (widelandsofficial) wrote :

Bunnybot encountered an error while working on this merge proposal:

Running 'git fetch bzr_origin' failed. Output:

fatal: mark :644715 not declared
fast-import: dumping crash report to .git/fast_import_crash_12704
fatal: Error while running fast-import
Traceback (most recent call last):
  File "/usr/local/bin/git-remote-bzr", line 1022, in <module>
    sys.exit(main(sys.argv))
  File "/usr/local/bin/git-remote-bzr", line 1006, in main
    do_import(parser)
  File "/usr/local/bin/git-remote-bzr", line 437, in do_import
    export_branch(repo, name)
  File "/usr/local/bin/git-remote-bzr", line 359, in export_branch
    modified_final = export_files(cur_tree, modified)
  File "/usr/local/bin/git-remote-bzr", line 277, in export_files
    print d
IOError: [Errno 32] Broken pipe

Revision history for this message
bunnybot (widelandsofficial) wrote :

Bunnybot encountered an error while working on this merge proposal:

Running 'git fetch bzr_origin' failed. Output:

fatal: 'bzr_origin' does not appear to be a git repository
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Revision history for this message
bunnybot (widelandsofficial) wrote :

Continuous integration builds have changed state:

Travis build 807. State: failed. Details: https://travis-ci.org/widelands/widelands/builds/114238578.
Appveyor build 652. State: success. Details: https://ci.appveyor.com/project/widelands-dev/widelands/build/_widelands_dev_widelands_new_starting_conditions-652.

Revision history for this message
bunnybot (widelandsofficial) wrote :

Continuous integration builds have changed state:

Travis build 812. State: errored. Details: https://travis-ci.org/widelands/widelands/builds/114584397.
Appveyor build 652. State: success. Details: https://ci.appveyor.com/project/widelands-dev/widelands/build/_widelands_dev_widelands_new_starting_conditions-652.

Revision history for this message
bunnybot (widelandsofficial) wrote :

Continuous integration builds have changed state:

Travis build 823. State: passed. Details: https://travis-ci.org/widelands/widelands/builds/114850046.
Appveyor build 652. State: success. Details: https://ci.appveyor.com/project/widelands-dev/widelands/build/_widelands_dev_widelands_new_starting_conditions-652.

Revision history for this message
TiborB (tiborb95) wrote :

Code LGTM

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

Thanks!

@bunnybot merge

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'data/tribes/preload.lua'
2--- data/tribes/preload.lua 2015-11-02 17:19:44 +0000
3+++ data/tribes/preload.lua 2016-03-09 17:17:50 +0000
4@@ -18,6 +18,7 @@
5 starting_conditions = {
6 dirname .. "scripting/starting_conditions/barbarians/headquarters.lua";
7 dirname .. "scripting/starting_conditions/barbarians/fortified_village.lua";
8+ dirname .. "scripting/starting_conditions/barbarians/trading_outpost.lua";
9 }
10 },
11
12@@ -33,6 +34,7 @@
13 starting_conditions = {
14 dirname .. "scripting/starting_conditions/empire/headquarters.lua";
15 dirname .. "scripting/starting_conditions/empire/fortified_village.lua";
16+ dirname .. "scripting/starting_conditions/empire/trading_outpost.lua";
17 }
18 },
19
20@@ -48,6 +50,7 @@
21 starting_conditions = {
22 dirname .. "scripting/starting_conditions/atlanteans/headquarters.lua";
23 dirname .. "scripting/starting_conditions/atlanteans/fortified_village.lua";
24+ dirname .. "scripting/starting_conditions/atlanteans/trading_outpost.lua";
25 }
26 }
27 }
28
29=== modified file 'data/tribes/scripting/starting_conditions/atlanteans/fortified_village.lua'
30--- data/tribes/scripting/starting_conditions/atlanteans/fortified_village.lua 2016-03-01 09:31:36 +0000
31+++ data/tribes/scripting/starting_conditions/atlanteans/fortified_village.lua 2016-03-09 17:17:50 +0000
32@@ -8,6 +8,7 @@
33
34 return {
35 descname = _ "Fortified Village",
36+ tooltip = _" Start the game with a fortified military installation",
37 func = function(plr, shared_in_start)
38
39 local sf = wl.Game().map.player_slots[plr.number].starting_field
40
41=== modified file 'data/tribes/scripting/starting_conditions/atlanteans/headquarters.lua'
42--- data/tribes/scripting/starting_conditions/atlanteans/headquarters.lua 2016-01-28 05:24:34 +0000
43+++ data/tribes/scripting/starting_conditions/atlanteans/headquarters.lua 2016-03-09 17:17:50 +0000
44@@ -8,6 +8,7 @@
45
46 init = {
47 descname = _ "Headquarters",
48+ tooltip = _"Start the game with your headquarters only",
49 func = function(plr, shared_in_start)
50
51 local sf = wl.Game().map.player_slots[plr.number].starting_field
52
53=== added file 'data/tribes/scripting/starting_conditions/atlanteans/trading_outpost.lua'
54--- data/tribes/scripting/starting_conditions/atlanteans/trading_outpost.lua 1970-01-01 00:00:00 +0000
55+++ data/tribes/scripting/starting_conditions/atlanteans/trading_outpost.lua 2016-03-09 17:17:50 +0000
56@@ -0,0 +1,180 @@
57+-- =======================================================================
58+-- Trading Outpost Starting Conditions for the Atlanteans
59+-- =======================================================================
60+
61+include "scripting/infrastructure.lua"
62+
63+set_textdomain("tribes")
64+
65+return {
66+ descname = _"Trading Outpost",
67+ tooltip = _"If this player runs low on important wares, they will be replenished for free",
68+ func = function(player, shared_in_start)
69+
70+ local sf = wl.Game().map.player_slots[player.number].starting_field
71+ if shared_in_start then
72+ sf = shared_in_start
73+ else
74+ player:allow_workers("all")
75+ end
76+
77+ prefilled_buildings(player, { "atlanteans_headquarters", sf.x, sf.y,
78+ wares = {
79+ diamond = 7,
80+ iron_ore = 5,
81+ quartz = 9,
82+ granite = 50,
83+ spider_silk = 9,
84+ log = 80,
85+ coal = 12,
86+ gold = 14,
87+ gold_thread = 6,
88+ iron = 8,
89+ planks = 45,
90+ spidercloth = 5,
91+ blackroot = 5,
92+ blackroot_flour = 12,
93+ atlanteans_bread = 8,
94+ corn = 5,
95+ cornmeal = 12,
96+ fish = 3,
97+ meat = 3,
98+ smoked_fish = 6,
99+ smoked_meat = 6,
100+ water = 12,
101+ bread_paddle = 2,
102+ buckets = 2,
103+ fire_tongs = 2,
104+ fishing_net = 4,
105+ hammer = 11,
106+ hunting_bow = 1,
107+ milking_tongs = 2,
108+ hook_pole = 2,
109+ pick = 8,
110+ saw = 9,
111+ scythe = 4,
112+ shovel = 9,
113+ tabard = 5,
114+ trident_light = 5,
115+ },
116+ workers = {
117+ atlanteans_armorsmith = 1,
118+ atlanteans_blackroot_farmer = 1,
119+ atlanteans_builder = 10,
120+ atlanteans_charcoal_burner = 1,
121+ atlanteans_carrier = 40,
122+ atlanteans_fishbreeder = 1,
123+ atlanteans_geologist = 4,
124+ atlanteans_miner = 4,
125+ atlanteans_sawyer = 1,
126+ atlanteans_stonecutter = 2,
127+ atlanteans_toolsmith = 2,
128+ atlanteans_weaponsmith = 1,
129+ atlanteans_woodcutter = 3,
130+ atlanteans_horse = 5,
131+ },
132+ -- Max health: 1, Max attack: 4, Max defense: 2, Max evade: 2
133+ soldiers = {
134+ [{0,0,0,0}] = 25,
135+ [{1,0,0,1}] = 5,
136+ [{1,1,0,0}] = 5,
137+ }
138+ })
139+
140+ place_building_in_region(player, "atlanteans_toolsmithy", sf:region(11), {
141+ wares = {
142+ iron = 6,
143+ log = 6,
144+ spidercloth = 4
145+ }
146+ })
147+
148+ place_building_in_region(player, "atlanteans_sawmill", sf:region(11), {
149+ wares = {
150+ log = 8
151+ }
152+ })
153+
154+ place_building_in_region(player, "atlanteans_hunters_house", sf:region(11), {
155+ wares = {}
156+ })
157+
158+ place_building_in_region(player, "atlanteans_tower", sf:region(13), {
159+ soldiers = {
160+ [{0,0,0,0}] = 1,
161+ },
162+ })
163+
164+ -- Get all warehouse types
165+ local plr = wl.Game().players[player.number]
166+ local warehouse_types = {}
167+ for i, building_name in ipairs(wl.Game():get_tribe_description(plr.tribe_name).buildings) do
168+ if (wl.Game():get_building_description(building_name).type_name == "warehouse") then
169+ table.insert(warehouse_types, building_name)
170+ end
171+ end
172+
173+ -- index of a warehouse we will add to. Used to 'rotate' warehouses
174+ local idx = 1
175+
176+ for i=1,100000 do
177+ sleep(300000)
178+
179+ -- collect all ~warehouses and pick one to insert the wares
180+ local warehouses = {}
181+ for i, building_name in ipairs(warehouse_types) do
182+ warehouses = array_combine(warehouses, plr:get_buildings(building_name))
183+ end
184+
185+ if #warehouses > 0 then
186+
187+ -- adding to a warehouse with index idx, if out of range, adding to wh 1
188+ if idx > #warehouses then
189+ idx = 1
190+ end
191+
192+ local wh = warehouses[idx]
193+ local added = 0
194+
195+ if wh:get_wares("water") < 100 then
196+ wh:set_wares("water", wh:get_wares("water") + 20)
197+ added = added + 1
198+ end
199+ if wh:get_wares("log") < 100 then
200+ wh:set_wares("log", wh:get_wares("log") + 20)
201+ added = added + 1
202+ end
203+ if wh:get_wares("granite") < 100 then
204+ wh:set_wares("granite", wh:get_wares("granite") + 10)
205+ added = added + 1
206+ end
207+ if wh:get_wares("coal") < 100 then
208+ wh:set_wares("coal", wh:get_wares("coal") + 5)
209+ added = added + 1
210+ end
211+ if wh:get_wares("iron_ore") < 100 then
212+ wh:set_wares("iron_ore", wh:get_wares("iron_ore") + 5)
213+ added = added + 1
214+ end
215+ if wh:get_wares("quartz") < 10 then
216+ wh:set_wares("quartz", wh:get_wares("quartz") + 1)
217+ added = added + 1
218+ end
219+ if wh:get_wares("meat") < 50 then
220+ wh:set_wares("meat", wh:get_wares("meat") + 1)
221+ added = added + 1
222+ end
223+ if wh:get_wares("gold") < 10 then
224+ wh:set_wares("gold", wh:get_wares("gold") + 1)
225+ added = added + 1
226+ end
227+
228+ if (added > 0) then
229+ print (player.number..": "..added.." types of ware added to warehouse "..idx.." of "..#warehouses.." (cheating mode)")
230+ end
231+
232+ idx = idx + 1
233+ end
234+ end
235+end
236+}
237
238=== modified file 'data/tribes/scripting/starting_conditions/barbarians/fortified_village.lua'
239--- data/tribes/scripting/starting_conditions/barbarians/fortified_village.lua 2016-03-01 09:31:36 +0000
240+++ data/tribes/scripting/starting_conditions/barbarians/fortified_village.lua 2016-03-09 17:17:50 +0000
241@@ -8,6 +8,7 @@
242
243 return {
244 descname = _ "Fortified Village",
245+ tooltip = _" Start the game with a fortified military installation",
246 func = function(plr, shared_in_start)
247
248 local sf = wl.Game().map.player_slots[plr.number].starting_field
249
250=== modified file 'data/tribes/scripting/starting_conditions/barbarians/headquarters.lua'
251--- data/tribes/scripting/starting_conditions/barbarians/headquarters.lua 2016-01-28 05:24:34 +0000
252+++ data/tribes/scripting/starting_conditions/barbarians/headquarters.lua 2016-03-09 17:17:50 +0000
253@@ -8,6 +8,7 @@
254
255 init = {
256 descname = _ "Headquarters",
257+ tooltip = _"Start the game with your headquarters only",
258 func = function(player, shared_in_start)
259
260 local sf = wl.Game().map.player_slots[player.number].starting_field
261
262=== added file 'data/tribes/scripting/starting_conditions/barbarians/trading_outpost.lua'
263--- data/tribes/scripting/starting_conditions/barbarians/trading_outpost.lua 1970-01-01 00:00:00 +0000
264+++ data/tribes/scripting/starting_conditions/barbarians/trading_outpost.lua 2016-03-09 17:17:50 +0000
265@@ -0,0 +1,175 @@
266+-- =======================================================================
267+-- Trading Outpost Starting Conditions for the Barbarians
268+-- =======================================================================
269+
270+include "scripting/infrastructure.lua"
271+
272+set_textdomain("tribes")
273+
274+return {
275+ descname = _"Trading Outpost",
276+ tooltip = _"If this player runs low on important wares, they will be replenished for free",
277+ func = function(player, shared_in_start)
278+
279+ local sf = wl.Game().map.player_slots[player.number].starting_field
280+ if shared_in_start then
281+ sf = shared_in_start
282+ else
283+ player:allow_workers("all")
284+ end
285+
286+ hq = prefilled_buildings(player, { "barbarians_headquarters", sf.x, sf.y,
287+ wares = {
288+ ax = 5,
289+ bread_paddle = 2,
290+ blackwood = 32,
291+ cloth = 5,
292+ coal = 12,
293+ felling_ax = 4,
294+ fire_tongs = 2,
295+ fish = 6,
296+ fishing_rod = 2,
297+ gold = 14,
298+ grout = 12,
299+ hammer = 12,
300+ hunting_spear = 2,
301+ iron = 12,
302+ iron_ore = 5,
303+ kitchen_tools = 4,
304+ meal = 4,
305+ meat = 6,
306+ pick = 8,
307+ barbarians_bread = 8,
308+ ration = 12,
309+ granite = 40,
310+ scythe = 6,
311+ shovel = 4,
312+ snack = 3,
313+ thatch_reed = 24,
314+ log = 80,
315+ },
316+ workers = {
317+ barbarians_blacksmith = 2,
318+ barbarians_blacksmith_master = 1,
319+ barbarians_brewer = 1,
320+ barbarians_brewer_master = 1,
321+ barbarians_builder = 10,
322+ barbarians_charcoal_burner = 1,
323+ barbarians_carrier = 40,
324+ barbarians_gardener = 1,
325+ barbarians_geologist = 4,
326+ barbarians_lime_burner = 1,
327+ barbarians_lumberjack = 3,
328+ barbarians_miner = 4,
329+ barbarians_ranger = 1,
330+ barbarians_stonemason = 2,
331+ barbarians_ox = 5,
332+ },
333+ -- Max health: 3, Max attack: 5, Max defense: 0, Max evade: 2
334+ soldiers = {
335+ [{0,0,0,0}] = 35,
336+ [{1,0,0,1}] = 5,
337+ [{1,1,0,0}] = 5,
338+ }
339+ })
340+
341+ place_building_in_region(player, "barbarians_metal_workshop", sf:region(11), {
342+ wares = {
343+ iron = 8,
344+ log = 8
345+ }
346+ })
347+
348+ place_building_in_region(player, "barbarians_wood_hardener", sf:region(11), {
349+ wares = {
350+ log = 8
351+ }
352+ })
353+
354+ place_building_in_region(player, "barbarians_hunters_hut", sf:region(11), {
355+ wares = {}
356+ })
357+
358+ place_building_in_region(player, "barbarians_tower", sf:region(13), {
359+ soldiers = {
360+ [{0,0,0,0}] = 1,
361+ },
362+ })
363+
364+ -- Get all warehouse types
365+ local plr = wl.Game().players[player.number]
366+ local warehouse_types = {}
367+ for i, building_name in ipairs(wl.Game():get_tribe_description(plr.tribe_name).buildings) do
368+ if (wl.Game():get_building_description(building_name).type_name == "warehouse") then
369+ table.insert(warehouse_types, building_name)
370+ end
371+ end
372+
373+ -- index of a warehouse we will add to. Used to 'rotate' warehouses
374+ local idx = 1
375+
376+ for i=1,100000 do
377+ sleep(300000)
378+
379+ -- collect all ~warehouses and pick one to insert the wares
380+ local warehouses = {}
381+ for i, building_name in ipairs(warehouse_types) do
382+ warehouses = array_combine(warehouses, plr:get_buildings(building_name))
383+ end
384+
385+ if #warehouses > 0 then
386+
387+ -- adding to a warehouse with index idx, if out of range, adding to wh 1
388+ if idx > #warehouses then
389+ idx = 1
390+ end
391+
392+ local wh = warehouses[idx]
393+ local added = 0
394+
395+ if plr:get_wares("water") < 40 + #warehouses * 10 then
396+ wh:set_wares("water", wh:get_wares("water") + 20 + #warehouses * 2)
397+ added = added + 1
398+ end
399+ if plr:get_wares("log") < 40 + #warehouses * 10 then
400+ wh:set_wares("log", wh:get_wares("log") + 20)
401+ added = added + 1
402+ end
403+ if plr:get_wares("granite") < 30 + #warehouses * 10 then
404+ wh:set_wares("granite", wh:get_wares("granite") + 10 + #warehouses * 2)
405+ added = added + 1
406+ end
407+ if plr:get_wares("coal") < 70 + #warehouses * 10 then
408+ wh:set_wares("coal", wh:get_wares("coal") + 25 + #warehouses * 5)
409+ added = added + 1
410+ end
411+ if plr:get_wares("iron_ore") < 30 + #warehouses * 10 then
412+ wh:set_wares("iron_ore", wh:get_wares("iron_ore") + 10 + #warehouses * 2)
413+ added = added + 1
414+ end
415+ if wh:get_wares("fish") < 40 + #warehouses * 5 then
416+ wh:set_wares("fish", wh:get_wares("fish") + 10)
417+ added = added + 1
418+ end
419+ if plr:get_wares("gold") < 20 + #warehouses * 5 then
420+ wh:set_wares("gold", wh:get_wares("gold") + 3)
421+ added = added + 1
422+ end
423+ if plr:get_wares("wheat") < 60 + #warehouses * 10 then
424+ wh:set_wares("wheat", wh:get_wares("wheat") + 15 + #warehouses * 2)
425+ added = added + 1
426+ end
427+ if plr:get_wares("barbarians_bread") < 40 + #warehouses * 5 then
428+ wh:set_wares("barbarians_bread", wh:get_wares("barbarians_bread") + 8 + #warehouses * 2)
429+ added = added + 1
430+ end
431+
432+ if (added > 0) then
433+ print (player.number..": "..added.." types of ware added to warehouse "..idx.." of "..#warehouses.." (cheating mode)")
434+ end
435+
436+ idx = idx + 1
437+ end
438+ end
439+end
440+}
441
442=== modified file 'data/tribes/scripting/starting_conditions/empire/fortified_village.lua'
443--- data/tribes/scripting/starting_conditions/empire/fortified_village.lua 2016-03-01 09:31:36 +0000
444+++ data/tribes/scripting/starting_conditions/empire/fortified_village.lua 2016-03-09 17:17:50 +0000
445@@ -8,6 +8,7 @@
446
447 return {
448 descname = _ "Fortified Village",
449+ tooltip = _" Start the game with a fortified military installation",
450 func = function(plr, shared_in_start)
451
452 local sf = wl.Game().map.player_slots[plr.number].starting_field
453
454=== modified file 'data/tribes/scripting/starting_conditions/empire/headquarters.lua'
455--- data/tribes/scripting/starting_conditions/empire/headquarters.lua 2016-01-28 05:24:34 +0000
456+++ data/tribes/scripting/starting_conditions/empire/headquarters.lua 2016-03-09 17:17:50 +0000
457@@ -8,6 +8,7 @@
458
459 return {
460 descname = _ "Headquarters",
461+ tooltip = _"Start the game with your headquarters only",
462 func = function(p, shared_in_start)
463
464 local sf = wl.Game().map.player_slots[p.number].starting_field
465
466=== added file 'data/tribes/scripting/starting_conditions/empire/trading_outpost.lua'
467--- data/tribes/scripting/starting_conditions/empire/trading_outpost.lua 1970-01-01 00:00:00 +0000
468+++ data/tribes/scripting/starting_conditions/empire/trading_outpost.lua 2016-03-09 17:17:50 +0000
469@@ -0,0 +1,177 @@
470+-- =======================================================================
471+-- Trading Outpost Starting Conditions for the Empire
472+-- =======================================================================
473+
474+include "scripting/infrastructure.lua"
475+
476+set_textdomain("tribes")
477+
478+return {
479+ descname = _"Trading Outpost",
480+ tooltip = _"If this player runs low on important wares, they will be replenished for free",
481+ func = function(player, shared_in_start)
482+
483+ local sf = wl.Game().map.player_slots[player.number].starting_field
484+
485+ if shared_in_start then
486+ sf = shared_in_start
487+ else
488+ player:allow_workers("all")
489+ end
490+
491+ prefilled_buildings(player, { "empire_headquarters", sf.x, sf.y,
492+ wares = {
493+ armor_helmet = 4,
494+ spear_wooden = 5,
495+ felling_ax = 6,
496+ bread_paddle = 2,
497+ basket = 2,
498+ empire_bread = 8,
499+ cloth = 5,
500+ coal = 12,
501+ fire_tongs = 2,
502+ fish = 6,
503+ fishing_rod = 2,
504+ flour = 4,
505+ gold = 14,
506+ grape = 4,
507+ hammer = 14,
508+ hunting_spear = 2,
509+ iron = 12,
510+ iron_ore = 5,
511+ kitchen_tools = 4,
512+ marble = 25,
513+ marble_column = 6,
514+ meal = 4,
515+ meat = 6,
516+ pick = 8,
517+ ration = 12,
518+ saw = 2,
519+ scythe = 5,
520+ shovel = 6,
521+ granite = 40,
522+ log = 80,
523+ water = 12,
524+ wheat = 4,
525+ wine = 8,
526+ planks = 45,
527+ wool = 2,
528+ },
529+ workers = {
530+ empire_armorsmith = 1,
531+ empire_brewer = 1,
532+ empire_builder = 10,
533+ empire_carrier = 40,
534+ empire_charcoal_burner = 1,
535+ empire_geologist = 4,
536+ empire_lumberjack = 3,
537+ empire_miner = 4,
538+ empire_stonemason = 2,
539+ empire_toolsmith = 2,
540+ empire_weaponsmith = 1,
541+ empire_donkey = 5,
542+ },
543+ -- Max health: 4, Max attack: 4, Max defense: 0, Max evade: 2
544+ soldiers = {
545+ [{0,0,0,0}] = 35,
546+ [{1,0,0,1}] = 5,
547+ [{1,1,0,0}] = 5,
548+ }
549+ })
550+
551+ place_building_in_region(player, "empire_toolsmithy", sf:region(11), {
552+ wares = {
553+ iron = 8,
554+ log = 8
555+ }
556+ })
557+
558+ place_building_in_region(player, "empire_sawmill", sf:region(11), {
559+ wares = {
560+ log = 8
561+ }
562+ })
563+
564+ place_building_in_region(player, "empire_hunters_house", sf:region(11), {
565+ wares = {}
566+ })
567+
568+ place_building_in_region(player, "empire_tower", sf:region(13), {
569+ soldiers = {
570+ [{0,0,0,0}] = 1,
571+ },
572+ })
573+
574+ -- Get all warehouse types
575+ local plr = wl.Game().players[player.number]
576+ local warehouse_types = {}
577+ for i, building_name in ipairs(wl.Game():get_tribe_description(plr.tribe_name).buildings) do
578+ if (wl.Game():get_building_description(building_name).type_name == "warehouse") then
579+ table.insert(warehouse_types, building_name)
580+ end
581+ end
582+
583+ -- index of a warehouse we will add to. Used to 'rotate' warehouses
584+ local idx = 1
585+
586+ for i=1,100000 do
587+ sleep(300000)
588+
589+ -- collect all ~warehouses and pick one to insert the wares
590+ local warehouses = {}
591+ for i, building_name in ipairs(warehouse_types) do
592+ warehouses = array_combine(warehouses, plr:get_buildings(building_name))
593+ end
594+
595+ if #warehouses > 0 then
596+
597+ -- adding to a warehouse with index idx, if out of range, adding to wh 1
598+ if idx > #warehouses then
599+ idx = 1
600+ end
601+
602+ local wh = warehouses[idx]
603+ local added = 0
604+
605+ if wh:get_wares("water") < 100 then
606+ wh:set_wares("water", wh:get_wares("water") + 20)
607+ end
608+ if wh:get_wares("log") < 100 then
609+ wh:set_wares("log", wh:get_wares("log") + 10)
610+ end
611+ if wh:get_wares("granite") < 100 then
612+ wh:set_wares("granite", wh:get_wares("granite") + 5 + #warehouses)
613+ end
614+ if wh:get_wares("coal") < 100 then
615+ wh:set_wares("coal", wh:get_wares("coal") + 5)
616+ end
617+ if wh:get_wares("iron_ore") < 100 then
618+ wh:set_wares("iron_ore", wh:get_wares("iron_ore") + 5)
619+ end
620+ if wh:get_wares("marble") < 100 then
621+ wh:set_wares("marble", wh:get_wares("marble") + 5)
622+ end
623+ if wh:get_wares("fish") < 50 then
624+ wh:set_wares("fish", wh:get_wares("fish") + 1)
625+ end
626+ if wh:get_wares("gold") < 50 then
627+ wh:set_wares("gold", wh:get_wares("gold") + 1)
628+ end
629+ if plr:get_wares("wheat") < 60 + #warehouses * 10 then
630+ wh:set_wares("wheat", wh:get_wares("wheat") + 10 + #warehouses * 2)
631+ added = added + 1
632+ end
633+ if plr:get_wares("flour") < 30 + #warehouses * 10 then
634+ wh:set_wares("flour", wh:get_wares("flour") + #warehouses * 5)
635+ added = added + 1
636+ end
637+
638+ if (added > 0) then
639+ print (player.number..": "..added.." types of ware added to warehouse "..idx.." of "..#warehouses.." (cheating mode)")
640+ end
641+
642+ idx = idx + 1
643+ end
644+ end
645+end
646+}
647
648=== modified file 'data/txts/developers.lua'
649--- data/txts/developers.lua 2016-02-16 09:25:18 +0000
650+++ data/txts/developers.lua 2016-03-09 17:17:50 +0000
651@@ -1,3 +1,3 @@
652 -- Do not edit this file - it is automatically generated
653 -- by utils/update_authors.py from developers.json.
654-function developers() return {{heading = _"Chieftain",image = "images/players/genstats_enable_plr_01.png",entries = {{members = {"Holger Rapp (SirVer)",},},},},{heading = _"Elders",image = "images/players/genstats_enable_plr_04.png",entries = {{subheading = _"Graphics",members = {"Chuck Wilder (chuckw)",},},{subheading = _"Homepage",members = {"Markus Pfitzner (janus)",},},{subheading = _"Sound",members = {"Jan Bruns (solatis)",},},{subheading = _"Tongues",members = {"GunChleoc",},},},},{heading = _"Coders",image = "images/wui/stats/genstats_nrwares.png",entries = {{members = {"Holger Rapp (SirVer)","Nicolai Hähnle (ixprefect)","Florian Bluemel","Florian Falkner (foldrian)","Florian Weber (Bedouin)","Philipp Engelhard","Stefan Boettner","Tron","Martin Quinson","Raul Ferriz","Willem Jan Palenstijn","Josef Spillner","Christof Petig","Erik Sigra (sigra)","Nanne Wams","Surgery","Andrius R. (knutux)","Jari Hautio (jarih)","Peter Schwanemann (Nasenbaer)","Victor Pelt (Dwarik)","Axel Gehlert (dunkelbrauer)","András Eisenberger (Kiscsirke)","Andi","Timo","Hannes","TimoW","Jens Beyer (Qcumber-some)","Andreas Breitschopp (ab-tools)","Joachim Breitner (nomeata)","Nizamov Shawkat","Carl-Philip Hänsch (carli)","Martin Prussak (martin)","David Allwicher (aber)","Nathan Peters (nathanpeters)","Leif Sandstede (lcsand)","Matthias Horne (shevonar)","Borim (borim)","Angelo Locritani (alocritani)","Gabriel Margiani (gamag)","Anthony J. Bentley (anthonyjbentley)","Peter Waller (iri)","Johannes Ebke (sirius-in4matiker)","Andreas Eriksson","Mark Scott","Teppo Mäenpää","Steven De Herdt","Charly Ghislain (cghislai)","Tino Miegel (TinoM)","Tibor Bamhor (tiborb95)","GunChleoc","Ferdinand Thiessen (f-thiessen)","Willy Scheibel (willyscheibel)","Martin Schmidt (mars)","Simon Eilting","Alexander Kartzow (daAlx1)","Łukasz Majcher","Paul Mehrer (meitis)","Miroslav Remák (MiroslavR)","Janosch Peters",},},},},{heading = _"Graphicians",image = "images/wui/stats/genstats_nrbuildings.png",entries = {{members = {"Albert Jasiowka","Holger Rapp (SirVer)","Marz","Philipp Engelhard","Yannick Warnier","Delia","Florian Neuerburg","Jerome Rosinski","Mats Olsson","Odin Omdal","Wolfgang Weidner","Andreas Baier","Juri Chomé","Toralf Bethke (bithunter32)","Peter Schwanemann (Nasenbaer)","Alexia Death","Repsa Jih","Geoffroy Schmitlin (Trimard)","Benedikt Freisen (Objpaswriter)","Stefano Guidoni (Ilguido)","Samith Sandanayake (samithdisal)","Chuck Wilder (chuckw)","Astuur","Gerrit Familiegrosskopf (kingcreole)","Florian Angermeier (fraang)",},},},},{heading = _"Musicians",image = "images/wui/overlays/workarea123.png",entries = {{members = {"Kristian","MiddleFinger","Valerio Orlandini (Symbiosis)","Barry van Oudtshoorn (barryvan)","Jan Bruns (Solatis)","Nikola Whallon (Saturn)","Joshua O'Leary (Joshun)",},},},},{heading = _"Sound Effects",image = "images/wui/overlays/workarea123.png",entries = {{members = {"Stefan de Konik","Peter Schwanemann (Nasenbaer)","Stephan","Adam Piggott (_aD)","Stanisław Gackowski (Soeb)",},},},},{heading = _"Maps and Missions",image = "images/wui/stats/genstats_landsize.png",entries = {{members = {"Michal Szopa (Winterwind)","Jan-Henrik Kluth (Isch)","Peter Schwanemann (Nasenbaer)","Sven (deviant)","Tuxlands","Kamil Wilczek (Another Barbarian)","Tarvo Reim (Tarrei)","Manuel Holzmeier (Quappo)","ivh","Hanna Podewski (kristin)","Teppo Mäenpää","fk","Einstein13","Jenia","Robnick","wl-zocker",},},},},{heading = _"Campaign Story",image = "images/ui_basic/ls_wlmap.png",entries = {{subheading = _"Barbarian",members = {"Bastian Rapp","Alexander Kahl (wolfpac)","Peter Schwanemann (Nasenbaer)",},},{subheading = _"Empire",members = {"Peter Schwanemann (Nasenbaer)",},},{subheading = _"Atlantean",members = {"Holger Rapp (SirVer)","Peter Schwanemann (Nasenbaer)",},},},},{heading = _"Translators",image = "images/wui/editor/fsel_editor_set_height.png",entries = {{subheading = "العربية (Arabic)",members = {"abdXelrhman","m-abudrais","someone",},},{subheading = "Asturianu (Asturian)",members = {"Xuacu Saturio",},},{subheading = "Български (Bulgarian)",members = {"А. Ташев","Любомир Василев",},},{subheading = "Català (Catalan)",members = {"Guybrush88","Joan Josep","Oriol",},},{subheading = "Čeština (Czech)",members = {"Adam Matoušek","David Spanel","Jens Beyer","Jezevec","Jiří Locker","Konki","Marek Donar (Markus7cz)","Martin Volf","Martin Vecera (Marvec)","MaSo_CZ","Matej Svrcek (prometheus)","Milan Fašina","prom","Vit Hrachovy","Zbyněk Schwarz",},},{subheading = "Dansk (Danish)",members = {"Ask Hjorth Larsen","beer","Daniel Ejsing-Duun","David Lamhauge","Erik Soe Sorensen","Esben Aaberg","hulagutten","Joe Hansen (joedalton)","larsch","Nikolaj Sejergaard","silentStatic","Simon Stubben","Ville Witt",},},{subheading = "Deutsch (German)",members = {"Andreas Breitschopp","Astuur","Benedikt Tröster","Bob Johns","Borim","Clemens Dinkel","Daniel Kutrowatz","Daniel Winzen","Das MC","David Allwicher","DelphiMarkus","Dirk Stöcker","Fenris Wolf","Ferdinand T.","FetteNase","Flames_in_Paradise","fraang","Frank Kubitschek","Gabriel Margiani","Hagen","Hanna Podewski (kristin)","herbert","hurz","Johannes (nuefke)","Johannes Haupt","Kaste","Klappstuhl","Koneu","kraileth","LAZA","LennStar","Macedon","Marc Wischnowsky","Markus Pfitzner (janus)","Martin","Matthias Krüger","Max","meru","Mirian Margiani","MirkoWodtke","Mister Pi","Mr. Anderson","Ole","Peter Schwanemann (Nasenbaer)","Philipp Niemann (Azagtoth)","Provetin","Ralf-J. Block","raymond","ronny","Shevonar","SirVer","Sonnrain","Thomas","Tim O.","Timowi","Tino Miegel (TinoM)","Tobias Margiani","Venatrix","wl-zocker","Wolfgang Kurz","Wolfs","Wuzzy",},},{subheading = "Ελληνικά (Greek)",members = {"ptr","Γιάννης Ανθυμίδης",},},{subheading = "Canadian English",members = {"Ne-1",},},{subheading = "British English",members = {"_aD","Alex Denvir","Andi Chandler","Anthony Harrington","Biffaboy","Heber","Jackson Doak","James Thorrold","Jon Senior","LiSrt","Luis Miguel D.P.","mrx5682","Terry Jones","Tinker","UndiFineD","Vladimir Oka",},},{subheading = "US American English",members = {"DragonAtma",},},{subheading = "Esperanto",members = {"alms21","Fenris Wolf","Ivan Camilo Quintero Santacruz","Jens Beyer","Kristjan SCHMIDT","LaPingvino","Manuel Berkemeier","Michael Moroni",},},{subheading = "Español (Spanish)",members = {"Adolfo Jayme","Agustín Vela","Alberto D.V.","Alejandro Pérez","Antonio Trueba (Fasser)","David Mitos","David Pérez","DiegoJ","Dishito","Eduardo Alberto Calvo","Gerardb","ironfisher","Ivan","Ivan Camilo Quintero Santacruz","Javi Sol","Jonay","Joseph Molina","JoseRoberto","Juan Eduardo Riva","Kiibakun","Luis Miguel D.P.","MadkaT","Martín V.","Miguel adre","Miguel de Dios","Monkey","Pablo Frigerio","Paco Molinero","Paulomorales","pescamillam","Rafael Augusto Maguiña Yrivarren","Rafael Medina","Raul Ferriz","Roberto López","schimmm","simon","Siz","WalterCool","zer berros",},},{subheading = "Eesti keel (Estonian)",members = {"gert7","rm87",},},{subheading = "Euskara (Basque)",members = {"Mikel Alzibar",},},{subheading = "فارسی (Persian)",members = {"katy Zahedi",},},{subheading = "Suomi (Finnish)",members = {"Jari Hautio","Juhani Numminen","Markus Hällfors","Pekka Järvinen (Raspi)","Sampo Harjula","Sini Ruohomaa (Byakushin)","Teppo Mäenpää","Tommi Nirha","Vazde",},},{subheading = "Français (French)",members = {"AGuechoum","AnubiS","Audiger Jeremy","Aurelien Pavel","Benjamin Subtil","Bertram","bouchard renaud","Bruno Veilleux","clark17","crep4ever","David .","El Pensador","Eliovir","Emmanuel Andry (Eandry)","fk","François Rousselet","Gilles Aubert","Guillaume Brant","Guybrush88","Immunoman","Jean-Pierre Gemble","Hanna Podewski (kristin)","londumas","Michael Colignon","Michael DOUBEZ","Mohamed SEDKI","NonoSan","Pierre Rudloff","Sébastien Duthil","Sevy Ride","Tarou","Thomas Jungers","tomtom","Tubuntu","Ubuntu1988","verdy_p","wl-zocker","YS1","Yves MATHIEU",},},{subheading = "Gàidhlig (Scottish Gaelic)",members = {"GunChleoc",},},{subheading = "Galego (Galician)",members = {"Adrián Chaves Fernández","Antonio Trueba (Fasser)","Xosé",},},{subheading = "עברית (Hebrew)",members = {"Danny Albocher","Liel Fridman","Michael DOUBEZ","Solomon Gruber (Piql7)","Yaron",},},{subheading = "हिन्दी (Hindi)",members = {"girdhari rao",},},{subheading = "Hrvatski (Croatian)",members = {"Mario Dautović",},},{subheading = "Magyar (Hungarian)",members = {"cn4ij","Dániel Varga (EuroF)","Ferenc Nagy","Gyönki Bendegúz","HUNStree","István Kiss","jzombi","Kiscsirke","Major Gabesz","Muszela Balázs","Papp Bence","Richard Somlói","Robert Roth","SanskritFritz","Szűcs Kornél Géza",},},{subheading = "Interlingua",members = {"alms21",},},{subheading = "Bahasa Indonesia (Indonesian)",members = {"dadanhrn",},},{subheading = "Italiano (Italian)",members = {"Angelo Locritani","Colin Gibson","DarkSaivor","Davidus","Dom De Felice","Doukas7","Eulogy","Gabriel Rota","Guybrush88","ido","Loris Turchetti","Oibaf","Pierpaolo Pierozzi","pierusch","Pietro Battiston","Roberto Sciascia","Sergio Spinatelli","sgargel","simone.sandri",},},{subheading = "日本語 (Japanese)",members = {"alms21","Dios","guess880","Midori","SevyRide","tubame",},},{subheading = "Basa jawa (Javanese)",members = {"zaenal arifin",},},{subheading = "ქართული (Georgian)",members = {"Gabriel Margiani","Meyer Konrad",},},{subheading = "한국어 (Korean)",members = {"ddfddf2k",},},{subheading = "Lingua latīna (Latin)",members = {"alms21","lopho","Sonnrain","Stephan Lenk","Thorsten",},},{subheading = "Lietuvių (Lithuanian)",members = {"Mantas Kriaučiūnas",},},{subheading = "मराठी (Marathi)",members = {"Amod Ajit Karmarkar",},},{subheading = "بهاس ملايو (Malay)",members = {"abuyop",},},{subheading = "မြန်မာစ (Burmese)",members = {"pyaehtetaung",},},{subheading = "Norsk (Bokmål) (Norwegian Bokmål)",members = {"Fredrik Sudmann","Hans Joachim Desserud","Magnus Meyer Hustveit","Martin Dahl Moe","mr.x","Thorbjørn Bruarøy",},},{subheading = "Plattdütsch (Low German)",members = {"Mister Pi ","Nasenbaer ","Ole ","tando",},},{subheading = "Nederlands (Dutch)",members = {"BenW","Christian Groenendijk","Dirk Schut","fireprog","fk","Foppe Benedictus","Johan Jonkman (Dikjuh)","Maasieboy","Marcel","megabyte","Patrick van der Leer","Pieter Ouwerkerk (Pietertje)","Pietertje","PliniusNeo","REAL NAME","RickvanderZwet","Rob Snelders (Ertai)","Teun Spaans","Victor Pelt","Wim Champagne",},},{subheading = "Nynorsk (Norwegian Nynorsk)",members = {"Alexander Mackinnon Jansen","Hans Joachim Desserud","Odin Hørthe Omdal","Thorbjørn Bruarøy",},},{subheading = "Occitan",members = {"Cédric VALMARY (Tot en òc)",},},{subheading = "Polski (Polish)",members = {"Andrzej Krentosz (Endrju)","Asahi Koishi","BartekChom","Bartosz Wiśniewski","Gabriel Fortin","Hubert Pluta","Jakub Rak (einstein13)","Januzi (januzi)","Jacek Wolszczak (Shutdownrunner)","Jens Beyer","Karol Sobolewski","Łukasz Chełmicki","Mateusz Micał","Michal Maslanko","Michał Rzepiński","orzeh","Patryk Sawicki","Pawel PErz","Stanisław Gackowski (Soeb)","Szymon Fornal","Szymon Gackowski","Szymon Nieznański","tim","Tomasz Sterna","Wesmania","Wojtek","XeonBloomfield",},},{subheading = "Português (Portuguese)",members = {"Almufadado","daniel reis","David Rodrigues","Flávio J. Saraiva","GunChleoc","Marcelo do Pagode","Miguel de Freitas Fonseca","Tiago Silva","trewe",},},{subheading = "Português do Brasil (Brazilian Portuguese)",members = {"Alexandre","alms21","Almufadado","Cleverton","daniel reis","Fabio Garz","Flaviano Angeli","HicHic","Hriostat","Israel","JoãoPedro BrasãoToledo","Juarez S.","Júlio Cezar Santos Pires","Juno","Luiz N","Maraschin","Marcelo do Pagode","Nicolas Abril","Pedro Pisandelli","Proezas","Rafael Neri","Rayback","Rubens Bueno","Samer Ghosnlas.2932","Tomas Abril","Vitor",},},{subheading = "Română (Romanian)",members = {"Ursachi Alexandru",},},{subheading = "Русский (Russian)",members = {"Александр","Александр Бикмеев (Rombal)","Александр Глухов","Алексей Кабанов","Андрей Кулаков ","Андрей Олыкайнен ","Антон Хабаров (lu)","Виктор Биркманис","Владимир Коваленко","Глеб Синковский","Глория Хрусталёва","Денис Дерябин","Егор Панфилов","Константин Щукин","Никита Шехов","Руслан Ковтун","Сергей Фуканчик ","Юрий Соколов (Urra)","CupIvan","Georgiy","gerich","Izon","KroArtem","Lex","Massol","Papazu","SashaQR","TroubleMakerDV","Vampire Hunter D","Vlad",},},{subheading = "Kinyarwanda",members = {"Nasenbaer",},},{subheading = "සිංහල (Sinhala)",members = {"Samith Sandanayake",},},{subheading = "Slovenčina (Slovak)",members = {"Kefir111","Marek Hám","Miroslav Remák","Vladimir","Vladímir Tóth (Ike)",},},{subheading = "Slovenski jezik (Slovenian)",members = {"Andrej Znidarsic","Boštjan Miklavčič","Jure Repinc","kleb","Klemen Košir","Matevž Jekovec","Matic Gradišer","mrt",},},{subheading = "српски (Serbian)",members = {"Никола Павловић",},},{subheading = "Svenska (Swedish)",members = {"Arve Eriksson","Christian Widell","Daniel Nylander (yeager)","Frederik Pettersson (luno)","ivh","Joakim Lundborg","karlrune","Marcus E","Michael Rydén","Patrick H.","Phoenix","Rasmus Olstedt","RasmusBackman","Sigra","Treecko","Tumaini","Ulite",},},{subheading = "Türkçe (Turkish)",members = {"Asiye","Ekrem Kocadere","Ercin Senturk","Recep Hasanbaş","ScriptMonster","Volkan Gezer",},},{subheading = "українська мова (Ukranian)",members = {"Fedik","Shemet Yevhene","Сергій Дубик",},},{subheading = "Tiếng Việt (Vietnamese)",members = {"Nguyen Quang Chien",},},{subheading = "简体中文 (Simplified Chinese)",members = {"luojie-dune","XIA",},},{subheading = "繁體中文 (Traditional Chinese)",members = {"AJ","poormusic","sonny",},},},},{heading = _"Packagers",image = "images/wui/stats/genstats_productivity.png",entries = {{subheading = _"Debian Linux",members = {"Martin Quinson",},},{subheading = _"Fedora Linux",members = {"Karol Trzcionka","Jochen Wiedmann",},},{subheading = _"Mandriva Linux",members = {"Emmanuel Andry (eandry)",},},{subheading = _"FreeBSD",members = {"Bartosz Fabianowski",},},{subheading = _"Mac OS X",members = {"Philipp Engelhard","Pierre Salagnac (Tarou)","Wolf St. Kappesser","David Allwicher (aber)",},},{subheading = _"Windows",members = {"Tino Miegel (TinoM)","Alexander Kahl (Wolfpac)","Geodomus","Jari Hautio",},},{subheading = _"ZetaOS",members = {"BeSman",},},},},{heading = _"Homepage",image = "images/logos/WL-Editor-16.png",entries = {{subheading = _"Homepage Coders",members = {"Holger Rapp (SirVer)","Stanislaw Gackowski (Soeb)","Markus Pfitzner (janus)","Tobi",},},{subheading = _"Documentation, Help and Wiki",members = {"Erik Sigra (sigra)","Florian Falkner (foldrian)","Florian Weber (bedouin)","Nicolai Haehnle","Holger Rapp (SirVer)","Johannes (nuefke)","Alexander Kahl (wolfpac)","Stanislaw Gackowski (Soeb)","Hanna Podewski (kristin)",},},},},{heading = _"Former Elders",image = "images/players/genstats_enable_plr_04.png",entries = {{subheading = _"Graphics",members = {"Salamander","Alexia Death (death)",},},{subheading = _"Homepage",members = {"holymoly","Stuart Eglington (DaaL1973)","Jon Harris (jonsjava)",},},{subheading = _"Sound",members = {"Yannick Warnier",},},{subheading = _"Translation",members = {"Peter Schwanemann (Nasenbaer)","Philipp Niemann (Azagtoth)",},},},},{heading = _"Other",image = "images/wui/stats/genstats_landsize.png",entries = {{members = {"Matt Howe (mdhowe)","Samuel Tilly (eldamar)","and many, many more (thank you for everything you've done)",},},},},} end
655\ No newline at end of file
656+function developers() return {{heading = _"Chieftain",image = "images/players/genstats_enable_plr_01.png",entries = {{members = {"Holger Rapp (SirVer)",},},},},{heading = _"Elders",image = "images/players/genstats_enable_plr_04.png",entries = {{subheading = _"Graphics",members = {"Chuck Wilder (chuckw)",},},{subheading = _"Homepage",members = {"Markus Pfitzner (janus)",},},{subheading = _"Sound",members = {"Jan Bruns (solatis)",},},{subheading = _"Tongues",members = {"GunChleoc",},},},},{heading = _"Coders",image = "images/wui/stats/genstats_nrwares.png",entries = {{members = {"Holger Rapp (SirVer)","Nicolai Hähnle (ixprefect)","Florian Bluemel","Florian Falkner (foldrian)","Florian Weber (Bedouin)","Philipp Engelhard","Stefan Boettner","Tron","Martin Quinson","Raul Ferriz","Willem Jan Palenstijn","Josef Spillner","Christof Petig","Erik Sigra (sigra)","Nanne Wams","Surgery","Andrius R. (knutux)","Jari Hautio (jarih)","Peter Schwanemann (Nasenbaer)","Victor Pelt (Dwarik)","Axel Gehlert (dunkelbrauer)","András Eisenberger (Kiscsirke)","Andi","Timo","Hannes","TimoW","Jens Beyer (Qcumber-some)","Andreas Breitschopp (ab-tools)","Joachim Breitner (nomeata)","Nizamov Shawkat","Carl-Philip Hänsch (carli)","Martin Prussak (martin)","David Allwicher (aber)","Nathan Peters (nathanpeters)","Leif Sandstede (lcsand)","Matthias Horne (shevonar)","Borim (borim)","Angelo Locritani (alocritani)","Gabriel Margiani (gamag)","Anthony J. Bentley (anthonyjbentley)","Peter Waller (iri)","Johannes Ebke (sirius-in4matiker)","Andreas Eriksson","Mark Scott","Teppo Mäenpää","Steven De Herdt","Charly Ghislain (cghislai)","Tino Miegel (TinoM)","Tibor Bamhor (tiborb95)","GunChleoc","Ferdinand Thiessen (f-thiessen)","Willy Scheibel (willyscheibel)","Martin Schmidt (mars)","Simon Eilting","Alexander Kartzow (daAlx1)","Łukasz Majcher","Paul Mehrer (meitis)","Miroslav Remák (MiroslavR)","Janosch Peters",},},},},{heading = _"Graphicians",image = "images/wui/stats/genstats_nrbuildings.png",entries = {{members = {"Albert Jasiowka","Holger Rapp (SirVer)","Marz","Philipp Engelhard","Yannick Warnier","Delia","Florian Neuerburg","Jerome Rosinski","Mats Olsson","Odin Omdal","Wolfgang Weidner","Andreas Baier","Juri Chomé","Toralf Bethke (bithunter32)","Peter Schwanemann (Nasenbaer)","Alexia Death","Repsa Jih","Geoffroy Schmitlin (Trimard)","Benedikt Freisen (Objpaswriter)","Stefano Guidoni (Ilguido)","Samith Sandanayake (samithdisal)","Chuck Wilder (chuckw)","Astuur","Gerrit Familiegrosskopf (kingcreole)","Florian Angermeier (fraang)",},},},},{heading = _"Musicians",image = "images/wui/overlays/workarea123.png",entries = {{members = {"Kristian","MiddleFinger","Valerio Orlandini (Symbiosis)","Barry van Oudtshoorn (barryvan)","Jan Bruns (Solatis)","Nikola Whallon (Saturn)","Joshua O'Leary (Joshun)",},},},},{heading = _"Sound Effects",image = "images/wui/overlays/workarea123.png",entries = {{members = {"Stefan de Konik","Peter Schwanemann (Nasenbaer)","Stephan","Adam Piggott (_aD)","Stanisław Gackowski (Soeb)",},},},},{heading = _"Maps and Missions",image = "images/wui/stats/genstats_landsize.png",entries = {{members = {"Michal Szopa (Winterwind)","Jan-Henrik Kluth (Isch)","Peter Schwanemann (Nasenbaer)","Sven (deviant)","Tuxlands","Kamil Wilczek (Another Barbarian)","Tarvo Reim (Tarrei)","Manuel Holzmeier (Quappo)","ivh","Hanna Podewski (kristin)","Teppo Mäenpää","fk","Einstein13","Jenia","Robnick","wl-zocker",},},},},{heading = _"Campaign Story",image = "images/ui_basic/ls_wlmap.png",entries = {{subheading = _"Barbarian",members = {"Bastian Rapp","Alexander Kahl (wolfpac)","Peter Schwanemann (Nasenbaer)",},},{subheading = _"Empire",members = {"Peter Schwanemann (Nasenbaer)",},},{subheading = _"Atlantean",members = {"Holger Rapp (SirVer)","Peter Schwanemann (Nasenbaer)",},},},},{heading = _"Translators",image = "images/wui/editor/fsel_editor_set_height.png",entries = {{subheading = "العربية (Arabic)",members = {"abdXelrhman","m-abudrais","someone",},},{subheading = "Asturianu (Asturian)",members = {"Xuacu Saturio",},},{subheading = "Български (Bulgarian)",members = {"А. Ташев","Любомир Василев",},},{subheading = "Català (Catalan)",members = {"Guybrush88","Joan Josep","Oriol",},},{subheading = "Čeština (Czech)",members = {"Adam Matoušek","David Spanel","Jens Beyer","Jezevec","Jiří Locker","Konki","Marek Donar (Markus7cz)","Martin Volf","Martin Vecera (Marvec)","MaSo_CZ","Matej Svrcek (prometheus)","Milan Fašina","prom","Vit Hrachovy","Zbyněk Schwarz",},},{subheading = "Dansk (Danish)",members = {"Ask Hjorth Larsen","beer","Daniel Ejsing-Duun","David Lamhauge","Erik Soe Sorensen","Esben Aaberg","hulagutten","Joe Hansen (joedalton)","larsch","Nikolaj Sejergaard","silentStatic","Simon Stubben","Ville Witt",},},{subheading = "Deutsch (German)",members = {"Andreas Breitschopp","Astuur","Benedikt Tröster","Bob Johns","Borim","Clemens Dinkel","Daniel Kutrowatz","Daniel Winzen","Das MC","David Allwicher","DelphiMarkus","Dirk Stöcker","Fenris Wolf","Ferdinand T.","FetteNase","Flames_in_Paradise","fraang","Frank Kubitschek","Gabriel Margiani","Hagen","Hanna Podewski (kristin)","herbert","hurz","Johannes (nuefke)","Johannes Haupt","Kaste","Klappstuhl","Koneu","kraileth","LAZA","LennStar","Macedon","Marc Wischnowsky","Markus Pfitzner (janus)","Martin","Matthias Krüger","Max","meru","Mirian Margiani","MirkoWodtke","Mister Pi","Mr. Anderson","Ole","Peter Schwanemann (Nasenbaer)","Philipp Niemann (Azagtoth)","Provetin","Ralf-J. Block","raymond","ronny","Shevonar","SirVer","Sonnrain","Thomas","Tim O.","Timowi","Tino Miegel (TinoM)","Tobias Margiani","Venatrix","wl-zocker","Wolfgang Kurz","Wolfs","Wuzzy",},},{subheading = "Ελληνικά (Greek)",members = {"ptr","Γιάννης Ανθυμίδης",},},{subheading = "Canadian English",members = {"Ne-1",},},{subheading = "British English",members = {"_aD","Alex Denvir","Andi Chandler","Anthony Harrington","Biffaboy","Heber","Jackson Doak","James Thorrold","Jon Senior","LiSrt","Luis Miguel D.P.","mrx5682","Terry Jones","Tinker","UndiFineD","Vladimir Oka",},},{subheading = "US American English",members = {"DragonAtma",},},{subheading = "Esperanto",members = {"alms21","Fenris Wolf","Ivan Camilo Quintero Santacruz","Jens Beyer","Kristjan SCHMIDT","LaPingvino","Manuel Berkemeier","Michael Moroni",},},{subheading = "Español (Spanish)",members = {"Adolfo Jayme","Agustín Vela","Alberto D.V.","Alejandro Pérez","Antonio Trueba (Fasser)","David Mitos","David Pérez","DiegoJ","Dishito","Eduardo Alberto Calvo","Gerardb","ironfisher","Ivan","Ivan Camilo Quintero Santacruz","Javi Sol","Jonay","Joseph Molina","JoseRoberto","Juan Eduardo Riva","Kiibakun","Luis Miguel D.P.","MadkaT","Martín V.","Miguel adre","Miguel de Dios","Monkey","Pablo Frigerio","Paco Molinero","Paulomorales","pescamillam","Rafael Augusto Maguiña Yrivarren","Rafael Medina","Raul Ferriz","Roberto López","schimmm","simon","Siz","WalterCool","zer berros",},},{subheading = "Eesti keel (Estonian)",members = {"gert7","rm87",},},{subheading = "Euskara (Basque)",members = {"Mikel Alzibar",},},{subheading = "فارسی (Persian)",members = {"katy Zahedi",},},{subheading = "Suomi (Finnish)",members = {"Jari Hautio","Juhani Numminen","Markus Hällfors","Pekka Järvinen (Raspi)","Sampo Harjula","Sini Ruohomaa (Byakushin)","Teppo Mäenpää","Tommi Nirha","Vazde",},},{subheading = "Français (French)",members = {"AGuechoum","AnubiS","Audiger Jeremy","Aurelien Pavel","Benjamin Subtil","Bertram","bouchard renaud","Bruno Veilleux","clark17","crep4ever","David .","El Pensador","Eliovir","Emmanuel Andry (Eandry)","fk","François Rousselet","Gilles Aubert","Guillaume Brant","Guybrush88","Immunoman","Jean-Pierre Gemble","Hanna Podewski (kristin)","londumas","Michael Colignon","Michael DOUBEZ","Mohamed SEDKI","NonoSan","Pierre Rudloff","Sébastien Duthil","Sevy Ride","Tarou","Thomas Jungers","tomtom","Tubuntu","Ubuntu1988","verdy_p","wl-zocker","YS1","Yves MATHIEU",},},{subheading = "Gàidhlig (Scottish Gaelic)",members = {"GunChleoc",},},{subheading = "Galego (Galician)",members = {"Adrián Chaves Fernández","Antonio Trueba (Fasser)","Xosé",},},{subheading = "עברית (Hebrew)",members = {"Danny Albocher","Liel Fridman","Michael DOUBEZ","Solomon Gruber (Piql7)","Yaron",},},{subheading = "हिन्दी (Hindi)",members = {"girdhari rao",},},{subheading = "Hrvatski (Croatian)",members = {"Mario Dautović",},},{subheading = "Magyar (Hungarian)",members = {"cn4ij","Dániel Varga (EuroF)","Ferenc Nagy","Gyönki Bendegúz","HUNStree","István Kiss","jzombi","Kiscsirke","Major Gabesz","Muszela Balázs","Papp Bence","Richard Somlói","Robert Roth","SanskritFritz","Szűcs Kornél Géza",},},{subheading = "Interlingua",members = {"alms21",},},{subheading = "Bahasa Indonesia (Indonesian)",members = {"dadanhrn",},},{subheading = "Italiano (Italian)",members = {"Angelo Locritani","Colin Gibson","DarkSaivor","Davidus","Dom De Felice","Doukas7","Eulogy","Gabriel Rota","Guybrush88","ido","Loris Turchetti","Oibaf","Pierpaolo Pierozzi","pierusch","Pietro Battiston","Roberto Sciascia","Sergio Spinatelli","sgargel","simone.sandri",},},{subheading = "日本語 (Japanese)",members = {"alms21","Dios","guess880","Midori","SevyRide","tubame",},},{subheading = "Basa jawa (Javanese)",members = {"zaenal arifin",},},{subheading = "ქართული (Georgian)",members = {"Gabriel Margiani","Meyer Konrad",},},{subheading = "한국어 (Korean)",members = {"ddfddf2k",},},{subheading = "Lingua latīna (Latin)",members = {"alms21","lopho","Sonnrain","Stephan Lenk","Thorsten",},},{subheading = "Lietuvių (Lithuanian)",members = {"Mantas Kriaučiūnas",},},{subheading = "मराठी (Marathi)",members = {"Amod Ajit Karmarkar",},},{subheading = "بهاس ملايو (Malay)",members = {"abuyop",},},{subheading = "မြန်မာစ (Burmese)",members = {"pyaehtetaung",},},{subheading = "Norsk (Bokmål) (Norwegian Bokmål)",members = {"Fredrik Sudmann","Hans Joachim Desserud","Magnus Meyer Hustveit","Martin Dahl Moe","mr.x","Thorbjørn Bruarøy",},},{subheading = "Plattdütsch (Low German)",members = {"Mister Pi ","Nasenbaer ","Ole ","tando",},},{subheading = "Nederlands (Dutch)",members = {"BenW","Christian Groenendijk","Dirk Schut","fireprog","fk","Foppe Benedictus","Johan Jonkman (Dikjuh)","Maasieboy","Marcel","megabyte","Patrick van der Leer","Pieter Ouwerkerk (Pietertje)","Pietertje","PliniusNeo","REAL NAME","RickvanderZwet","Rob Snelders (Ertai)","Teun Spaans","Victor Pelt","Wim Champagne",},},{subheading = "Nynorsk (Norwegian Nynorsk)",members = {"Alexander Mackinnon Jansen","Hans Joachim Desserud","Odin Hørthe Omdal","Thorbjørn Bruarøy",},},{subheading = "Occitan",members = {"Cédric VALMARY (Tot en òc)",},},{subheading = "Polski (Polish)",members = {"Andrzej Krentosz (Endrju)","Asahi Koishi","BartekChom","Bartosz Wiśniewski","Gabriel Fortin","Hubert Pluta","Jakub Rak (einstein13)","Januzi (januzi)","Jacek Wolszczak (Shutdownrunner)","Jens Beyer","Karol Sobolewski","Łukasz Chełmicki","Mateusz Micał","Michal Maslanko","Michał Rzepiński","orzeh","Patryk Sawicki","Pawel PErz","Stanisław Gackowski (Soeb)","Szymon Fornal","Szymon Gackowski","Szymon Nieznański","tim","Tomasz Sterna","Wesmania","Wojtek","XeonBloomfield",},},{subheading = "Português (Portuguese)",members = {"Almufadado","daniel reis","David Rodrigues","Flávio J. Saraiva","GunChleoc","Marcelo do Pagode","Miguel de Freitas Fonseca","Tiago Silva","trewe",},},{subheading = "Português do Brasil (Brazilian Portuguese)",members = {"Alexandre","alms21","Almufadado","Cleverton","daniel reis","Fabio Garz","Flaviano Angeli","HicHic","Hriostat","Israel","JoãoPedro BrasãoToledo","Juarez S.","Júlio Cezar Santos Pires","Juno","Luiz N","Maraschin","Marcelo do Pagode","Nicolas Abril","Pedro Pisandelli","Proezas","Rafael Neri","Rayback","Rubens Bueno","Samer Ghosnlas.2932","Tomas Abril","Vitor",},},{subheading = "Română (Romanian)",members = {"Ursachi Alexandru",},},{subheading = "Русский (Russian)",members = {"Александр","Александр Бикмеев (Rombal)","Александр Глухов","Алексей Кабанов","Андрей Кулаков ","Андрей Олыкайнен ","Антон Хабаров (lu)","Виктор Биркманис","Владимир Коваленко","Глеб Синковский","Глория Хрусталёва","Денис Дерябин","Егор Панфилов","Константин Щукин","Никита Шехов","Руслан Ковтун","Сергей Фуканчик ","Юрий Соколов (Urra)","CupIvan","Georgiy","gerich","Izon","KroArtem","Lex","Massol","Papazu","SashaQR","TroubleMakerDV","Vampire Hunter D","Vlad",},},{subheading = "Kinyarwanda",members = {"Nasenbaer",},},{subheading = "සිංහල (Sinhala)",members = {"Samith Sandanayake",},},{subheading = "Slovenčina (Slovak)",members = {"Kefir111","Marek Hám","Miroslav Remák","Vladimir","Vladímir Tóth (Ike)",},},{subheading = "Slovenski jezik (Slovenian)",members = {"Andrej Znidarsic","Boštjan Miklavčič","Jure Repinc","kleb","Klemen Košir","Matevž Jekovec","Matic Gradišer","mrt",},},{subheading = "српски (Serbian)",members = {"Никола Павловић",},},{subheading = "Svenska (Swedish)",members = {"Arve Eriksson","Christian Widell","Daniel Nylander (yeager)","Frederik Pettersson (luno)","ivh","Joakim Lundborg","karlrune","Marcus E","Michael Rydén","Patrick H.","Phoenix","Rasmus Olstedt","RasmusBackman","Sigra","Treecko","Tumaini","Ulite",},},{subheading = "Türkçe (Turkish)",members = {"Asiye","Ekrem Kocadere","Ercin Senturk","Recep Hasanbaş","ScriptMonster","Volkan Gezer",},},{subheading = "українська мова (Ukranian)",members = {"Fedik","Shemet Yevhene","Сергій Дубик",},},{subheading = "Tiếng Việt (Vietnamese)",members = {"Nguyen Quang Chien",},},{subheading = "简体中文 (Simplified Chinese)",members = {"luojie-dune","XIA",},},{subheading = "繁體中文 (Traditional Chinese)",members = {"AJ","poormusic","sonny",},},},},{heading = _"Packagers",image = "images/wui/stats/genstats_productivity.png",entries = {{subheading = _"Debian Linux",members = {"Martin Quinson",},},{subheading = _"Fedora Linux",members = {"Karol Trzcionka","Jochen Wiedmann",},},{subheading = _"Mandriva Linux",members = {"Emmanuel Andry (eandry)",},},{subheading = _"FreeBSD",members = {"Bartosz Fabianowski",},},{subheading = _"Mac OS X",members = {"Philipp Engelhard","Pierre Salagnac (Tarou)","Wolf St. Kappesser","David Allwicher (aber)",},},{subheading = _"Windows",members = {"Tino Miegel (TinoM)","Alexander Kahl (Wolfpac)","Geodomus","Jari Hautio",},},{subheading = _"ZetaOS",members = {"BeSman",},},},},{heading = _"Homepage",image = "images/logos/WL-Editor-16.png",entries = {{subheading = _"Homepage Coders",members = {"Holger Rapp (SirVer)","Stanislaw Gackowski (Soeb)","Markus Pfitzner (janus)","Tobi",},},{subheading = _"Documentation, Help and Wiki",members = {"Erik Sigra (sigra)","Florian Falkner (foldrian)","Florian Weber (bedouin)","Nicolai Haehnle","Holger Rapp (SirVer)","Johannes (nuefke)","Alexander Kahl (wolfpac)","Stanislaw Gackowski (Soeb)","Hanna Podewski (kristin)",},},},},{heading = _"Former Elders",image = "images/players/genstats_enable_plr_04.png",entries = {{subheading = _"Graphics",members = {"Salamander","Alexia Death (death)",},},{subheading = _"Homepage",members = {"holymoly","Stuart Eglington (DaaL1973)","Jon Harris (jonsjava)",},},{subheading = _"Sound",members = {"Yannick Warnier",},},{subheading = _"Translation",members = {"Peter Schwanemann (Nasenbaer)","Philipp Niemann (Azagtoth)",},},},},{heading = _"Other",image = "images/wui/stats/genstats_landsize.png",entries = {{members = {"Matt Howe (mdhowe)","Samuel Tilly (eldamar)","and many, many more (thank you for everything you've done)",},},},},} end
657
658=== modified file 'src/logic/map_objects/tribes/tribe_basic_info.cc'
659--- src/logic/map_objects/tribes/tribe_basic_info.cc 2015-11-28 22:29:26 +0000
660+++ src/logic/map_objects/tribes/tribe_basic_info.cc 2016-03-09 17:17:50 +0000
661@@ -40,7 +40,9 @@
662 {
663 std::unique_ptr<LuaTable> script_table = lua.run_script(script_path);
664 script_table->do_not_warn_about_unaccessed_keys();
665- initializations.push_back(Initialization(script_path, script_table->get_string("descname")));
666+ initializations.push_back(Initialization(script_path,
667+ script_table->get_string("descname"),
668+ script_table->get_string("tooltip")));
669 }
670 } catch (const WException & e) {
671 throw Widelands::GameDataError
672
673=== modified file 'src/logic/map_objects/tribes/tribe_basic_info.h'
674--- src/logic/map_objects/tribes/tribe_basic_info.h 2015-11-28 22:29:26 +0000
675+++ src/logic/map_objects/tribes/tribe_basic_info.h 2016-03-09 17:17:50 +0000
676@@ -34,11 +34,13 @@
677
678 /// Script path and localized name for a starting condition
679 struct Initialization {
680- Initialization(std::string init_script, std::string init_descname) :
681+ Initialization(std::string init_script, std::string init_descname, std::string init_tooltip) :
682 script(init_script),
683- descname(init_descname) {}
684+ descname(init_descname),
685+ tooltip(init_tooltip) {}
686 std::string script;
687 std::string descname;
688+ std::string tooltip;
689 };
690
691 TribeBasicInfo(std::unique_ptr<LuaTable> table);
692
693=== modified file 'src/network/netclient.cc'
694--- src/network/netclient.cc 2016-02-16 06:54:47 +0000
695+++ src/network/netclient.cc 2016-03-09 17:17:50 +0000
696@@ -784,7 +784,9 @@
697 std::unique_ptr<LuaTable> t = lua.run_script(initialization_script);
698 t->do_not_warn_about_unaccessed_keys();
699 info.initializations.push_back
700- (TribeBasicInfo::Initialization(initialization_script, t->get_string("descname")));
701+ (TribeBasicInfo::Initialization(initialization_script,
702+ t->get_string("descname"),
703+ t->get_string("tooltip")));
704 }
705 d->settings.tribes.push_back(info);
706 }
707
708=== modified file 'src/wui/multiplayersetupgroup.cc'
709--- src/wui/multiplayersetupgroup.cc 2016-02-07 16:31:06 +0000
710+++ src/wui/multiplayersetupgroup.cc 2016-03-09 17:17:50 +0000
711@@ -377,6 +377,8 @@
712 for (const TribeBasicInfo& tribeinfo : settings.tribes) {
713 if (tribeinfo.name == player_setting.tribe) {
714 init->set_title(_(tribeinfo.initializations.at(player_setting.initialization_index).descname));
715+ init->set_tooltip(
716+ _(tribeinfo.initializations.at(player_setting.initialization_index).tooltip));
717 break;
718 }
719 }
720
721=== modified file 'src/wui/playerdescrgroup.cc'
722--- src/wui/playerdescrgroup.cc 2016-01-28 05:24:34 +0000
723+++ src/wui/playerdescrgroup.cc 2016-03-09 17:17:50 +0000
724@@ -202,6 +202,11 @@
725 (tribeinfo.initializations.at
726 (player.initialization_index)
727 .descname));
728+ d->btnPlayerInit->set_tooltip
729+ (_
730+ (tribeinfo.initializations.at
731+ (player.initialization_index)
732+ .tooltip));
733 break;
734 }
735 }

Subscribers

People subscribed via source and target branches

to status/vote changes: