Merge lp:~widelands-dev/widelands/rework-resource-indicators into lp:widelands

Proposed by Benedikt Straub on 2018-08-29
Status: Merged
Merged at revision: 8833
Proposed branch: lp:~widelands-dev/widelands/rework-resource-indicators
Merge into: lp:widelands
Diff against target: 2608 lines (+1415/-524)
48 files modified
data/campaigns/bar01.wmf/scripting/texts.lua (+10/-10)
data/campaigns/tutorial03_seafaring.wmf/scripting/mission_thread.lua (+1/-1)
data/tribes/atlanteans.lua (+37/-10)
data/tribes/barbarians.lua (+35/-10)
data/tribes/empire.lua (+35/-10)
data/tribes/frisians.lua (+35/-10)
data/tribes/immovables/resi/atlanteans/init.lua (+230/-0)
data/tribes/immovables/resi/barbarians/init.lua (+221/-0)
data/tribes/immovables/resi/empire/init.lua (+221/-0)
data/tribes/immovables/resi/frisians/init.lua (+230/-0)
data/tribes/immovables/resi/helptexts/coal_1.lua (+17/-0)
data/tribes/immovables/resi/helptexts/coal_2.lua (+17/-0)
data/tribes/immovables/resi/helptexts/gold_1.lua (+17/-0)
data/tribes/immovables/resi/helptexts/gold_2.lua (+17/-0)
data/tribes/immovables/resi/helptexts/iron_1.lua (+17/-0)
data/tribes/immovables/resi/helptexts/iron_2.lua (+17/-0)
data/tribes/immovables/resi/helptexts/none.lua (+14/-0)
data/tribes/immovables/resi/helptexts/stones_1.lua (+32/-0)
data/tribes/immovables/resi/helptexts/stones_2.lua (+32/-0)
data/tribes/immovables/resi/helptexts/water.lua (+14/-0)
data/tribes/immovables/resi_coal1/helptexts.lua (+0/-17)
data/tribes/immovables/resi_coal1/init.lua (+0/-23)
data/tribes/immovables/resi_coal2/helptexts.lua (+0/-17)
data/tribes/immovables/resi_coal2/init.lua (+0/-23)
data/tribes/immovables/resi_gold1/helptexts.lua (+0/-17)
data/tribes/immovables/resi_gold1/init.lua (+0/-23)
data/tribes/immovables/resi_gold2/helptexts.lua (+0/-17)
data/tribes/immovables/resi_gold2/init.lua (+0/-23)
data/tribes/immovables/resi_iron1/helptexts.lua (+0/-17)
data/tribes/immovables/resi_iron1/init.lua (+0/-23)
data/tribes/immovables/resi_iron2/helptexts.lua (+0/-17)
data/tribes/immovables/resi_iron2/init.lua (+0/-23)
data/tribes/immovables/resi_none/helptexts.lua (+0/-14)
data/tribes/immovables/resi_none/init.lua (+0/-23)
data/tribes/immovables/resi_stones1/helptexts.lua (+0/-27)
data/tribes/immovables/resi_stones1/init.lua (+0/-23)
data/tribes/immovables/resi_stones2/helptexts.lua (+0/-27)
data/tribes/immovables/resi_stones2/init.lua (+0/-23)
data/tribes/immovables/resi_water1/helptexts.lua (+0/-14)
data/tribes/immovables/resi_water1/init.lua (+0/-23)
data/tribes/init.lua (+4/-10)
data/tribes/scripting/help/building_help.lua (+15/-8)
src/logic/editor_game_base.cc (+15/-0)
src/logic/map_objects/tribes/tribe_descr.cc (+46/-35)
src/logic/map_objects/tribes/tribe_descr.h (+12/-0)
src/map_io/tribes_legacy_lookup_table.cc (+49/-6)
src/scripting/lua_map.cc (+24/-0)
src/scripting/lua_map.h (+1/-0)
To merge this branch: bzr merge lp:~widelands-dev/widelands/rework-resource-indicators
Reviewer Review Type Date Requested Status
GunChleoc 2018-08-29 Approve on 2018-09-12
Benedikt Straub Resubmit on 2018-09-01
Review via email: mp+353996@code.launchpad.net

Commit message

Removed name and amount restrictions for resource indicators. Created a different set of resi graphics for each tribe.

To post a comment you must log in.
bunnybot (widelandsofficial) wrote :

Continuous integration builds have changed state:

Travis build 3854. State: passed. Details: https://travis-ci.org/widelands/widelands/builds/422215867.
Appveyor build 3652. State: success. Details: https://ci.appveyor.com/project/widelands-dev/widelands/build/_widelands_dev_widelands_rework_resource_indicators-3652.

8782. By Benedikt Straub on 2018-08-30

added missing function

8783. By Benedikt Straub on 2018-08-30

fixed compile error

bunnybot (widelandsofficial) wrote :

Continuous integration builds have changed state:

Travis build 3858. State: passed. Details: https://travis-ci.org/widelands/widelands/builds/422459572.
Appveyor build 3656. State: failed. Details: https://ci.appveyor.com/project/widelands-dev/widelands/build/_widelands_dev_widelands_rework_resource_indicators-3656.

8784. By GunChleoc on 2018-09-01

Fix seafaring tutorial

8785. By GunChleoc on 2018-09-01

Fix mines building help for Atlanteans

GunChleoc (gunchleoc) wrote :

I have done some in-game testing now - the code is almost ready, but still needs some tweaking. I'll add my comments for the graphics to the bug.

Code review of the C++ bits to follow.

Barbarian scenario 1 is fixed correctly, but the indicators are huge. They are also huge in the Encyclopedia. Please make them to scale - we can have bigger ones once we have mipmaps, which are pretty much ready but targeted for Build 21. https://code.launchpad.net/~widelands-dev/widelands/mipmaps

I have fixed the seafaring tutorial.

In-game help for mines is broken. I have fixed it for the Atlanteans, but the Barbarians don't follow the naming scheme. We can bzr mv the pictures, but I think the better solution would be to get the immovables by name and then get their representative_image.

Please rename the "png" folder to "pics" for consistency and fix the scripts accordingly. May sound like nitpicking, but it does make the file structure easier to navigate ;)

review: Needs Fixing
GunChleoc (gunchleoc) wrote :

Code review on the diff done - see comments.

8786. By Benedikt Straub on 2018-09-01

fixed resi directory structure

8787. By Benedikt Straub on 2018-09-01

fixed mines help

8788. By Benedikt Straub on 2018-09-01

improved and scaled down resi graphics for bar, emp, fri

8789. By Benedikt Straub on 2018-09-01

implemented diff comments

Benedikt Straub (nordfriese) wrote :

Implemented most of your comments, and changed the graphics. Didn´t touch the atlantean images yet, will do so now.

I disagree about hardcoding the none-resi as "none". Hardcoded name restrictions are always a bad thing; it should be possible for a future modder to create a new resource named "none" if they want. Better not to have any hardcoded names and use the only string that makes no sense at all as a resource name, "".

8790. By Benedikt Straub on 2018-09-01

fixed image paths in bar01

8791. By Benedikt Straub on 2018-09-01

improved and scaled down resi graphics for atl

Benedikt Straub (nordfriese) wrote :

Remaining graphics changed. Please test again.

review: Resubmit
GunChleoc (gunchleoc) wrote :

For fixing the help, add definitions for the icon to the init.lua, like this:

    icon = dirname .. "coal.png",

You can then reference it via

    immovable_description.icon_name

Maybe we should use the same trick in the Barbarian scenario too, that will make it more resistant against changes in the implementation details.

8792. By Benedikt Straub on 2018-09-02

using representative images for resis in building help and bar01

Benedikt Straub (nordfriese) wrote :

OK, refactored the building help so it now queries the highest resi for the given resource from the given TribeDescr and uses its representative_image. The barbarian scenario also uses representative_image for each resi now instead of fixed image paths.
There was no need to define an icon, as representative_image points to the first idle frame by default.

8793. By GunChleoc on 2018-09-02

Remove iterators.

GunChleoc (gunchleoc) wrote :

Code looks good to me - I have removed the iterators and pushed a commit.

- Barbarian indicators are good.
- Empire: I still have a bit of difficulty seeing the difference between no resources and stones. Maybe give them a bevel or something? Or give the marble a bit of color. The Arena's color might work better.
- Atlanteans: I still can't see the indicators for stones on a grey mountain. They need brighter colors overall. Lay the borders on thick.
- Frisians are good now

8794. By Benedikt Straub on 2018-09-02

changed empire resi graphics for stones and none

8795. By Benedikt Straub on 2018-09-02

Merged trunk

GunChleoc (gunchleoc) wrote :

I like the design for empire, but we still need more contrast. Make the colors pop, including the line for the "no resources" indicator - I can hardly see that it's there, and people who have trouble seeing contrasts will not see that it's there at all ;)

http://accessibility.psu.edu/color/contrasthtml/

8796. By Benedikt Straub on 2018-09-07

new empire and atlantean resi graphics

Benedikt Straub (nordfriese) wrote :

Uploaded new graphics for empire and atlantean resis. How about these?

8797. By Benedikt Straub on 2018-09-07

merged trunk

8798. By GunChleoc on 2018-09-08

Experimental adjustments to some Empire resis. Hand-painted "none", increased staturation for all, brightness adjustments.

GunChleoc (gunchleoc) wrote :

I have made some quick and dirty adjustments in Gimp for some Empire resis so you see what I mean. The increased saturation makes it possible to see them without strain, but they will need to be done properly in Blender and also more tweaks for color balancing so that they will look harmonious.

I think the Atlantean colors are OK now. I am having trouble seeing the "none" indicators though, and I couldn't make it better. Maybe basing the poles off the flags' poles will work better?

I think we should also give this branch to the forum community for testing before we merge.

bunnybot (widelandsofficial) wrote :

Continuous integration builds have changed state:

Travis build 3912. State: passed. Details: https://travis-ci.org/widelands/widelands/builds/426196539.
Appveyor build 3710. State: success. Details: https://ci.appveyor.com/project/widelands-dev/widelands/build/_widelands_dev_widelands_rework_resource_indicators-3710.

8799. By Benedikt Straub on 2018-09-10

more contrast for empire, new none graphics for atlanteans

Benedikt Straub (nordfriese) wrote :

I can´t reproduce these saturation improvements in Blender well enough, so I used GIMP to edit my renders now. Also gave the atlanteans a new none resi that is better visible because it´s animated.

GunChleoc (gunchleoc) wrote :

We're getting there :)

I still have trouble seeing the differences between little stone and lots of stone for the Empire. Maybe make the dark frame around the inner color a bit wider?

The Atlantean "none" is well visible now, but since it has more cloth than the others, it implies that it has lots and lost of something... maybe give it some ropes without cloth, as if they got ready to hang a cloth for the resources, but there was nothing there? Or a really thin horizontal band of cloth.

8800. By Benedikt Straub on 2018-09-11

Less cloth for atl_none, darker borders for emp_*_1

Benedikt Straub (nordfriese) wrote :

And another attempt ;)

8801. By Benedikt Straub on 2018-09-11

Merged trunk

8802. By Benedikt Straub on 2018-09-11

Merged trunk

GunChleoc (gunchleoc) wrote :

Empire is good now :)

Atlantean "none" still signals to me that there is something important there - it's visually too busy. Try just 1 strip of cloth in the middle and remove the 3rd pole?

8803. By Benedikt Straub on 2018-09-12

changed atlantean none anim

8804. By Benedikt Straub on 2018-09-12

merged trunk

8805. By Benedikt Straub on 2018-09-12

new atl_resi_none

Benedikt Straub (nordfriese) wrote :

I´ve lost count the how-many-th version this is ;)
I find only one strip of cloth hard to see, unless it´s very broad. How about these new crossed silk strips?

GunChleoc (gunchleoc) wrote :

Yes, we have a winner :D

@bunnybot merge

> I´ve lost count the how-many-th version this is ;)

Me too... I find code easier to review *lol*

review: Approve
8806. By Benedikt Straub on 2018-09-12

merged trunk

8807. By Benedikt Straub on 2018-09-12

fixed building_help typo

bunnybot (widelandsofficial) wrote :

Continuous integration builds have changed state:

Travis build 3963. State: failed. Details: https://travis-ci.org/widelands/widelands/builds/428098620.
Appveyor build 3761. State: success. Details: https://ci.appveyor.com/project/widelands-dev/widelands/build/_widelands_dev_widelands_rework_resource_indicators-3761.

bunnybot (widelandsofficial) wrote :

Refusing to merge, since Travis is not green. Use @bunnybot merge force for merging anyways.

Travis build 3963. State: failed. Details: https://travis-ci.org/widelands/widelands/builds/428098620.

8808. By GunChleoc on 2018-09-14

Merged trunk.

bunnybot (widelandsofficial) wrote :

Continuous integration builds have changed state:

Travis build 3968. State: passed. Details: https://travis-ci.org/widelands/widelands/builds/428511168.
Appveyor build 3766. State: success. Details: https://ci.appveyor.com/project/widelands-dev/widelands/build/_widelands_dev_widelands_rework_resource_indicators-3766.

GunChleoc (gunchleoc) wrote :

@bunnybot merge

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'data/campaigns/bar01.wmf/scripting/texts.lua'
2--- data/campaigns/bar01.wmf/scripting/texts.lua 2018-08-13 16:44:58 +0000
3+++ data/campaigns/bar01.wmf/scripting/texts.lua 2018-09-14 06:31:21 +0000
4@@ -43,16 +43,16 @@
5 body = objective_text(_"Build coal and iron mines",
6 li(_"Build a coal mine and an iron mine.") ..
7 li_arrow(_"To do so, place a flag up on the mountain’s flank to the east (on mountain terrain though, not mountain meadow). When you click on the new flag, you can send geologists there. Because the flag is on a mountain, the geologists will search for ores; otherwise, they would search for water. Then build a mine for both kinds of resources that they will find, choosing the appropriate mine to be built:") ..
8- li_image("tribes/immovables/resi_coal1/idle_00.png", _"a bit of coal") ..
9- li_image("tribes/immovables/resi_coal2/idle_00.png", _"a lot of coal") ..
10- li_image("tribes/immovables/resi_iron1/idle_00.png", _"a bit of iron") ..
11- li_image("tribes/immovables/resi_iron2/idle_00.png", _"a lot of iron") ..
12- li_image("tribes/immovables/resi_gold1/idle_00.png", _"a bit of gold") ..
13- li_image("tribes/immovables/resi_gold2/idle_00.png", _"a lot of gold") ..
14- li_image("tribes/immovables/resi_stones1/idle_00.png", _"a bit of granite") ..
15- li_image("tribes/immovables/resi_stones2/idle_00.png", _"a lot of granite") ..
16- li_image("tribes/immovables/resi_water1/idle_00.png", _"water") ..
17- li_image("tribes/immovables/resi_none/idle_00.png", _"nothing was found here") ..
18+ li_image(wl.Game():get_immovable_description("barbarians_resi_coal_1").representative_image, _"a bit of coal") ..
19+ li_image(wl.Game():get_immovable_description("barbarians_resi_coal_2").representative_image, _"a lot of coal") ..
20+ li_image(wl.Game():get_immovable_description("barbarians_resi_iron_1").representative_image, _"a bit of iron") ..
21+ li_image(wl.Game():get_immovable_description("barbarians_resi_iron_2").representative_image, _"a lot of iron") ..
22+ li_image(wl.Game():get_immovable_description("barbarians_resi_gold_1").representative_image, _"a bit of gold") ..
23+ li_image(wl.Game():get_immovable_description("barbarians_resi_gold_2").representative_image, _"a lot of gold") ..
24+ li_image(wl.Game():get_immovable_description("barbarians_resi_stones_1").representative_image, _"a bit of granite") ..
25+ li_image(wl.Game():get_immovable_description("barbarians_resi_stones_2").representative_image, _"a lot of granite") ..
26+ li_image(wl.Game():get_immovable_description("barbarians_resi_water").representative_image, _"water") ..
27+ li_image(wl.Game():get_immovable_description("barbarians_resi_none").representative_image, _"nothing was found here") ..
28 p(_[[Mines can only be built on mountain terrain. Suitable places for mines are displayed as orange mine symbols.]]))
29 }
30
31
32=== modified file 'data/campaigns/tutorial03_seafaring.wmf/scripting/mission_thread.lua'
33--- data/campaigns/tutorial03_seafaring.wmf/scripting/mission_thread.lua 2017-05-07 10:30:33 +0000
34+++ data/campaigns/tutorial03_seafaring.wmf/scripting/mission_thread.lua 2018-09-14 06:31:21 +0000
35@@ -75,7 +75,7 @@
36 local idx = math.random(#fields)
37 f = fields[idx]
38 if ((f.resource == "iron") and not f.immovable) then
39- map:place_immovable("resi_iron2",f,"tribes")
40+ map:place_immovable("atlanteans_resi_iron_2",f,"tribes")
41 successful = true
42 end
43 table.remove(fields,idx)
44
45=== modified file 'data/images/wui/overlays/mine.png'
46Binary files data/images/wui/overlays/mine.png 2014-12-03 20:13:06 +0000 and data/images/wui/overlays/mine.png 2018-09-14 06:31:21 +0000 differ
47=== modified file 'data/tribes/atlanteans.lua'
48--- data/tribes/atlanteans.lua 2017-11-23 09:13:06 +0000
49+++ data/tribes/atlanteans.lua 2018-09-14 06:31:21 +0000
50@@ -22,6 +22,8 @@
51 --
52 -- **roads**: The file paths for the tribes' road textures in 2 subtables ``busy`` and ``normal``
53 --
54+-- **resource_indicators**: The names for the resource indicators. This table contains a subtable for each resource name plus a subtable named "" for no resources. Each subtable is an array, in which the index of each entry is the highest amount of resources the indicator may indicate.
55+--
56 -- **wares_order**: This defines all the wares that this tribe uses and their display order in the user interface. Each subtable defines a column in the user interface.
57 --
58 -- **workers_order**: This defines all the workers that this tribe uses and their display order in the user interface. Each subtable defines a column in the user interface.
59@@ -73,6 +75,31 @@
60 },
61 },
62
63+ resource_indicators = {
64+ [""] = {
65+ [0] = "atlanteans_resi_none",
66+ },
67+ coal = {
68+ [10] = "atlanteans_resi_coal_1",
69+ [20] = "atlanteans_resi_coal_2",
70+ },
71+ iron = {
72+ [10] = "atlanteans_resi_iron_1",
73+ [20] = "atlanteans_resi_iron_2",
74+ },
75+ gold = {
76+ [10] = "atlanteans_resi_gold_1",
77+ [20] = "atlanteans_resi_gold_2",
78+ },
79+ stones = {
80+ [10] = "atlanteans_resi_stones_1",
81+ [20] = "atlanteans_resi_stones_2",
82+ },
83+ water = {
84+ [100] = "atlanteans_resi_water",
85+ },
86+ },
87+
88 -- Wares positions in wares windows.
89 -- This also gives us the information which wares the tribe uses.
90 -- Each subtable is a column in the wares windows.
91@@ -205,16 +232,16 @@
92 "cornfield_ripe",
93 "cornfield_harvested",
94 "destroyed_building",
95- "resi_coal1",
96- "resi_coal2",
97- "resi_gold1",
98- "resi_gold2",
99- "resi_iron1",
100- "resi_iron2",
101- "resi_none",
102- "resi_water1",
103- "resi_stones1",
104- "resi_stones2",
105+ "atlanteans_resi_none",
106+ "atlanteans_resi_water",
107+ "atlanteans_resi_coal_1",
108+ "atlanteans_resi_iron_1",
109+ "atlanteans_resi_gold_1",
110+ "atlanteans_resi_stones_1",
111+ "atlanteans_resi_coal_2",
112+ "atlanteans_resi_iron_2",
113+ "atlanteans_resi_gold_2",
114+ "atlanteans_resi_stones_2",
115 "atlanteans_shipconstruction",
116 },
117
118
119=== modified file 'data/tribes/barbarians.lua'
120--- data/tribes/barbarians.lua 2018-07-15 10:32:12 +0000
121+++ data/tribes/barbarians.lua 2018-09-14 06:31:21 +0000
122@@ -26,6 +26,31 @@
123 },
124 },
125
126+ resource_indicators = {
127+ [""] = {
128+ [0] = "barbarians_resi_none",
129+ },
130+ coal = {
131+ [10] = "barbarians_resi_coal_1",
132+ [20] = "barbarians_resi_coal_2",
133+ },
134+ iron = {
135+ [10] = "barbarians_resi_iron_1",
136+ [20] = "barbarians_resi_iron_2",
137+ },
138+ gold = {
139+ [10] = "barbarians_resi_gold_1",
140+ [20] = "barbarians_resi_gold_2",
141+ },
142+ stones = {
143+ [10] = "barbarians_resi_stones_1",
144+ [20] = "barbarians_resi_stones_2",
145+ },
146+ water = {
147+ [100] = "barbarians_resi_water",
148+ },
149+ },
150+
151 -- Wares positions in wares windows.
152 -- This also gives us the information which wares the tribe uses.
153 -- Each subtable is a column in the wares windows.
154@@ -155,16 +180,16 @@
155 "reed_small",
156 "reed_medium",
157 "reed_ripe",
158- "resi_coal1",
159- "resi_coal2",
160- "resi_gold1",
161- "resi_gold2",
162- "resi_iron1",
163- "resi_iron2",
164- "resi_none",
165- "resi_water1",
166- "resi_stones1",
167- "resi_stones2",
168+ "barbarians_resi_none",
169+ "barbarians_resi_water",
170+ "barbarians_resi_coal_1",
171+ "barbarians_resi_iron_1",
172+ "barbarians_resi_gold_1",
173+ "barbarians_resi_stones_1",
174+ "barbarians_resi_coal_2",
175+ "barbarians_resi_iron_2",
176+ "barbarians_resi_gold_2",
177+ "barbarians_resi_stones_2",
178 "barbarians_shipconstruction",
179 },
180
181
182=== modified file 'data/tribes/empire.lua'
183--- data/tribes/empire.lua 2017-11-25 23:32:30 +0000
184+++ data/tribes/empire.lua 2018-09-14 06:31:21 +0000
185@@ -29,6 +29,31 @@
186 },
187 },
188
189+ resource_indicators = {
190+ [""] = {
191+ [0] = "empire_resi_none",
192+ },
193+ coal = {
194+ [10] = "empire_resi_coal_1",
195+ [20] = "empire_resi_coal_2",
196+ },
197+ iron = {
198+ [10] = "empire_resi_iron_1",
199+ [20] = "empire_resi_iron_2",
200+ },
201+ gold = {
202+ [10] = "empire_resi_gold_1",
203+ [20] = "empire_resi_gold_2",
204+ },
205+ stones = {
206+ [10] = "empire_resi_stones_1",
207+ [20] = "empire_resi_stones_2",
208+ },
209+ water = {
210+ [100] = "empire_resi_water",
211+ },
212+ },
213+
214 -- Wares positions in wares windows.
215 -- This also gives us the information which wares the tribe uses.
216 -- Each subtable is a column in the wares windows.
217@@ -163,16 +188,16 @@
218 "grapevine_small",
219 "grapevine_medium",
220 "grapevine_ripe",
221- "resi_coal1",
222- "resi_coal2",
223- "resi_gold1",
224- "resi_gold2",
225- "resi_iron1",
226- "resi_iron2",
227- "resi_none",
228- "resi_water1",
229- "resi_stones1",
230- "resi_stones2",
231+ "empire_resi_none",
232+ "empire_resi_water",
233+ "empire_resi_coal_1",
234+ "empire_resi_iron_1",
235+ "empire_resi_gold_1",
236+ "empire_resi_stones_1",
237+ "empire_resi_coal_2",
238+ "empire_resi_iron_2",
239+ "empire_resi_gold_2",
240+ "empire_resi_stones_2",
241 "empire_shipconstruction",
242 },
243
244
245=== modified file 'data/tribes/frisians.lua'
246--- data/tribes/frisians.lua 2018-05-17 11:02:45 +0000
247+++ data/tribes/frisians.lua 2018-09-14 06:31:21 +0000
248@@ -27,6 +27,31 @@
249 },
250 },
251
252+ resource_indicators = {
253+ [""] = {
254+ [0] = "frisians_resi_none",
255+ },
256+ coal = {
257+ [10] = "frisians_resi_coal_1",
258+ [20] = "frisians_resi_coal_2",
259+ },
260+ iron = {
261+ [10] = "frisians_resi_iron_1",
262+ [20] = "frisians_resi_iron_2",
263+ },
264+ gold = {
265+ [10] = "frisians_resi_gold_1",
266+ [20] = "frisians_resi_gold_2",
267+ },
268+ stones = {
269+ [10] = "frisians_resi_stones_1",
270+ [20] = "frisians_resi_stones_2",
271+ },
272+ water = {
273+ [100] = "frisians_resi_water",
274+ },
275+ },
276+
277 -- Wares positions in wares windows.
278 -- This also gives us the information which wares the tribe uses.
279 -- Each subtable is a column in the wares windows.
280@@ -201,16 +226,16 @@
281 "reed_small",
282 "reed_medium",
283 "reed_ripe",
284- "resi_coal1",
285- "resi_coal2",
286- "resi_gold1",
287- "resi_gold2",
288- "resi_iron1",
289- "resi_iron2",
290- "resi_none",
291- "resi_water1",
292- "resi_stones1",
293- "resi_stones2",
294+ "frisians_resi_none",
295+ "frisians_resi_water",
296+ "frisians_resi_coal_1",
297+ "frisians_resi_iron_1",
298+ "frisians_resi_gold_1",
299+ "frisians_resi_stones_1",
300+ "frisians_resi_coal_2",
301+ "frisians_resi_iron_2",
302+ "frisians_resi_gold_2",
303+ "frisians_resi_stones_2",
304 "frisians_shipconstruction",
305 --These non-frisian immovables can be used by bee-keepers
306 "field_medium",
307
308=== added directory 'data/tribes/immovables/resi'
309=== added directory 'data/tribes/immovables/resi/atlanteans'
310=== added file 'data/tribes/immovables/resi/atlanteans/init.lua'
311--- data/tribes/immovables/resi/atlanteans/init.lua 1970-01-01 00:00:00 +0000
312+++ data/tribes/immovables/resi/atlanteans/init.lua 2018-09-14 06:31:21 +0000
313@@ -0,0 +1,230 @@
314+dirname = path.dirname(__file__)
315+
316+tribes:new_immovable_type {
317+ msgctxt = "immovable",
318+ name = "atlanteans_resi_none",
319+ -- TRANSLATORS: This is a resource name used in lists of resources
320+ descname = pgettext("immovable", "Resources: None"),
321+ helptext_script = dirname .. "../helptexts/none.lua",
322+ attributes = { "resi" },
323+ programs = {
324+ program = {
325+ "animate=idle 600000",
326+ "remove="
327+ }
328+ },
329+
330+ animations = {
331+ idle = {
332+ pictures = path.list_files(dirname .. "pics/none_?.png"),
333+ hotspot = {10, 36},
334+ },
335+ }
336+}
337+
338+tribes:new_immovable_type {
339+ msgctxt = "immovable",
340+ name = "atlanteans_resi_water",
341+ -- TRANSLATORS: This is a resource name used in lists of resources
342+ descname = pgettext("immovable", "Resources: Water Vein"),
343+ helptext_script = dirname .. "../helptexts/water.lua",
344+ attributes = { "resi" },
345+ programs = {
346+ program = {
347+ "animate=idle 600000",
348+ "remove="
349+ }
350+ },
351+
352+ animations = {
353+ idle = {
354+ pictures = path.list_files(dirname .. "pics/water_?.png"),
355+ hotspot = {10, 36},
356+ fps = 4,
357+ },
358+ }
359+}
360+
361+tribes:new_immovable_type {
362+ msgctxt = "immovable",
363+ name = "atlanteans_resi_coal_1",
364+ -- TRANSLATORS: This is a resource name used in lists of resources
365+ descname = pgettext("immovable", "Resources: Coal Vein"),
366+ helptext_script = dirname .. "../helptexts/coal_1.lua",
367+ attributes = { "resi" },
368+ programs = {
369+ program = {
370+ "animate=idle 600000",
371+ "remove="
372+ }
373+ },
374+
375+ animations = {
376+ idle = {
377+ pictures = path.list_files(dirname .. "pics/coal_1_?.png"),
378+ hotspot = {10, 36},
379+ fps = 4,
380+ },
381+ }
382+}
383+
384+tribes:new_immovable_type {
385+ msgctxt = "immovable",
386+ name = "atlanteans_resi_gold_1",
387+ -- TRANSLATORS: This is a resource name used in lists of resources
388+ descname = pgettext("immovable", "Resources: Gold Vein"),
389+ helptext_script = dirname .. "../helptexts/gold_1.lua",
390+ attributes = { "resi" },
391+ programs = {
392+ program = {
393+ "animate=idle 600000",
394+ "remove="
395+ }
396+ },
397+
398+ animations = {
399+ idle = {
400+ pictures = path.list_files(dirname .. "pics/gold_1_?.png"),
401+ hotspot = {10, 36},
402+ fps = 4,
403+ },
404+ }
405+}
406+
407+tribes:new_immovable_type {
408+ msgctxt = "immovable",
409+ name = "atlanteans_resi_iron_1",
410+ -- TRANSLATORS: This is a resource name used in lists of resources
411+ descname = pgettext("immovable", "Resources: Iron Vein"),
412+ helptext_script = dirname .. "../helptexts/iron_1.lua",
413+ attributes = { "resi" },
414+ programs = {
415+ program = {
416+ "animate=idle 600000",
417+ "remove="
418+ }
419+ },
420+
421+ animations = {
422+ idle = {
423+ pictures = path.list_files(dirname .. "pics/iron_1_?.png"),
424+ hotspot = {10, 36},
425+ fps = 4,
426+ },
427+ }
428+}
429+
430+tribes:new_immovable_type {
431+ msgctxt = "immovable",
432+ name = "atlanteans_resi_stones_1",
433+ -- TRANSLATORS: This is a resource name used in lists of resources
434+ descname = pgettext("immovable", "Resources: Some Stones"),
435+ helptext_script = dirname .. "../helptexts/stones_1.lua",
436+ attributes = { "resi" },
437+ programs = {
438+ program = {
439+ "animate=idle 600000",
440+ "remove="
441+ }
442+ },
443+
444+ animations = {
445+ idle = {
446+ pictures = path.list_files(dirname .. "pics/stones_1_?.png"),
447+ hotspot = {10, 36},
448+ fps = 4,
449+ },
450+ }
451+}
452+
453+tribes:new_immovable_type {
454+ msgctxt = "immovable",
455+ name = "atlanteans_resi_coal_2",
456+ -- TRANSLATORS: This is a resource name used in lists of resources
457+ descname = pgettext("immovable", "Resources: Main Coal Vein"),
458+ helptext_script = dirname .. "../helptexts/coal_2.lua",
459+ attributes = { "resi" },
460+ programs = {
461+ program = {
462+ "animate=idle 600000",
463+ "remove="
464+ }
465+ },
466+
467+ animations = {
468+ idle = {
469+ pictures = path.list_files(dirname .. "pics/coal_2_?.png"),
470+ hotspot = {10, 36},
471+ fps = 4,
472+ },
473+ }
474+}
475+
476+tribes:new_immovable_type {
477+ msgctxt = "immovable",
478+ name = "atlanteans_resi_gold_2",
479+ -- TRANSLATORS: This is a resource name used in lists of resources
480+ descname = pgettext("immovable", "Resources: Main Gold Vein"),
481+ helptext_script = dirname .. "../helptexts/gold_2.lua",
482+ attributes = { "resi" },
483+ programs = {
484+ program = {
485+ "animate=idle 600000",
486+ "remove="
487+ }
488+ },
489+
490+ animations = {
491+ idle = {
492+ pictures = path.list_files(dirname .. "pics/gold_2_?.png"),
493+ hotspot = {10, 36},
494+ fps = 4,
495+ },
496+ }
497+}
498+
499+tribes:new_immovable_type {
500+ msgctxt = "immovable",
501+ name = "atlanteans_resi_iron_2",
502+ -- TRANSLATORS: This is a resource name used in lists of resources
503+ descname = pgettext("immovable", "Resources: Main Iron Vein"),
504+ helptext_script = dirname .. "../helptexts/iron_2.lua",
505+ attributes = { "resi" },
506+ programs = {
507+ program = {
508+ "animate=idle 600000",
509+ "remove="
510+ }
511+ },
512+
513+ animations = {
514+ idle = {
515+ pictures = path.list_files(dirname .. "pics/iron_2_?.png"),
516+ hotspot = {10, 36},
517+ fps = 4,
518+ },
519+ }
520+}
521+
522+tribes:new_immovable_type {
523+ msgctxt = "immovable",
524+ name = "atlanteans_resi_stones_2",
525+ -- TRANSLATORS: This is a resource name used in lists of resources
526+ descname = pgettext("immovable", "Resources: A Lot of Stones"),
527+ helptext_script = dirname .. "../helptexts/stones_2.lua",
528+ attributes = { "resi" },
529+ programs = {
530+ program = {
531+ "animate=idle 600000",
532+ "remove="
533+ }
534+ },
535+
536+ animations = {
537+ idle = {
538+ pictures = path.list_files(dirname .. "pics/stones_2_?.png"),
539+ hotspot = {10, 36},
540+ fps = 4,
541+ },
542+ }
543+}
544
545=== added directory 'data/tribes/immovables/resi/atlanteans/pics'
546=== added file 'data/tribes/immovables/resi/atlanteans/pics/coal_1_0.png'
547Binary files data/tribes/immovables/resi/atlanteans/pics/coal_1_0.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/atlanteans/pics/coal_1_0.png 2018-09-14 06:31:21 +0000 differ
548=== added file 'data/tribes/immovables/resi/atlanteans/pics/coal_1_1.png'
549Binary files data/tribes/immovables/resi/atlanteans/pics/coal_1_1.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/atlanteans/pics/coal_1_1.png 2018-09-14 06:31:21 +0000 differ
550=== added file 'data/tribes/immovables/resi/atlanteans/pics/coal_1_2.png'
551Binary files data/tribes/immovables/resi/atlanteans/pics/coal_1_2.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/atlanteans/pics/coal_1_2.png 2018-09-14 06:31:21 +0000 differ
552=== added file 'data/tribes/immovables/resi/atlanteans/pics/coal_1_3.png'
553Binary files data/tribes/immovables/resi/atlanteans/pics/coal_1_3.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/atlanteans/pics/coal_1_3.png 2018-09-14 06:31:21 +0000 differ
554=== added file 'data/tribes/immovables/resi/atlanteans/pics/coal_2_0.png'
555Binary files data/tribes/immovables/resi/atlanteans/pics/coal_2_0.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/atlanteans/pics/coal_2_0.png 2018-09-14 06:31:21 +0000 differ
556=== added file 'data/tribes/immovables/resi/atlanteans/pics/coal_2_1.png'
557Binary files data/tribes/immovables/resi/atlanteans/pics/coal_2_1.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/atlanteans/pics/coal_2_1.png 2018-09-14 06:31:21 +0000 differ
558=== added file 'data/tribes/immovables/resi/atlanteans/pics/coal_2_2.png'
559Binary files data/tribes/immovables/resi/atlanteans/pics/coal_2_2.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/atlanteans/pics/coal_2_2.png 2018-09-14 06:31:21 +0000 differ
560=== added file 'data/tribes/immovables/resi/atlanteans/pics/coal_2_3.png'
561Binary files data/tribes/immovables/resi/atlanteans/pics/coal_2_3.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/atlanteans/pics/coal_2_3.png 2018-09-14 06:31:21 +0000 differ
562=== added file 'data/tribes/immovables/resi/atlanteans/pics/gold_1_0.png'
563Binary files data/tribes/immovables/resi/atlanteans/pics/gold_1_0.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/atlanteans/pics/gold_1_0.png 2018-09-14 06:31:21 +0000 differ
564=== added file 'data/tribes/immovables/resi/atlanteans/pics/gold_1_1.png'
565Binary files data/tribes/immovables/resi/atlanteans/pics/gold_1_1.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/atlanteans/pics/gold_1_1.png 2018-09-14 06:31:21 +0000 differ
566=== added file 'data/tribes/immovables/resi/atlanteans/pics/gold_1_2.png'
567Binary files data/tribes/immovables/resi/atlanteans/pics/gold_1_2.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/atlanteans/pics/gold_1_2.png 2018-09-14 06:31:21 +0000 differ
568=== added file 'data/tribes/immovables/resi/atlanteans/pics/gold_1_3.png'
569Binary files data/tribes/immovables/resi/atlanteans/pics/gold_1_3.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/atlanteans/pics/gold_1_3.png 2018-09-14 06:31:21 +0000 differ
570=== added file 'data/tribes/immovables/resi/atlanteans/pics/gold_2_0.png'
571Binary files data/tribes/immovables/resi/atlanteans/pics/gold_2_0.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/atlanteans/pics/gold_2_0.png 2018-09-14 06:31:21 +0000 differ
572=== added file 'data/tribes/immovables/resi/atlanteans/pics/gold_2_1.png'
573Binary files data/tribes/immovables/resi/atlanteans/pics/gold_2_1.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/atlanteans/pics/gold_2_1.png 2018-09-14 06:31:21 +0000 differ
574=== added file 'data/tribes/immovables/resi/atlanteans/pics/gold_2_2.png'
575Binary files data/tribes/immovables/resi/atlanteans/pics/gold_2_2.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/atlanteans/pics/gold_2_2.png 2018-09-14 06:31:21 +0000 differ
576=== added file 'data/tribes/immovables/resi/atlanteans/pics/gold_2_3.png'
577Binary files data/tribes/immovables/resi/atlanteans/pics/gold_2_3.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/atlanteans/pics/gold_2_3.png 2018-09-14 06:31:21 +0000 differ
578=== added file 'data/tribes/immovables/resi/atlanteans/pics/iron_1_0.png'
579Binary files data/tribes/immovables/resi/atlanteans/pics/iron_1_0.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/atlanteans/pics/iron_1_0.png 2018-09-14 06:31:21 +0000 differ
580=== added file 'data/tribes/immovables/resi/atlanteans/pics/iron_1_1.png'
581Binary files data/tribes/immovables/resi/atlanteans/pics/iron_1_1.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/atlanteans/pics/iron_1_1.png 2018-09-14 06:31:21 +0000 differ
582=== added file 'data/tribes/immovables/resi/atlanteans/pics/iron_1_2.png'
583Binary files data/tribes/immovables/resi/atlanteans/pics/iron_1_2.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/atlanteans/pics/iron_1_2.png 2018-09-14 06:31:21 +0000 differ
584=== added file 'data/tribes/immovables/resi/atlanteans/pics/iron_1_3.png'
585Binary files data/tribes/immovables/resi/atlanteans/pics/iron_1_3.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/atlanteans/pics/iron_1_3.png 2018-09-14 06:31:21 +0000 differ
586=== added file 'data/tribes/immovables/resi/atlanteans/pics/iron_2_0.png'
587Binary files data/tribes/immovables/resi/atlanteans/pics/iron_2_0.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/atlanteans/pics/iron_2_0.png 2018-09-14 06:31:21 +0000 differ
588=== added file 'data/tribes/immovables/resi/atlanteans/pics/iron_2_1.png'
589Binary files data/tribes/immovables/resi/atlanteans/pics/iron_2_1.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/atlanteans/pics/iron_2_1.png 2018-09-14 06:31:21 +0000 differ
590=== added file 'data/tribes/immovables/resi/atlanteans/pics/iron_2_2.png'
591Binary files data/tribes/immovables/resi/atlanteans/pics/iron_2_2.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/atlanteans/pics/iron_2_2.png 2018-09-14 06:31:21 +0000 differ
592=== added file 'data/tribes/immovables/resi/atlanteans/pics/iron_2_3.png'
593Binary files data/tribes/immovables/resi/atlanteans/pics/iron_2_3.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/atlanteans/pics/iron_2_3.png 2018-09-14 06:31:21 +0000 differ
594=== added file 'data/tribes/immovables/resi/atlanteans/pics/none_0.png'
595Binary files data/tribes/immovables/resi/atlanteans/pics/none_0.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/atlanteans/pics/none_0.png 2018-09-14 06:31:21 +0000 differ
596=== added file 'data/tribes/immovables/resi/atlanteans/pics/none_1.png'
597Binary files data/tribes/immovables/resi/atlanteans/pics/none_1.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/atlanteans/pics/none_1.png 2018-09-14 06:31:21 +0000 differ
598=== added file 'data/tribes/immovables/resi/atlanteans/pics/none_2.png'
599Binary files data/tribes/immovables/resi/atlanteans/pics/none_2.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/atlanteans/pics/none_2.png 2018-09-14 06:31:21 +0000 differ
600=== added file 'data/tribes/immovables/resi/atlanteans/pics/none_3.png'
601Binary files data/tribes/immovables/resi/atlanteans/pics/none_3.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/atlanteans/pics/none_3.png 2018-09-14 06:31:21 +0000 differ
602=== added file 'data/tribes/immovables/resi/atlanteans/pics/stones_1_0.png'
603Binary files data/tribes/immovables/resi/atlanteans/pics/stones_1_0.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/atlanteans/pics/stones_1_0.png 2018-09-14 06:31:21 +0000 differ
604=== added file 'data/tribes/immovables/resi/atlanteans/pics/stones_1_1.png'
605Binary files data/tribes/immovables/resi/atlanteans/pics/stones_1_1.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/atlanteans/pics/stones_1_1.png 2018-09-14 06:31:21 +0000 differ
606=== added file 'data/tribes/immovables/resi/atlanteans/pics/stones_1_2.png'
607Binary files data/tribes/immovables/resi/atlanteans/pics/stones_1_2.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/atlanteans/pics/stones_1_2.png 2018-09-14 06:31:21 +0000 differ
608=== added file 'data/tribes/immovables/resi/atlanteans/pics/stones_1_3.png'
609Binary files data/tribes/immovables/resi/atlanteans/pics/stones_1_3.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/atlanteans/pics/stones_1_3.png 2018-09-14 06:31:21 +0000 differ
610=== added file 'data/tribes/immovables/resi/atlanteans/pics/stones_2_0.png'
611Binary files data/tribes/immovables/resi/atlanteans/pics/stones_2_0.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/atlanteans/pics/stones_2_0.png 2018-09-14 06:31:21 +0000 differ
612=== added file 'data/tribes/immovables/resi/atlanteans/pics/stones_2_1.png'
613Binary files data/tribes/immovables/resi/atlanteans/pics/stones_2_1.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/atlanteans/pics/stones_2_1.png 2018-09-14 06:31:21 +0000 differ
614=== added file 'data/tribes/immovables/resi/atlanteans/pics/stones_2_2.png'
615Binary files data/tribes/immovables/resi/atlanteans/pics/stones_2_2.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/atlanteans/pics/stones_2_2.png 2018-09-14 06:31:21 +0000 differ
616=== added file 'data/tribes/immovables/resi/atlanteans/pics/stones_2_3.png'
617Binary files data/tribes/immovables/resi/atlanteans/pics/stones_2_3.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/atlanteans/pics/stones_2_3.png 2018-09-14 06:31:21 +0000 differ
618=== added file 'data/tribes/immovables/resi/atlanteans/pics/water_0.png'
619Binary files data/tribes/immovables/resi/atlanteans/pics/water_0.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/atlanteans/pics/water_0.png 2018-09-14 06:31:21 +0000 differ
620=== added file 'data/tribes/immovables/resi/atlanteans/pics/water_1.png'
621Binary files data/tribes/immovables/resi/atlanteans/pics/water_1.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/atlanteans/pics/water_1.png 2018-09-14 06:31:21 +0000 differ
622=== added file 'data/tribes/immovables/resi/atlanteans/pics/water_2.png'
623Binary files data/tribes/immovables/resi/atlanteans/pics/water_2.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/atlanteans/pics/water_2.png 2018-09-14 06:31:21 +0000 differ
624=== added file 'data/tribes/immovables/resi/atlanteans/pics/water_3.png'
625Binary files data/tribes/immovables/resi/atlanteans/pics/water_3.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/atlanteans/pics/water_3.png 2018-09-14 06:31:21 +0000 differ
626=== added directory 'data/tribes/immovables/resi/barbarians'
627=== added file 'data/tribes/immovables/resi/barbarians/init.lua'
628--- data/tribes/immovables/resi/barbarians/init.lua 1970-01-01 00:00:00 +0000
629+++ data/tribes/immovables/resi/barbarians/init.lua 2018-09-14 06:31:21 +0000
630@@ -0,0 +1,221 @@
631+dirname = path.dirname(__file__)
632+
633+tribes:new_immovable_type {
634+ msgctxt = "immovable",
635+ name = "barbarians_resi_none",
636+ -- TRANSLATORS: This is a resource name used in lists of resources
637+ descname = pgettext("immovable", "Resources: None"),
638+ helptext_script = dirname .. "../helptexts/none.lua",
639+ attributes = { "resi" },
640+ programs = {
641+ program = {
642+ "animate=idle 600000",
643+ "remove="
644+ }
645+ },
646+
647+ animations = {
648+ idle = {
649+ pictures = { dirname .. "pics/none.png" },
650+ hotspot = {9, 28},
651+ },
652+ }
653+}
654+
655+tribes:new_immovable_type {
656+ msgctxt = "immovable",
657+ name = "barbarians_resi_water",
658+ -- TRANSLATORS: This is a resource name used in lists of resources
659+ descname = pgettext("immovable", "Resources: Water Vein"),
660+ helptext_script = dirname .. "../helptexts/water.lua",
661+ attributes = { "resi" },
662+ programs = {
663+ program = {
664+ "animate=idle 600000",
665+ "remove="
666+ }
667+ },
668+
669+ animations = {
670+ idle = {
671+ pictures = { dirname .. "pics/water.png" },
672+ hotspot = {9, 28},
673+ },
674+ }
675+}
676+
677+tribes:new_immovable_type {
678+ msgctxt = "immovable",
679+ name = "barbarians_resi_coal_1",
680+ -- TRANSLATORS: This is a resource name used in lists of resources
681+ descname = pgettext("immovable", "Resources: Coal Vein"),
682+ helptext_script = dirname .. "../helptexts/coal_1.lua",
683+ attributes = { "resi" },
684+ programs = {
685+ program = {
686+ "animate=idle 600000",
687+ "remove="
688+ }
689+ },
690+
691+ animations = {
692+ idle = {
693+ pictures = { dirname .. "pics/coal_1.png" },
694+ hotspot = {9, 28},
695+ },
696+ }
697+}
698+
699+tribes:new_immovable_type {
700+ msgctxt = "immovable",
701+ name = "barbarians_resi_gold_1",
702+ -- TRANSLATORS: This is a resource name used in lists of resources
703+ descname = pgettext("immovable", "Resources: Gold Vein"),
704+ helptext_script = dirname .. "../helptexts/gold_1.lua",
705+ attributes = { "resi" },
706+ programs = {
707+ program = {
708+ "animate=idle 600000",
709+ "remove="
710+ }
711+ },
712+
713+ animations = {
714+ idle = {
715+ pictures = { dirname .. "pics/gold_1.png" },
716+ hotspot = {9, 28},
717+ },
718+ }
719+}
720+
721+tribes:new_immovable_type {
722+ msgctxt = "immovable",
723+ name = "barbarians_resi_iron_1",
724+ -- TRANSLATORS: This is a resource name used in lists of resources
725+ descname = pgettext("immovable", "Resources: Iron Vein"),
726+ helptext_script = dirname .. "../helptexts/iron_1.lua",
727+ attributes = { "resi" },
728+ programs = {
729+ program = {
730+ "animate=idle 600000",
731+ "remove="
732+ }
733+ },
734+
735+ animations = {
736+ idle = {
737+ pictures = { dirname .. "pics/iron_1.png" },
738+ hotspot = {9, 28},
739+ },
740+ }
741+}
742+
743+tribes:new_immovable_type {
744+ msgctxt = "immovable",
745+ name = "barbarians_resi_stones_1",
746+ -- TRANSLATORS: This is a resource name used in lists of resources
747+ descname = pgettext("immovable", "Resources: Some Stones"),
748+ helptext_script = dirname .. "../helptexts/stones_1.lua",
749+ attributes = { "resi" },
750+ programs = {
751+ program = {
752+ "animate=idle 600000",
753+ "remove="
754+ }
755+ },
756+
757+ animations = {
758+ idle = {
759+ pictures = { dirname .. "pics/stones_1.png" },
760+ hotspot = {9, 28},
761+ },
762+ }
763+}
764+
765+tribes:new_immovable_type {
766+ msgctxt = "immovable",
767+ name = "barbarians_resi_coal_2",
768+ -- TRANSLATORS: This is a resource name used in lists of resources
769+ descname = pgettext("immovable", "Resources: Main Coal Vein"),
770+ helptext_script = dirname .. "../helptexts/coal_2.lua",
771+ attributes = { "resi" },
772+ programs = {
773+ program = {
774+ "animate=idle 600000",
775+ "remove="
776+ }
777+ },
778+
779+ animations = {
780+ idle = {
781+ pictures = { dirname .. "pics/coal_2.png" },
782+ hotspot = {9, 28},
783+ },
784+ }
785+}
786+
787+tribes:new_immovable_type {
788+ msgctxt = "immovable",
789+ name = "barbarians_resi_gold_2",
790+ -- TRANSLATORS: This is a resource name used in lists of resources
791+ descname = pgettext("immovable", "Resources: Main Gold Vein"),
792+ helptext_script = dirname .. "../helptexts/gold_2.lua",
793+ attributes = { "resi" },
794+ programs = {
795+ program = {
796+ "animate=idle 600000",
797+ "remove="
798+ }
799+ },
800+
801+ animations = {
802+ idle = {
803+ pictures = { dirname .. "pics/gold_2.png" },
804+ hotspot = {9, 28},
805+ },
806+ }
807+}
808+
809+tribes:new_immovable_type {
810+ msgctxt = "immovable",
811+ name = "barbarians_resi_iron_2",
812+ -- TRANSLATORS: This is a resource name used in lists of resources
813+ descname = pgettext("immovable", "Resources: Main Iron Vein"),
814+ helptext_script = dirname .. "../helptexts/iron_2.lua",
815+ attributes = { "resi" },
816+ programs = {
817+ program = {
818+ "animate=idle 600000",
819+ "remove="
820+ }
821+ },
822+
823+ animations = {
824+ idle = {
825+ pictures = { dirname .. "pics/iron_2.png" },
826+ hotspot = {9, 28},
827+ },
828+ }
829+}
830+
831+tribes:new_immovable_type {
832+ msgctxt = "immovable",
833+ name = "barbarians_resi_stones_2",
834+ -- TRANSLATORS: This is a resource name used in lists of resources
835+ descname = pgettext("immovable", "Resources: A Lot of Stones"),
836+ helptext_script = dirname .. "../helptexts/stones_2.lua",
837+ attributes = { "resi" },
838+ programs = {
839+ program = {
840+ "animate=idle 600000",
841+ "remove="
842+ }
843+ },
844+
845+ animations = {
846+ idle = {
847+ pictures = { dirname .. "pics/stones_2.png" },
848+ hotspot = {9, 28},
849+ },
850+ }
851+}
852
853=== added directory 'data/tribes/immovables/resi/barbarians/pics'
854=== added file 'data/tribes/immovables/resi/barbarians/pics/coal_1.png'
855Binary files data/tribes/immovables/resi/barbarians/pics/coal_1.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/barbarians/pics/coal_1.png 2018-09-14 06:31:21 +0000 differ
856=== added file 'data/tribes/immovables/resi/barbarians/pics/coal_2.png'
857Binary files data/tribes/immovables/resi/barbarians/pics/coal_2.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/barbarians/pics/coal_2.png 2018-09-14 06:31:21 +0000 differ
858=== added file 'data/tribes/immovables/resi/barbarians/pics/gold_1.png'
859Binary files data/tribes/immovables/resi/barbarians/pics/gold_1.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/barbarians/pics/gold_1.png 2018-09-14 06:31:21 +0000 differ
860=== added file 'data/tribes/immovables/resi/barbarians/pics/gold_2.png'
861Binary files data/tribes/immovables/resi/barbarians/pics/gold_2.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/barbarians/pics/gold_2.png 2018-09-14 06:31:21 +0000 differ
862=== added file 'data/tribes/immovables/resi/barbarians/pics/iron_1.png'
863Binary files data/tribes/immovables/resi/barbarians/pics/iron_1.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/barbarians/pics/iron_1.png 2018-09-14 06:31:21 +0000 differ
864=== added file 'data/tribes/immovables/resi/barbarians/pics/iron_2.png'
865Binary files data/tribes/immovables/resi/barbarians/pics/iron_2.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/barbarians/pics/iron_2.png 2018-09-14 06:31:21 +0000 differ
866=== added file 'data/tribes/immovables/resi/barbarians/pics/none.png'
867Binary files data/tribes/immovables/resi/barbarians/pics/none.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/barbarians/pics/none.png 2018-09-14 06:31:21 +0000 differ
868=== added file 'data/tribes/immovables/resi/barbarians/pics/stones_1.png'
869Binary files data/tribes/immovables/resi/barbarians/pics/stones_1.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/barbarians/pics/stones_1.png 2018-09-14 06:31:21 +0000 differ
870=== added file 'data/tribes/immovables/resi/barbarians/pics/stones_2.png'
871Binary files data/tribes/immovables/resi/barbarians/pics/stones_2.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/barbarians/pics/stones_2.png 2018-09-14 06:31:21 +0000 differ
872=== added file 'data/tribes/immovables/resi/barbarians/pics/water.png'
873Binary files data/tribes/immovables/resi/barbarians/pics/water.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/barbarians/pics/water.png 2018-09-14 06:31:21 +0000 differ
874=== added directory 'data/tribes/immovables/resi/empire'
875=== added file 'data/tribes/immovables/resi/empire/init.lua'
876--- data/tribes/immovables/resi/empire/init.lua 1970-01-01 00:00:00 +0000
877+++ data/tribes/immovables/resi/empire/init.lua 2018-09-14 06:31:21 +0000
878@@ -0,0 +1,221 @@
879+dirname = path.dirname(__file__)
880+
881+tribes:new_immovable_type {
882+ msgctxt = "immovable",
883+ name = "empire_resi_none",
884+ -- TRANSLATORS: This is a resource name used in lists of resources
885+ descname = pgettext("immovable", "Resources: None"),
886+ helptext_script = dirname .. "../helptexts/none.lua",
887+ attributes = { "resi" },
888+ programs = {
889+ program = {
890+ "animate=idle 600000",
891+ "remove="
892+ }
893+ },
894+
895+ animations = {
896+ idle = {
897+ pictures = { dirname .. "pics/none.png" },
898+ hotspot = {8, 22},
899+ },
900+ }
901+}
902+
903+tribes:new_immovable_type {
904+ msgctxt = "immovable",
905+ name = "empire_resi_water",
906+ -- TRANSLATORS: This is a resource name used in lists of resources
907+ descname = pgettext("immovable", "Resources: Water Vein"),
908+ helptext_script = dirname .. "../helptexts/water.lua",
909+ attributes = { "resi" },
910+ programs = {
911+ program = {
912+ "animate=idle 600000",
913+ "remove="
914+ }
915+ },
916+
917+ animations = {
918+ idle = {
919+ pictures = { dirname .. "pics/water.png" },
920+ hotspot = {8, 22},
921+ },
922+ }
923+}
924+
925+tribes:new_immovable_type {
926+ msgctxt = "immovable",
927+ name = "empire_resi_coal_1",
928+ -- TRANSLATORS: This is a resource name used in lists of resources
929+ descname = pgettext("immovable", "Resources: Coal Vein"),
930+ helptext_script = dirname .. "../helptexts/coal_1.lua",
931+ attributes = { "resi" },
932+ programs = {
933+ program = {
934+ "animate=idle 600000",
935+ "remove="
936+ }
937+ },
938+
939+ animations = {
940+ idle = {
941+ pictures = { dirname .. "pics/coal_1.png" },
942+ hotspot = {8, 22},
943+ },
944+ }
945+}
946+
947+tribes:new_immovable_type {
948+ msgctxt = "immovable",
949+ name = "empire_resi_gold_1",
950+ -- TRANSLATORS: This is a resource name used in lists of resources
951+ descname = pgettext("immovable", "Resources: Gold Vein"),
952+ helptext_script = dirname .. "../helptexts/gold_1.lua",
953+ attributes = { "resi" },
954+ programs = {
955+ program = {
956+ "animate=idle 600000",
957+ "remove="
958+ }
959+ },
960+
961+ animations = {
962+ idle = {
963+ pictures = { dirname .. "pics/gold_1.png" },
964+ hotspot = {8, 22},
965+ },
966+ }
967+}
968+
969+tribes:new_immovable_type {
970+ msgctxt = "immovable",
971+ name = "empire_resi_iron_1",
972+ -- TRANSLATORS: This is a resource name used in lists of resources
973+ descname = pgettext("immovable", "Resources: Iron Vein"),
974+ helptext_script = dirname .. "../helptexts/iron_1.lua",
975+ attributes = { "resi" },
976+ programs = {
977+ program = {
978+ "animate=idle 600000",
979+ "remove="
980+ }
981+ },
982+
983+ animations = {
984+ idle = {
985+ pictures = { dirname .. "pics/iron_1.png" },
986+ hotspot = {8, 22},
987+ },
988+ }
989+}
990+
991+tribes:new_immovable_type {
992+ msgctxt = "immovable",
993+ name = "empire_resi_stones_1",
994+ -- TRANSLATORS: This is a resource name used in lists of resources
995+ descname = pgettext("immovable", "Resources: Some Stones"),
996+ helptext_script = dirname .. "../helptexts/stones_1.lua",
997+ attributes = { "resi" },
998+ programs = {
999+ program = {
1000+ "animate=idle 600000",
1001+ "remove="
1002+ }
1003+ },
1004+
1005+ animations = {
1006+ idle = {
1007+ pictures = { dirname .. "pics/stones_1.png" },
1008+ hotspot = {8, 22},
1009+ },
1010+ }
1011+}
1012+
1013+tribes:new_immovable_type {
1014+ msgctxt = "immovable",
1015+ name = "empire_resi_coal_2",
1016+ -- TRANSLATORS: This is a resource name used in lists of resources
1017+ descname = pgettext("immovable", "Resources: Main Coal Vein"),
1018+ helptext_script = dirname .. "../helptexts/coal_2.lua",
1019+ attributes = { "resi" },
1020+ programs = {
1021+ program = {
1022+ "animate=idle 600000",
1023+ "remove="
1024+ }
1025+ },
1026+
1027+ animations = {
1028+ idle = {
1029+ pictures = { dirname .. "pics/coal_2.png" },
1030+ hotspot = {8, 22},
1031+ },
1032+ }
1033+}
1034+
1035+tribes:new_immovable_type {
1036+ msgctxt = "immovable",
1037+ name = "empire_resi_gold_2",
1038+ -- TRANSLATORS: This is a resource name used in lists of resources
1039+ descname = pgettext("immovable", "Resources: Main Gold Vein"),
1040+ helptext_script = dirname .. "../helptexts/gold_2.lua",
1041+ attributes = { "resi" },
1042+ programs = {
1043+ program = {
1044+ "animate=idle 600000",
1045+ "remove="
1046+ }
1047+ },
1048+
1049+ animations = {
1050+ idle = {
1051+ pictures = { dirname .. "pics/gold_2.png" },
1052+ hotspot = {8, 22},
1053+ },
1054+ }
1055+}
1056+
1057+tribes:new_immovable_type {
1058+ msgctxt = "immovable",
1059+ name = "empire_resi_iron_2",
1060+ -- TRANSLATORS: This is a resource name used in lists of resources
1061+ descname = pgettext("immovable", "Resources: Main Iron Vein"),
1062+ helptext_script = dirname .. "../helptexts/iron_2.lua",
1063+ attributes = { "resi" },
1064+ programs = {
1065+ program = {
1066+ "animate=idle 600000",
1067+ "remove="
1068+ }
1069+ },
1070+
1071+ animations = {
1072+ idle = {
1073+ pictures = { dirname .. "pics/iron_2.png" },
1074+ hotspot = {8, 22},
1075+ },
1076+ }
1077+}
1078+
1079+tribes:new_immovable_type {
1080+ msgctxt = "immovable",
1081+ name = "empire_resi_stones_2",
1082+ -- TRANSLATORS: This is a resource name used in lists of resources
1083+ descname = pgettext("immovable", "Resources: A Lot of Stones"),
1084+ helptext_script = dirname .. "../helptexts/stones_2.lua",
1085+ attributes = { "resi" },
1086+ programs = {
1087+ program = {
1088+ "animate=idle 600000",
1089+ "remove="
1090+ }
1091+ },
1092+
1093+ animations = {
1094+ idle = {
1095+ pictures = { dirname .. "pics/stones_2.png" },
1096+ hotspot = {8, 22},
1097+ },
1098+ }
1099+}
1100
1101=== added directory 'data/tribes/immovables/resi/empire/pics'
1102=== added file 'data/tribes/immovables/resi/empire/pics/coal_1.png'
1103Binary files data/tribes/immovables/resi/empire/pics/coal_1.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/empire/pics/coal_1.png 2018-09-14 06:31:21 +0000 differ
1104=== added file 'data/tribes/immovables/resi/empire/pics/coal_2.png'
1105Binary files data/tribes/immovables/resi/empire/pics/coal_2.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/empire/pics/coal_2.png 2018-09-14 06:31:21 +0000 differ
1106=== added file 'data/tribes/immovables/resi/empire/pics/gold_1.png'
1107Binary files data/tribes/immovables/resi/empire/pics/gold_1.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/empire/pics/gold_1.png 2018-09-14 06:31:21 +0000 differ
1108=== added file 'data/tribes/immovables/resi/empire/pics/gold_2.png'
1109Binary files data/tribes/immovables/resi/empire/pics/gold_2.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/empire/pics/gold_2.png 2018-09-14 06:31:21 +0000 differ
1110=== added file 'data/tribes/immovables/resi/empire/pics/iron_1.png'
1111Binary files data/tribes/immovables/resi/empire/pics/iron_1.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/empire/pics/iron_1.png 2018-09-14 06:31:21 +0000 differ
1112=== added file 'data/tribes/immovables/resi/empire/pics/iron_2.png'
1113Binary files data/tribes/immovables/resi/empire/pics/iron_2.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/empire/pics/iron_2.png 2018-09-14 06:31:21 +0000 differ
1114=== added file 'data/tribes/immovables/resi/empire/pics/none.png'
1115Binary files data/tribes/immovables/resi/empire/pics/none.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/empire/pics/none.png 2018-09-14 06:31:21 +0000 differ
1116=== added file 'data/tribes/immovables/resi/empire/pics/stones_1.png'
1117Binary files data/tribes/immovables/resi/empire/pics/stones_1.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/empire/pics/stones_1.png 2018-09-14 06:31:21 +0000 differ
1118=== added file 'data/tribes/immovables/resi/empire/pics/stones_2.png'
1119Binary files data/tribes/immovables/resi/empire/pics/stones_2.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/empire/pics/stones_2.png 2018-09-14 06:31:21 +0000 differ
1120=== added file 'data/tribes/immovables/resi/empire/pics/water.png'
1121Binary files data/tribes/immovables/resi/empire/pics/water.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/empire/pics/water.png 2018-09-14 06:31:21 +0000 differ
1122=== added directory 'data/tribes/immovables/resi/frisians'
1123=== added file 'data/tribes/immovables/resi/frisians/init.lua'
1124--- data/tribes/immovables/resi/frisians/init.lua 1970-01-01 00:00:00 +0000
1125+++ data/tribes/immovables/resi/frisians/init.lua 2018-09-14 06:31:21 +0000
1126@@ -0,0 +1,230 @@
1127+dirname = path.dirname(__file__)
1128+
1129+tribes:new_immovable_type {
1130+ msgctxt = "immovable",
1131+ name = "frisians_resi_none",
1132+ -- TRANSLATORS: This is a resource name used in lists of resources
1133+ descname = pgettext("immovable", "Resources: None"),
1134+ helptext_script = dirname .. "../helptexts/none.lua",
1135+ attributes = { "resi" },
1136+ programs = {
1137+ program = {
1138+ "animate=idle 600000",
1139+ "remove="
1140+ }
1141+ },
1142+
1143+ animations = {
1144+ idle = {
1145+ pictures = { dirname .. "pics/none.png" },
1146+ hotspot = {2, 49},
1147+ },
1148+ }
1149+}
1150+
1151+tribes:new_immovable_type {
1152+ msgctxt = "immovable",
1153+ name = "frisians_resi_water",
1154+ -- TRANSLATORS: This is a resource name used in lists of resources
1155+ descname = pgettext("immovable", "Resources: Water Vein"),
1156+ helptext_script = dirname .. "../helptexts/water.lua",
1157+ attributes = { "resi" },
1158+ programs = {
1159+ program = {
1160+ "animate=idle 600000",
1161+ "remove="
1162+ }
1163+ },
1164+
1165+ animations = {
1166+ idle = {
1167+ pictures = path.list_files(dirname .. "pics/water_?.png"),
1168+ hotspot = {2, 49},
1169+ fps = 4,
1170+ },
1171+ }
1172+}
1173+
1174+tribes:new_immovable_type {
1175+ msgctxt = "immovable",
1176+ name = "frisians_resi_coal_1",
1177+ -- TRANSLATORS: This is a resource name used in lists of resources
1178+ descname = pgettext("immovable", "Resources: Coal Vein"),
1179+ helptext_script = dirname .. "../helptexts/coal_1.lua",
1180+ attributes = { "resi" },
1181+ programs = {
1182+ program = {
1183+ "animate=idle 600000",
1184+ "remove="
1185+ }
1186+ },
1187+
1188+ animations = {
1189+ idle = {
1190+ pictures = path.list_files(dirname .. "pics/coal_1_?.png"),
1191+ hotspot = {2, 49},
1192+ fps = 4,
1193+ },
1194+ }
1195+}
1196+
1197+tribes:new_immovable_type {
1198+ msgctxt = "immovable",
1199+ name = "frisians_resi_gold_1",
1200+ -- TRANSLATORS: This is a resource name used in lists of resources
1201+ descname = pgettext("immovable", "Resources: Gold Vein"),
1202+ helptext_script = dirname .. "../helptexts/gold_1.lua",
1203+ attributes = { "resi" },
1204+ programs = {
1205+ program = {
1206+ "animate=idle 600000",
1207+ "remove="
1208+ }
1209+ },
1210+
1211+ animations = {
1212+ idle = {
1213+ pictures = path.list_files(dirname .. "pics/gold_1_?.png"),
1214+ hotspot = {2, 49},
1215+ fps = 4,
1216+ },
1217+ }
1218+}
1219+
1220+tribes:new_immovable_type {
1221+ msgctxt = "immovable",
1222+ name = "frisians_resi_iron_1",
1223+ -- TRANSLATORS: This is a resource name used in lists of resources
1224+ descname = pgettext("immovable", "Resources: Iron Vein"),
1225+ helptext_script = dirname .. "../helptexts/iron_1.lua",
1226+ attributes = { "resi" },
1227+ programs = {
1228+ program = {
1229+ "animate=idle 600000",
1230+ "remove="
1231+ }
1232+ },
1233+
1234+ animations = {
1235+ idle = {
1236+ pictures = path.list_files(dirname .. "pics/iron_1_?.png"),
1237+ hotspot = {2, 49},
1238+ fps = 4,
1239+ },
1240+ }
1241+}
1242+
1243+tribes:new_immovable_type {
1244+ msgctxt = "immovable",
1245+ name = "frisians_resi_stones_1",
1246+ -- TRANSLATORS: This is a resource name used in lists of resources
1247+ descname = pgettext("immovable", "Resources: Some Stones"),
1248+ helptext_script = dirname .. "../helptexts/stones_1.lua",
1249+ attributes = { "resi" },
1250+ programs = {
1251+ program = {
1252+ "animate=idle 600000",
1253+ "remove="
1254+ }
1255+ },
1256+
1257+ animations = {
1258+ idle = {
1259+ pictures = path.list_files(dirname .. "pics/stones_1_?.png"),
1260+ hotspot = {2, 49},
1261+ fps = 4,
1262+ },
1263+ }
1264+}
1265+
1266+tribes:new_immovable_type {
1267+ msgctxt = "immovable",
1268+ name = "frisians_resi_coal_2",
1269+ -- TRANSLATORS: This is a resource name used in lists of resources
1270+ descname = pgettext("immovable", "Resources: Main Coal Vein"),
1271+ helptext_script = dirname .. "../helptexts/coal_2.lua",
1272+ attributes = { "resi" },
1273+ programs = {
1274+ program = {
1275+ "animate=idle 600000",
1276+ "remove="
1277+ }
1278+ },
1279+
1280+ animations = {
1281+ idle = {
1282+ pictures = path.list_files(dirname .. "pics/coal_2_?.png"),
1283+ hotspot = {2, 49},
1284+ fps = 4,
1285+ },
1286+ }
1287+}
1288+
1289+tribes:new_immovable_type {
1290+ msgctxt = "immovable",
1291+ name = "frisians_resi_gold_2",
1292+ -- TRANSLATORS: This is a resource name used in lists of resources
1293+ descname = pgettext("immovable", "Resources: Main Gold Vein"),
1294+ helptext_script = dirname .. "../helptexts/gold_2.lua",
1295+ attributes = { "resi" },
1296+ programs = {
1297+ program = {
1298+ "animate=idle 600000",
1299+ "remove="
1300+ }
1301+ },
1302+
1303+ animations = {
1304+ idle = {
1305+ pictures = path.list_files(dirname .. "pics/gold_2_?.png"),
1306+ hotspot = {2, 49},
1307+ fps = 4,
1308+ },
1309+ }
1310+}
1311+
1312+tribes:new_immovable_type {
1313+ msgctxt = "immovable",
1314+ name = "frisians_resi_iron_2",
1315+ -- TRANSLATORS: This is a resource name used in lists of resources
1316+ descname = pgettext("immovable", "Resources: Main Iron Vein"),
1317+ helptext_script = dirname .. "../helptexts/iron_2.lua",
1318+ attributes = { "resi" },
1319+ programs = {
1320+ program = {
1321+ "animate=idle 600000",
1322+ "remove="
1323+ }
1324+ },
1325+
1326+ animations = {
1327+ idle = {
1328+ pictures = path.list_files(dirname .. "pics/iron_2_?.png"),
1329+ hotspot = {2, 49},
1330+ fps = 4,
1331+ },
1332+ }
1333+}
1334+
1335+tribes:new_immovable_type {
1336+ msgctxt = "immovable",
1337+ name = "frisians_resi_stones_2",
1338+ -- TRANSLATORS: This is a resource name used in lists of resources
1339+ descname = pgettext("immovable", "Resources: A Lot of Stones"),
1340+ helptext_script = dirname .. "../helptexts/stones_2.lua",
1341+ attributes = { "resi" },
1342+ programs = {
1343+ program = {
1344+ "animate=idle 600000",
1345+ "remove="
1346+ }
1347+ },
1348+
1349+ animations = {
1350+ idle = {
1351+ pictures = path.list_files(dirname .. "pics/stones_2_?.png"),
1352+ hotspot = {2, 49},
1353+ fps = 4,
1354+ },
1355+ }
1356+}
1357
1358=== added directory 'data/tribes/immovables/resi/frisians/pics'
1359=== added file 'data/tribes/immovables/resi/frisians/pics/coal_1_0.png'
1360Binary files data/tribes/immovables/resi/frisians/pics/coal_1_0.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/frisians/pics/coal_1_0.png 2018-09-14 06:31:21 +0000 differ
1361=== added file 'data/tribes/immovables/resi/frisians/pics/coal_1_1.png'
1362Binary files data/tribes/immovables/resi/frisians/pics/coal_1_1.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/frisians/pics/coal_1_1.png 2018-09-14 06:31:21 +0000 differ
1363=== added file 'data/tribes/immovables/resi/frisians/pics/coal_1_2.png'
1364Binary files data/tribes/immovables/resi/frisians/pics/coal_1_2.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/frisians/pics/coal_1_2.png 2018-09-14 06:31:21 +0000 differ
1365=== added file 'data/tribes/immovables/resi/frisians/pics/coal_1_3.png'
1366Binary files data/tribes/immovables/resi/frisians/pics/coal_1_3.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/frisians/pics/coal_1_3.png 2018-09-14 06:31:21 +0000 differ
1367=== added file 'data/tribes/immovables/resi/frisians/pics/coal_2_0.png'
1368Binary files data/tribes/immovables/resi/frisians/pics/coal_2_0.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/frisians/pics/coal_2_0.png 2018-09-14 06:31:21 +0000 differ
1369=== added file 'data/tribes/immovables/resi/frisians/pics/coal_2_1.png'
1370Binary files data/tribes/immovables/resi/frisians/pics/coal_2_1.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/frisians/pics/coal_2_1.png 2018-09-14 06:31:21 +0000 differ
1371=== added file 'data/tribes/immovables/resi/frisians/pics/coal_2_2.png'
1372Binary files data/tribes/immovables/resi/frisians/pics/coal_2_2.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/frisians/pics/coal_2_2.png 2018-09-14 06:31:21 +0000 differ
1373=== added file 'data/tribes/immovables/resi/frisians/pics/coal_2_3.png'
1374Binary files data/tribes/immovables/resi/frisians/pics/coal_2_3.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/frisians/pics/coal_2_3.png 2018-09-14 06:31:21 +0000 differ
1375=== added file 'data/tribes/immovables/resi/frisians/pics/gold_1_0.png'
1376Binary files data/tribes/immovables/resi/frisians/pics/gold_1_0.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/frisians/pics/gold_1_0.png 2018-09-14 06:31:21 +0000 differ
1377=== added file 'data/tribes/immovables/resi/frisians/pics/gold_1_1.png'
1378Binary files data/tribes/immovables/resi/frisians/pics/gold_1_1.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/frisians/pics/gold_1_1.png 2018-09-14 06:31:21 +0000 differ
1379=== added file 'data/tribes/immovables/resi/frisians/pics/gold_1_2.png'
1380Binary files data/tribes/immovables/resi/frisians/pics/gold_1_2.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/frisians/pics/gold_1_2.png 2018-09-14 06:31:21 +0000 differ
1381=== added file 'data/tribes/immovables/resi/frisians/pics/gold_1_3.png'
1382Binary files data/tribes/immovables/resi/frisians/pics/gold_1_3.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/frisians/pics/gold_1_3.png 2018-09-14 06:31:21 +0000 differ
1383=== added file 'data/tribes/immovables/resi/frisians/pics/gold_2_0.png'
1384Binary files data/tribes/immovables/resi/frisians/pics/gold_2_0.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/frisians/pics/gold_2_0.png 2018-09-14 06:31:21 +0000 differ
1385=== added file 'data/tribes/immovables/resi/frisians/pics/gold_2_1.png'
1386Binary files data/tribes/immovables/resi/frisians/pics/gold_2_1.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/frisians/pics/gold_2_1.png 2018-09-14 06:31:21 +0000 differ
1387=== added file 'data/tribes/immovables/resi/frisians/pics/gold_2_2.png'
1388Binary files data/tribes/immovables/resi/frisians/pics/gold_2_2.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/frisians/pics/gold_2_2.png 2018-09-14 06:31:21 +0000 differ
1389=== added file 'data/tribes/immovables/resi/frisians/pics/gold_2_3.png'
1390Binary files data/tribes/immovables/resi/frisians/pics/gold_2_3.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/frisians/pics/gold_2_3.png 2018-09-14 06:31:21 +0000 differ
1391=== added file 'data/tribes/immovables/resi/frisians/pics/iron_1_0.png'
1392Binary files data/tribes/immovables/resi/frisians/pics/iron_1_0.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/frisians/pics/iron_1_0.png 2018-09-14 06:31:21 +0000 differ
1393=== added file 'data/tribes/immovables/resi/frisians/pics/iron_1_1.png'
1394Binary files data/tribes/immovables/resi/frisians/pics/iron_1_1.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/frisians/pics/iron_1_1.png 2018-09-14 06:31:21 +0000 differ
1395=== added file 'data/tribes/immovables/resi/frisians/pics/iron_1_2.png'
1396Binary files data/tribes/immovables/resi/frisians/pics/iron_1_2.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/frisians/pics/iron_1_2.png 2018-09-14 06:31:21 +0000 differ
1397=== added file 'data/tribes/immovables/resi/frisians/pics/iron_1_3.png'
1398Binary files data/tribes/immovables/resi/frisians/pics/iron_1_3.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/frisians/pics/iron_1_3.png 2018-09-14 06:31:21 +0000 differ
1399=== added file 'data/tribes/immovables/resi/frisians/pics/iron_2_0.png'
1400Binary files data/tribes/immovables/resi/frisians/pics/iron_2_0.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/frisians/pics/iron_2_0.png 2018-09-14 06:31:21 +0000 differ
1401=== added file 'data/tribes/immovables/resi/frisians/pics/iron_2_1.png'
1402Binary files data/tribes/immovables/resi/frisians/pics/iron_2_1.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/frisians/pics/iron_2_1.png 2018-09-14 06:31:21 +0000 differ
1403=== added file 'data/tribes/immovables/resi/frisians/pics/iron_2_2.png'
1404Binary files data/tribes/immovables/resi/frisians/pics/iron_2_2.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/frisians/pics/iron_2_2.png 2018-09-14 06:31:21 +0000 differ
1405=== added file 'data/tribes/immovables/resi/frisians/pics/iron_2_3.png'
1406Binary files data/tribes/immovables/resi/frisians/pics/iron_2_3.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/frisians/pics/iron_2_3.png 2018-09-14 06:31:21 +0000 differ
1407=== added file 'data/tribes/immovables/resi/frisians/pics/none.png'
1408Binary files data/tribes/immovables/resi/frisians/pics/none.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/frisians/pics/none.png 2018-09-14 06:31:21 +0000 differ
1409=== added file 'data/tribes/immovables/resi/frisians/pics/stones_1_0.png'
1410Binary files data/tribes/immovables/resi/frisians/pics/stones_1_0.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/frisians/pics/stones_1_0.png 2018-09-14 06:31:21 +0000 differ
1411=== added file 'data/tribes/immovables/resi/frisians/pics/stones_1_1.png'
1412Binary files data/tribes/immovables/resi/frisians/pics/stones_1_1.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/frisians/pics/stones_1_1.png 2018-09-14 06:31:21 +0000 differ
1413=== added file 'data/tribes/immovables/resi/frisians/pics/stones_1_2.png'
1414Binary files data/tribes/immovables/resi/frisians/pics/stones_1_2.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/frisians/pics/stones_1_2.png 2018-09-14 06:31:21 +0000 differ
1415=== added file 'data/tribes/immovables/resi/frisians/pics/stones_1_3.png'
1416Binary files data/tribes/immovables/resi/frisians/pics/stones_1_3.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/frisians/pics/stones_1_3.png 2018-09-14 06:31:21 +0000 differ
1417=== added file 'data/tribes/immovables/resi/frisians/pics/stones_2_0.png'
1418Binary files data/tribes/immovables/resi/frisians/pics/stones_2_0.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/frisians/pics/stones_2_0.png 2018-09-14 06:31:21 +0000 differ
1419=== added file 'data/tribes/immovables/resi/frisians/pics/stones_2_1.png'
1420Binary files data/tribes/immovables/resi/frisians/pics/stones_2_1.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/frisians/pics/stones_2_1.png 2018-09-14 06:31:21 +0000 differ
1421=== added file 'data/tribes/immovables/resi/frisians/pics/stones_2_2.png'
1422Binary files data/tribes/immovables/resi/frisians/pics/stones_2_2.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/frisians/pics/stones_2_2.png 2018-09-14 06:31:21 +0000 differ
1423=== added file 'data/tribes/immovables/resi/frisians/pics/stones_2_3.png'
1424Binary files data/tribes/immovables/resi/frisians/pics/stones_2_3.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/frisians/pics/stones_2_3.png 2018-09-14 06:31:21 +0000 differ
1425=== added file 'data/tribes/immovables/resi/frisians/pics/water_0.png'
1426Binary files data/tribes/immovables/resi/frisians/pics/water_0.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/frisians/pics/water_0.png 2018-09-14 06:31:21 +0000 differ
1427=== added file 'data/tribes/immovables/resi/frisians/pics/water_1.png'
1428Binary files data/tribes/immovables/resi/frisians/pics/water_1.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/frisians/pics/water_1.png 2018-09-14 06:31:21 +0000 differ
1429=== added file 'data/tribes/immovables/resi/frisians/pics/water_2.png'
1430Binary files data/tribes/immovables/resi/frisians/pics/water_2.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/frisians/pics/water_2.png 2018-09-14 06:31:21 +0000 differ
1431=== added file 'data/tribes/immovables/resi/frisians/pics/water_3.png'
1432Binary files data/tribes/immovables/resi/frisians/pics/water_3.png 1970-01-01 00:00:00 +0000 and data/tribes/immovables/resi/frisians/pics/water_3.png 2018-09-14 06:31:21 +0000 differ
1433=== added directory 'data/tribes/immovables/resi/helptexts'
1434=== added file 'data/tribes/immovables/resi/helptexts/coal_1.lua'
1435--- data/tribes/immovables/resi/helptexts/coal_1.lua 1970-01-01 00:00:00 +0000
1436+++ data/tribes/immovables/resi/helptexts/coal_1.lua 2018-09-14 06:31:21 +0000
1437@@ -0,0 +1,17 @@
1438+function immovable_helptext(tribe)
1439+ local helptext = {
1440+ default = pgettext("sentence_separator", "%s %s"):bformat(
1441+ -- TRANSLATORS: Helptext for a resource: Coal
1442+ _("Coal veins contain coal that can be dug up by coal mines."),
1443+ -- TRANSLATORS: Helptext for a resource: Coal
1444+ _("There is only a little bit of coal here."))
1445+ }
1446+ local result = ""
1447+ if tribe then
1448+ result = helptext[tribe]
1449+ else
1450+ result = helptext["default"]
1451+ end
1452+ if (result == nil) then result = "" end
1453+ return result
1454+end
1455
1456=== added file 'data/tribes/immovables/resi/helptexts/coal_2.lua'
1457--- data/tribes/immovables/resi/helptexts/coal_2.lua 1970-01-01 00:00:00 +0000
1458+++ data/tribes/immovables/resi/helptexts/coal_2.lua 2018-09-14 06:31:21 +0000
1459@@ -0,0 +1,17 @@
1460+function immovable_helptext(tribe)
1461+ local helptext = {
1462+ default = pgettext("sentence_separator", "%s %s"):bformat(
1463+ -- TRANSLATORS: Helptext for a resource: Coal
1464+ _("Coal veins contain coal that can be dug up by coal mines."),
1465+ -- TRANSLATORS: Helptext for a resource: Coal
1466+ _("There is a lot of coal here."))
1467+ }
1468+ local result = ""
1469+ if tribe then
1470+ result = helptext[tribe]
1471+ else
1472+ result = helptext["default"]
1473+ end
1474+ if (result == nil) then result = "" end
1475+ return result
1476+end
1477
1478=== added file 'data/tribes/immovables/resi/helptexts/gold_1.lua'
1479--- data/tribes/immovables/resi/helptexts/gold_1.lua 1970-01-01 00:00:00 +0000
1480+++ data/tribes/immovables/resi/helptexts/gold_1.lua 2018-09-14 06:31:21 +0000
1481@@ -0,0 +1,17 @@
1482+function immovable_helptext(tribe)
1483+ local helptext = {
1484+ default = pgettext("sentence_separator", "%s %s"):bformat(
1485+ -- TRANSLATORS: Helptext for a resource: Gold
1486+ _("Gold veins contain gold ore that can be dug up by gold mines."),
1487+ -- TRANSLATORS: Helptext for a resource: Gold
1488+ _("There is only a little bit of gold here."))
1489+ }
1490+ local result = ""
1491+ if tribe then
1492+ result = helptext[tribe]
1493+ else
1494+ result = helptext["default"]
1495+ end
1496+ if (result == nil) then result = "" end
1497+ return result
1498+end
1499
1500=== added file 'data/tribes/immovables/resi/helptexts/gold_2.lua'
1501--- data/tribes/immovables/resi/helptexts/gold_2.lua 1970-01-01 00:00:00 +0000
1502+++ data/tribes/immovables/resi/helptexts/gold_2.lua 2018-09-14 06:31:21 +0000
1503@@ -0,0 +1,17 @@
1504+function immovable_helptext(tribe)
1505+ local helptext = {
1506+ default = pgettext("sentence_separator", "%s %s"):bformat(
1507+ -- TRANSLATORS: Helptext for a resource: Gold
1508+ _("Gold veins contain gold ore that can be dug up by gold mines."),
1509+ -- TRANSLATORS: Helptext for a resource: Gold
1510+ _("There is a lot of gold here."))
1511+ }
1512+ local result = ""
1513+ if tribe then
1514+ result = helptext[tribe]
1515+ else
1516+ result = helptext["default"]
1517+ end
1518+ if (result == nil) then result = "" end
1519+ return result
1520+end
1521
1522=== added file 'data/tribes/immovables/resi/helptexts/iron_1.lua'
1523--- data/tribes/immovables/resi/helptexts/iron_1.lua 1970-01-01 00:00:00 +0000
1524+++ data/tribes/immovables/resi/helptexts/iron_1.lua 2018-09-14 06:31:21 +0000
1525@@ -0,0 +1,17 @@
1526+function immovable_helptext(tribe)
1527+ local helptext = {
1528+ default = pgettext("sentence_separator", "%s %s"):bformat(
1529+ -- TRANSLATORS: Helptext for a resource: Iron
1530+ _("Iron veins contain iron ore that can be dug up by iron mines."),
1531+ -- TRANSLATORS: Helptext for a resource: Iron
1532+ _("There is only a little bit of iron here."))
1533+ }
1534+ local result = ""
1535+ if tribe then
1536+ result = helptext[tribe]
1537+ else
1538+ result = helptext["default"]
1539+ end
1540+ if (result == nil) then result = "" end
1541+ return result
1542+end
1543
1544=== added file 'data/tribes/immovables/resi/helptexts/iron_2.lua'
1545--- data/tribes/immovables/resi/helptexts/iron_2.lua 1970-01-01 00:00:00 +0000
1546+++ data/tribes/immovables/resi/helptexts/iron_2.lua 2018-09-14 06:31:21 +0000
1547@@ -0,0 +1,17 @@
1548+function immovable_helptext(tribe)
1549+ local helptext = {
1550+ default = pgettext("sentence_separator", "%s %s"):bformat(
1551+ -- TRANSLATORS: Helptext for a resource: Iron
1552+ _("Iron veins contain iron ore that can be dug up by iron mines."),
1553+ -- TRANSLATORS: Helptext for a resource: Iron
1554+ _("There is a lot of iron here."))
1555+ }
1556+ local result = ""
1557+ if tribe then
1558+ result = helptext[tribe]
1559+ else
1560+ result = helptext["default"]
1561+ end
1562+ if (result == nil) then result = "" end
1563+ return result
1564+end
1565
1566=== added file 'data/tribes/immovables/resi/helptexts/none.lua'
1567--- data/tribes/immovables/resi/helptexts/none.lua 1970-01-01 00:00:00 +0000
1568+++ data/tribes/immovables/resi/helptexts/none.lua 2018-09-14 06:31:21 +0000
1569@@ -0,0 +1,14 @@
1570+function immovable_helptext(tribe)
1571+ local helptext = {
1572+ -- TRANSLATORS: Helptext for a resource: No resources
1573+ default = _("There are no resources in the ground here.")
1574+ }
1575+ local result = ""
1576+ if tribe then
1577+ result = helptext[tribe]
1578+ else
1579+ result = helptext["default"]
1580+ end
1581+ if (result == nil) then result = "" end
1582+ return result
1583+end
1584
1585=== added file 'data/tribes/immovables/resi/helptexts/stones_1.lua'
1586--- data/tribes/immovables/resi/helptexts/stones_1.lua 1970-01-01 00:00:00 +0000
1587+++ data/tribes/immovables/resi/helptexts/stones_1.lua 2018-09-14 06:31:21 +0000
1588@@ -0,0 +1,32 @@
1589+function immovable_helptext(tribe)
1590+ local helptext = {
1591+ atlanteans = pgettext("sentence_separator", "%s %s"):bformat(
1592+ -- TRANSLATORS: Helptext for an Atlantean resource: Stones
1593+ _("Precious stones are used in the construction of big buildings. They can be dug up by a crystal mine. You will also get granite from the mine."),
1594+ -- TRANSLATORS: Helptext for an Atlantean resource: Stones
1595+ _("There are only a few precious stones here.")),
1596+ barbarians = pgettext("sentence_separator", "%s %s"):bformat(
1597+ -- TRANSLATORS: Helptext for a Barbarian resource: Stones
1598+ _("Granite is a basic building material and can be dug up by a granite mine."),
1599+ -- TRANSLATORS: Helptext for a Barbarian resource: Stones
1600+ _("There is only a little bit of granite here.")),
1601+ empire = pgettext("sentence_separator", "%s %s"):bformat(
1602+ -- TRANSLATORS: Helptext for an Empire resource: Stones
1603+ _("Marble is a basic building material and can be dug up by a marble mine. You will also get granite from the mine."),
1604+ -- TRANSLATORS: Helptext for an Empire resource: Stones
1605+ _("There is only a little bit of marble here.")),
1606+ frisians = pgettext("sentence_separator", "%s %s"):bformat(
1607+ -- TRANSLATORS: Helptext for a Frisian resource: Stones
1608+ _("Granite is a basic building material and can be dug up by a rock mine."),
1609+ -- TRANSLATORS: Helptext for a Frisian resource: Stones
1610+ _("There is only a little bit of granite here.")),
1611+ }
1612+ local result = ""
1613+ if tribe then
1614+ result = helptext[tribe]
1615+ else
1616+ result = helptext["default"]
1617+ end
1618+ if (result == nil) then result = "" end
1619+ return result
1620+end
1621
1622=== added file 'data/tribes/immovables/resi/helptexts/stones_2.lua'
1623--- data/tribes/immovables/resi/helptexts/stones_2.lua 1970-01-01 00:00:00 +0000
1624+++ data/tribes/immovables/resi/helptexts/stones_2.lua 2018-09-14 06:31:21 +0000
1625@@ -0,0 +1,32 @@
1626+function immovable_helptext(tribe)
1627+ local helptext = {
1628+ atlanteans = pgettext("sentence_separator", "%s %s"):bformat(
1629+ -- TRANSLATORS: Helptext for an Atlantean resource: Stones
1630+ _("Precious stones are used in the construction of big buildings. They can be dug up by a crystal mine. You will also get granite from the mine."),
1631+ -- TRANSLATORS: Helptext for an Atlantean resource: Stones
1632+ _("There are many precious stones here.")),
1633+ barbarians = pgettext("sentence_separator", "%s %s"):bformat(
1634+ -- TRANSLATORS: Helptext for a Barbarian resource: Stones
1635+ _("Granite is a basic building material and can be dug up by a granite mine."),
1636+ -- TRANSLATORS: Helptext for a Barbarian resource: Stones
1637+ _("There is a lot of granite here.")),
1638+ empire = pgettext("sentence_separator", "%s %s"):bformat(
1639+ -- TRANSLATORS: Helptext for an Empire resource: Stones
1640+ _("Marble is a basic building material and can be dug up by a marble mine. You will also get granite from the mine."),
1641+ -- TRANSLATORS: Helptext for an Empire resource: Stones
1642+ _("There is a lot of marble here.")),
1643+ frisians = pgettext("sentence_separator", "%s %s"):bformat(
1644+ -- TRANSLATORS: Helptext for a Frisian resource: Stones
1645+ _("Granite is a basic building material and can be dug up by a rock mine."),
1646+ -- TRANSLATORS: Helptext for a Frisian resource: Stones
1647+ _("There is a lot of granite here.")),
1648+ }
1649+ local result = ""
1650+ if tribe then
1651+ result = helptext[tribe]
1652+ else
1653+ result = helptext["default"]
1654+ end
1655+ if (result == nil) then result = "" end
1656+ return result
1657+end
1658
1659=== added file 'data/tribes/immovables/resi/helptexts/water.lua'
1660--- data/tribes/immovables/resi/helptexts/water.lua 1970-01-01 00:00:00 +0000
1661+++ data/tribes/immovables/resi/helptexts/water.lua 2018-09-14 06:31:21 +0000
1662@@ -0,0 +1,14 @@
1663+function immovable_helptext(tribe)
1664+ local helptext = {
1665+ -- TRANSLATORS: Helptext for a resource: Water
1666+ default = _("There is water in the ground here that can be pulled up by a well.")
1667+ }
1668+ local result = ""
1669+ if tribe then
1670+ result = helptext[tribe]
1671+ else
1672+ result = helptext["default"]
1673+ end
1674+ if (result == nil) then result = "" end
1675+ return result
1676+end
1677
1678=== removed directory 'data/tribes/immovables/resi_coal1'
1679=== removed file 'data/tribes/immovables/resi_coal1/helptexts.lua'
1680--- data/tribes/immovables/resi_coal1/helptexts.lua 2017-11-12 16:21:28 +0000
1681+++ data/tribes/immovables/resi_coal1/helptexts.lua 1970-01-01 00:00:00 +0000
1682@@ -1,17 +0,0 @@
1683-function immovable_helptext(tribe)
1684- local helptext = {
1685- default = pgettext("sentence_separator", "%s %s"):bformat(
1686- -- TRANSLATORS: Helptext for a resource: Coal
1687- _("Coal veins contain coal that can be dug up by coal mines."),
1688- -- TRANSLATORS: Helptext for a resource: Coal
1689- _("There is only a little bit of coal here."))
1690- }
1691- local result = ""
1692- if tribe then
1693- result = helptext[tribe]
1694- else
1695- result = helptext["default"]
1696- end
1697- if (result == nil) then result = "" end
1698- return result
1699-end
1700
1701=== removed file 'data/tribes/immovables/resi_coal1/idle_00.png'
1702Binary files data/tribes/immovables/resi_coal1/idle_00.png 2014-12-12 10:21:43 +0000 and data/tribes/immovables/resi_coal1/idle_00.png 1970-01-01 00:00:00 +0000 differ
1703=== removed file 'data/tribes/immovables/resi_coal1/init.lua'
1704--- data/tribes/immovables/resi_coal1/init.lua 2017-11-18 14:19:28 +0000
1705+++ data/tribes/immovables/resi_coal1/init.lua 1970-01-01 00:00:00 +0000
1706@@ -1,23 +0,0 @@
1707-dirname = path.dirname(__file__)
1708-
1709-tribes:new_immovable_type {
1710- msgctxt = "immovable",
1711- name = "resi_coal1",
1712- -- TRANSLATORS: This is a resource name used in lists of resources
1713- descname = pgettext("immovable", "Resources: Coal Vein"),
1714- helptext_script = dirname .. "helptexts.lua",
1715- attributes = { "resi" },
1716- programs = {
1717- program = {
1718- "animate=idle 600000",
1719- "remove="
1720- }
1721- },
1722-
1723- animations = {
1724- idle = {
1725- pictures = path.list_files(dirname .. "idle_??.png"),
1726- hotspot = { 7, 10 },
1727- },
1728- }
1729-}
1730
1731=== removed directory 'data/tribes/immovables/resi_coal2'
1732=== removed file 'data/tribes/immovables/resi_coal2/helptexts.lua'
1733--- data/tribes/immovables/resi_coal2/helptexts.lua 2017-11-12 16:21:28 +0000
1734+++ data/tribes/immovables/resi_coal2/helptexts.lua 1970-01-01 00:00:00 +0000
1735@@ -1,17 +0,0 @@
1736-function immovable_helptext(tribe)
1737- local helptext = {
1738- default = pgettext("sentence_separator", "%s %s"):bformat(
1739- -- TRANSLATORS: Helptext for a resource: Coal
1740- _("Coal veins contain coal that can be dug up by coal mines."),
1741- -- TRANSLATORS: Helptext for a resource: Coal
1742- _("There is a lot of coal here."))
1743- }
1744- local result = ""
1745- if tribe then
1746- result = helptext[tribe]
1747- else
1748- result = helptext["default"]
1749- end
1750- if (result == nil) then result = "" end
1751- return result
1752-end
1753
1754=== removed file 'data/tribes/immovables/resi_coal2/idle_00.png'
1755Binary files data/tribes/immovables/resi_coal2/idle_00.png 2014-12-12 10:21:43 +0000 and data/tribes/immovables/resi_coal2/idle_00.png 1970-01-01 00:00:00 +0000 differ
1756=== removed file 'data/tribes/immovables/resi_coal2/init.lua'
1757--- data/tribes/immovables/resi_coal2/init.lua 2017-11-18 14:19:28 +0000
1758+++ data/tribes/immovables/resi_coal2/init.lua 1970-01-01 00:00:00 +0000
1759@@ -1,23 +0,0 @@
1760-dirname = path.dirname(__file__)
1761-
1762-tribes:new_immovable_type {
1763- msgctxt = "immovable",
1764- name = "resi_coal2",
1765- -- TRANSLATORS: This is a resource name used in lists of resources
1766- descname = pgettext("immovable", "Resources: Main Coal Vein"),
1767- helptext_script = dirname .. "helptexts.lua",
1768- attributes = { "resi" },
1769- programs = {
1770- program = {
1771- "animate=idle 600000",
1772- "remove="
1773- }
1774- },
1775-
1776- animations = {
1777- idle = {
1778- pictures = path.list_files(dirname .. "idle_??.png"),
1779- hotspot = { 7, 10 },
1780- },
1781- }
1782-}
1783
1784=== removed directory 'data/tribes/immovables/resi_gold1'
1785=== removed file 'data/tribes/immovables/resi_gold1/helptexts.lua'
1786--- data/tribes/immovables/resi_gold1/helptexts.lua 2017-11-12 16:21:28 +0000
1787+++ data/tribes/immovables/resi_gold1/helptexts.lua 1970-01-01 00:00:00 +0000
1788@@ -1,17 +0,0 @@
1789-function immovable_helptext(tribe)
1790- local helptext = {
1791- default = pgettext("sentence_separator", "%s %s"):bformat(
1792- -- TRANSLATORS: Helptext for a resource: Gold
1793- _("Gold veins contain gold ore that can be dug up by gold mines."),
1794- -- TRANSLATORS: Helptext for a resource: Gold
1795- _("There is only a little bit of gold here."))
1796- }
1797- local result = ""
1798- if tribe then
1799- result = helptext[tribe]
1800- else
1801- result = helptext["default"]
1802- end
1803- if (result == nil) then result = "" end
1804- return result
1805-end
1806
1807=== removed file 'data/tribes/immovables/resi_gold1/idle_00.png'
1808Binary files data/tribes/immovables/resi_gold1/idle_00.png 2014-12-12 10:21:43 +0000 and data/tribes/immovables/resi_gold1/idle_00.png 1970-01-01 00:00:00 +0000 differ
1809=== removed file 'data/tribes/immovables/resi_gold1/init.lua'
1810--- data/tribes/immovables/resi_gold1/init.lua 2017-11-18 14:19:28 +0000
1811+++ data/tribes/immovables/resi_gold1/init.lua 1970-01-01 00:00:00 +0000
1812@@ -1,23 +0,0 @@
1813-dirname = path.dirname(__file__)
1814-
1815-tribes:new_immovable_type {
1816- msgctxt = "immovable",
1817- name = "resi_gold1",
1818- -- TRANSLATORS: This is a resource name used in lists of resources
1819- descname = pgettext("immovable", "Resources: Gold Vein"),
1820- helptext_script = dirname .. "helptexts.lua",
1821- attributes = { "resi" },
1822- programs = {
1823- program = {
1824- "animate=idle 600000",
1825- "remove="
1826- }
1827- },
1828-
1829- animations = {
1830- idle = {
1831- pictures = path.list_files(dirname .. "idle_??.png"),
1832- hotspot = { 7, 10 },
1833- },
1834- }
1835-}
1836
1837=== removed directory 'data/tribes/immovables/resi_gold2'
1838=== removed file 'data/tribes/immovables/resi_gold2/helptexts.lua'
1839--- data/tribes/immovables/resi_gold2/helptexts.lua 2017-11-12 16:21:28 +0000
1840+++ data/tribes/immovables/resi_gold2/helptexts.lua 1970-01-01 00:00:00 +0000
1841@@ -1,17 +0,0 @@
1842-function immovable_helptext(tribe)
1843- local helptext = {
1844- default = pgettext("sentence_separator", "%s %s"):bformat(
1845- -- TRANSLATORS: Helptext for a resource: Gold
1846- _("Gold veins contain gold ore that can be dug up by gold mines."),
1847- -- TRANSLATORS: Helptext for a resource: Gold
1848- _("There is a lot of gold here."))
1849- }
1850- local result = ""
1851- if tribe then
1852- result = helptext[tribe]
1853- else
1854- result = helptext["default"]
1855- end
1856- if (result == nil) then result = "" end
1857- return result
1858-end
1859
1860=== removed file 'data/tribes/immovables/resi_gold2/idle_00.png'
1861Binary files data/tribes/immovables/resi_gold2/idle_00.png 2014-12-12 10:21:43 +0000 and data/tribes/immovables/resi_gold2/idle_00.png 1970-01-01 00:00:00 +0000 differ
1862=== removed file 'data/tribes/immovables/resi_gold2/init.lua'
1863--- data/tribes/immovables/resi_gold2/init.lua 2017-11-18 14:19:28 +0000
1864+++ data/tribes/immovables/resi_gold2/init.lua 1970-01-01 00:00:00 +0000
1865@@ -1,23 +0,0 @@
1866-dirname = path.dirname(__file__)
1867-
1868-tribes:new_immovable_type {
1869- msgctxt = "immovable",
1870- name = "resi_gold2",
1871- -- TRANSLATORS: This is a resource name used in lists of resources
1872- descname = pgettext("immovable", "Resources: Main Gold Vein"),
1873- helptext_script = dirname .. "helptexts.lua",
1874- attributes = { "resi" },
1875- programs = {
1876- program = {
1877- "animate=idle 600000",
1878- "remove="
1879- }
1880- },
1881-
1882- animations = {
1883- idle = {
1884- pictures = path.list_files(dirname .. "idle_??.png"),
1885- hotspot = { 7, 10 },
1886- },
1887- }
1888-}
1889
1890=== removed directory 'data/tribes/immovables/resi_iron1'
1891=== removed file 'data/tribes/immovables/resi_iron1/helptexts.lua'
1892--- data/tribes/immovables/resi_iron1/helptexts.lua 2017-11-12 16:21:28 +0000
1893+++ data/tribes/immovables/resi_iron1/helptexts.lua 1970-01-01 00:00:00 +0000
1894@@ -1,17 +0,0 @@
1895-function immovable_helptext(tribe)
1896- local helptext = {
1897- default = pgettext("sentence_separator", "%s %s"):bformat(
1898- -- TRANSLATORS: Helptext for a resource: Iron
1899- _("Iron veins contain iron ore that can be dug up by iron mines."),
1900- -- TRANSLATORS: Helptext for a resource: Iron
1901- _("There is only a little bit of iron here."))
1902- }
1903- local result = ""
1904- if tribe then
1905- result = helptext[tribe]
1906- else
1907- result = helptext["default"]
1908- end
1909- if (result == nil) then result = "" end
1910- return result
1911-end
1912
1913=== removed file 'data/tribes/immovables/resi_iron1/idle_00.png'
1914Binary files data/tribes/immovables/resi_iron1/idle_00.png 2014-12-12 10:21:43 +0000 and data/tribes/immovables/resi_iron1/idle_00.png 1970-01-01 00:00:00 +0000 differ
1915=== removed file 'data/tribes/immovables/resi_iron1/init.lua'
1916--- data/tribes/immovables/resi_iron1/init.lua 2017-11-18 14:19:28 +0000
1917+++ data/tribes/immovables/resi_iron1/init.lua 1970-01-01 00:00:00 +0000
1918@@ -1,23 +0,0 @@
1919-dirname = path.dirname(__file__)
1920-
1921-tribes:new_immovable_type {
1922- msgctxt = "immovable",
1923- name = "resi_iron1",
1924- -- TRANSLATORS: This is a resource name used in lists of resources
1925- descname = pgettext("immovable", "Resources: Iron Vein"),
1926- helptext_script = dirname .. "helptexts.lua",
1927- attributes = { "resi" },
1928- programs = {
1929- program = {
1930- "animate=idle 600000",
1931- "remove="
1932- }
1933- },
1934-
1935- animations = {
1936- idle = {
1937- pictures = path.list_files(dirname .. "idle_??.png"),
1938- hotspot = { 7, 10 },
1939- },
1940- }
1941-}
1942
1943=== removed directory 'data/tribes/immovables/resi_iron2'
1944=== removed file 'data/tribes/immovables/resi_iron2/helptexts.lua'
1945--- data/tribes/immovables/resi_iron2/helptexts.lua 2017-11-12 16:21:28 +0000
1946+++ data/tribes/immovables/resi_iron2/helptexts.lua 1970-01-01 00:00:00 +0000
1947@@ -1,17 +0,0 @@
1948-function immovable_helptext(tribe)
1949- local helptext = {
1950- default = pgettext("sentence_separator", "%s %s"):bformat(
1951- -- TRANSLATORS: Helptext for a resource: Iron
1952- _("Iron veins contain iron ore that can be dug up by iron mines."),
1953- -- TRANSLATORS: Helptext for a resource: Iron
1954- _("There is a lot of iron here."))
1955- }
1956- local result = ""
1957- if tribe then
1958- result = helptext[tribe]
1959- else
1960- result = helptext["default"]
1961- end
1962- if (result == nil) then result = "" end
1963- return result
1964-end
1965
1966=== removed file 'data/tribes/immovables/resi_iron2/idle_00.png'
1967Binary files data/tribes/immovables/resi_iron2/idle_00.png 2014-12-12 10:21:43 +0000 and data/tribes/immovables/resi_iron2/idle_00.png 1970-01-01 00:00:00 +0000 differ
1968=== removed file 'data/tribes/immovables/resi_iron2/init.lua'
1969--- data/tribes/immovables/resi_iron2/init.lua 2017-11-18 14:19:28 +0000
1970+++ data/tribes/immovables/resi_iron2/init.lua 1970-01-01 00:00:00 +0000
1971@@ -1,23 +0,0 @@
1972-dirname = path.dirname(__file__)
1973-
1974-tribes:new_immovable_type {
1975- msgctxt = "immovable",
1976- name = "resi_iron2",
1977- -- TRANSLATORS: This is a resource name used in lists of resources
1978- descname = pgettext("immovable", "Resources: Main Iron Vein"),
1979- helptext_script = dirname .. "helptexts.lua",
1980- attributes = { "resi" },
1981- programs = {
1982- program = {
1983- "animate=idle 600000",
1984- "remove="
1985- }
1986- },
1987-
1988- animations = {
1989- idle = {
1990- pictures = path.list_files(dirname .. "idle_??.png"),
1991- hotspot = { 7, 10 },
1992- },
1993- }
1994-}
1995
1996=== removed directory 'data/tribes/immovables/resi_none'
1997=== removed file 'data/tribes/immovables/resi_none/helptexts.lua'
1998--- data/tribes/immovables/resi_none/helptexts.lua 2017-11-12 16:21:28 +0000
1999+++ data/tribes/immovables/resi_none/helptexts.lua 1970-01-01 00:00:00 +0000
2000@@ -1,14 +0,0 @@
2001-function immovable_helptext(tribe)
2002- local helptext = {
2003- -- TRANSLATORS: Helptext for a resource: No resources
2004- default = _("There are no resources in the ground here.")
2005- }
2006- local result = ""
2007- if tribe then
2008- result = helptext[tribe]
2009- else
2010- result = helptext["default"]
2011- end
2012- if (result == nil) then result = "" end
2013- return result
2014-end
2015
2016=== removed file 'data/tribes/immovables/resi_none/idle_00.png'
2017Binary files data/tribes/immovables/resi_none/idle_00.png 2014-12-12 10:21:43 +0000 and data/tribes/immovables/resi_none/idle_00.png 1970-01-01 00:00:00 +0000 differ
2018=== removed file 'data/tribes/immovables/resi_none/init.lua'
2019--- data/tribes/immovables/resi_none/init.lua 2017-11-18 14:19:28 +0000
2020+++ data/tribes/immovables/resi_none/init.lua 1970-01-01 00:00:00 +0000
2021@@ -1,23 +0,0 @@
2022-dirname = path.dirname(__file__)
2023-
2024-tribes:new_immovable_type {
2025- msgctxt = "immovable",
2026- name = "resi_none",
2027- -- TRANSLATORS: This is a resource name used in lists of resources
2028- descname = pgettext("immovable", "Resources: None"),
2029- helptext_script = dirname .. "helptexts.lua",
2030- attributes = { "resi" },
2031- programs = {
2032- program = {
2033- "animate=idle 600000",
2034- "remove="
2035- }
2036- },
2037-
2038- animations = {
2039- idle = {
2040- pictures = path.list_files(dirname .. "idle_??.png"),
2041- hotspot = { 7, 10 },
2042- },
2043- }
2044-}
2045
2046=== removed directory 'data/tribes/immovables/resi_stones1'
2047=== removed file 'data/tribes/immovables/resi_stones1/helptexts.lua'
2048--- data/tribes/immovables/resi_stones1/helptexts.lua 2017-11-18 14:19:28 +0000
2049+++ data/tribes/immovables/resi_stones1/helptexts.lua 1970-01-01 00:00:00 +0000
2050@@ -1,27 +0,0 @@
2051-function immovable_helptext(tribe)
2052- local helptext = {
2053- atlanteans = pgettext("sentence_separator", "%s %s"):bformat(
2054- -- TRANSLATORS: Helptext for an Atlantean resource: Stones
2055- _("Precious stones are used in the construction of big buildings. They can be dug up by a crystal mine. You will also get granite from the mine."),
2056- -- TRANSLATORS: Helptext for an Atlantean resource: Stones
2057- _("There are only a few precious stones here.")),
2058- barbarians = pgettext("sentence_separator", "%s %s"):bformat(
2059- -- TRANSLATORS: Helptext for a Barbarian resource: Stones
2060- _("Granite is a basic building material and can be dug up by a granite mine."),
2061- -- TRANSLATORS: Helptext for a Barbarian resource: Stones
2062- _("There is only a little bit of granite here.")),
2063- empire = pgettext("sentence_separator", "%s %s"):bformat(
2064- -- TRANSLATORS: Helptext for an Empire resource: Stones
2065- _("Marble is a basic building material and can be dug up by a marble mine. You will also get granite from the mine."),
2066- -- TRANSLATORS: Helptext for an Empire resource: Stones
2067- _("There is only a little bit of marble here."))
2068- }
2069- local result = ""
2070- if tribe then
2071- result = helptext[tribe]
2072- else
2073- result = helptext["default"]
2074- end
2075- if (result == nil) then result = "" end
2076- return result
2077-end
2078
2079=== removed file 'data/tribes/immovables/resi_stones1/idle_00.png'
2080Binary files data/tribes/immovables/resi_stones1/idle_00.png 2014-12-12 10:21:43 +0000 and data/tribes/immovables/resi_stones1/idle_00.png 1970-01-01 00:00:00 +0000 differ
2081=== removed file 'data/tribes/immovables/resi_stones1/init.lua'
2082--- data/tribes/immovables/resi_stones1/init.lua 2017-11-18 14:19:28 +0000
2083+++ data/tribes/immovables/resi_stones1/init.lua 1970-01-01 00:00:00 +0000
2084@@ -1,23 +0,0 @@
2085-dirname = path.dirname(__file__)
2086-
2087-tribes:new_immovable_type {
2088- msgctxt = "immovable",
2089- name = "resi_stones1",
2090- -- TRANSLATORS: This is a resource name used in lists of resources
2091- descname = pgettext("immovable", "Resources: Some Stones"),
2092- helptext_script = dirname .. "helptexts.lua",
2093- attributes = { "resi" },
2094- programs = {
2095- program = {
2096- "animate=idle 600000",
2097- "remove="
2098- }
2099- },
2100-
2101- animations = {
2102- idle = {
2103- pictures = path.list_files(dirname .. "idle_??.png"),
2104- hotspot = { 7, 10 },
2105- },
2106- }
2107-}
2108
2109=== removed directory 'data/tribes/immovables/resi_stones2'
2110=== removed file 'data/tribes/immovables/resi_stones2/helptexts.lua'
2111--- data/tribes/immovables/resi_stones2/helptexts.lua 2017-11-18 14:19:28 +0000
2112+++ data/tribes/immovables/resi_stones2/helptexts.lua 1970-01-01 00:00:00 +0000
2113@@ -1,27 +0,0 @@
2114-function immovable_helptext(tribe)
2115- local helptext = {
2116- atlanteans = pgettext("sentence_separator", "%s %s"):bformat(
2117- -- TRANSLATORS: Helptext for an Atlantean resource: Stones
2118- _("Precious stones are used in the construction of big buildings. They can be dug up by a crystal mine. You will also get granite from the mine."),
2119- -- TRANSLATORS: Helptext for an Atlantean resource: Stones
2120- _("There are many precious stones here.")),
2121- barbarians = pgettext("sentence_separator", "%s %s"):bformat(
2122- -- TRANSLATORS: Helptext for a Barbarian resource: Stones
2123- _("Granite is a basic building material and can be dug up by a granite mine."),
2124- -- TRANSLATORS: Helptext for a Barbarian resource: Stones
2125- _("There is a lot of granite here.")),
2126- empire = pgettext("sentence_separator", "%s %s"):bformat(
2127- -- TRANSLATORS: Helptext for an Empire resource: Stones
2128- _("Marble is a basic building material and can be dug up by a marble mine. You will also get granite from the mine."),
2129- -- TRANSLATORS: Helptext for an Empire resource: Stones
2130- _("There is a lot of marble here."))
2131- }
2132- local result = ""
2133- if tribe then
2134- result = helptext[tribe]
2135- else
2136- result = helptext["default"]
2137- end
2138- if (result == nil) then result = "" end
2139- return result
2140-end
2141
2142=== removed file 'data/tribes/immovables/resi_stones2/idle_00.png'
2143Binary files data/tribes/immovables/resi_stones2/idle_00.png 2014-12-12 10:21:43 +0000 and data/tribes/immovables/resi_stones2/idle_00.png 1970-01-01 00:00:00 +0000 differ
2144=== removed file 'data/tribes/immovables/resi_stones2/init.lua'
2145--- data/tribes/immovables/resi_stones2/init.lua 2017-11-18 14:19:28 +0000
2146+++ data/tribes/immovables/resi_stones2/init.lua 1970-01-01 00:00:00 +0000
2147@@ -1,23 +0,0 @@
2148-dirname = path.dirname(__file__)
2149-
2150-tribes:new_immovable_type {
2151- msgctxt = "immovable",
2152- name = "resi_stones2",
2153- -- TRANSLATORS: This is a resource name used in lists of resources
2154- descname = pgettext("immovable", "Resources: A Lot of Stones"),
2155- helptext_script = dirname .. "helptexts.lua",
2156- attributes = { "resi" },
2157- programs = {
2158- program = {
2159- "animate=idle 600000",
2160- "remove="
2161- }
2162- },
2163-
2164- animations = {
2165- idle = {
2166- pictures = path.list_files(dirname .. "idle_??.png"),
2167- hotspot = { 7, 10 },
2168- },
2169- }
2170-}
2171
2172=== removed directory 'data/tribes/immovables/resi_water1'
2173=== removed file 'data/tribes/immovables/resi_water1/helptexts.lua'
2174--- data/tribes/immovables/resi_water1/helptexts.lua 2017-11-12 16:21:28 +0000
2175+++ data/tribes/immovables/resi_water1/helptexts.lua 1970-01-01 00:00:00 +0000
2176@@ -1,14 +0,0 @@
2177-function immovable_helptext(tribe)
2178- local helptext = {
2179- -- TRANSLATORS: Helptext for a resource: Water
2180- default = _("There is water in the ground here that can be pulled up by a well.")
2181- }
2182- local result = ""
2183- if tribe then
2184- result = helptext[tribe]
2185- else
2186- result = helptext["default"]
2187- end
2188- if (result == nil) then result = "" end
2189- return result
2190-end
2191
2192=== removed file 'data/tribes/immovables/resi_water1/idle_00.png'
2193Binary files data/tribes/immovables/resi_water1/idle_00.png 2014-12-12 10:21:43 +0000 and data/tribes/immovables/resi_water1/idle_00.png 1970-01-01 00:00:00 +0000 differ
2194=== removed file 'data/tribes/immovables/resi_water1/init.lua'
2195--- data/tribes/immovables/resi_water1/init.lua 2017-11-18 14:19:28 +0000
2196+++ data/tribes/immovables/resi_water1/init.lua 1970-01-01 00:00:00 +0000
2197@@ -1,23 +0,0 @@
2198-dirname = path.dirname(__file__)
2199-
2200-tribes:new_immovable_type {
2201- msgctxt = "immovable",
2202- name = "resi_water1",
2203- -- TRANSLATORS: This is a resource name used in lists of resources
2204- descname = pgettext("immovable", "Resources: Water Vein"),
2205- helptext_script = dirname .. "helptexts.lua",
2206- attributes = { "resi" },
2207- programs = {
2208- program = {
2209- "animate=idle 600000",
2210- "remove="
2211- }
2212- },
2213-
2214- animations = {
2215- idle = {
2216- pictures = path.list_files(dirname .. "idle_??.png"),
2217- hotspot = { 7, 10 },
2218- },
2219- }
2220-}
2221
2222=== modified file 'data/tribes/init.lua'
2223--- data/tribes/init.lua 2018-07-15 10:32:12 +0000
2224+++ data/tribes/init.lua 2018-09-14 06:31:21 +0000
2225@@ -179,16 +179,10 @@
2226 include "tribes/immovables/reed_ripe/init.lua"
2227 include "tribes/immovables/reed_small/init.lua"
2228 include "tribes/immovables/reed_tiny/init.lua"
2229- include "tribes/immovables/resi_coal1/init.lua"
2230- include "tribes/immovables/resi_coal2/init.lua"
2231- include "tribes/immovables/resi_gold1/init.lua"
2232- include "tribes/immovables/resi_gold2/init.lua"
2233- include "tribes/immovables/resi_iron1/init.lua"
2234- include "tribes/immovables/resi_iron2/init.lua"
2235- include "tribes/immovables/resi_none/init.lua"
2236- include "tribes/immovables/resi_stones1/init.lua"
2237- include "tribes/immovables/resi_stones2/init.lua"
2238- include "tribes/immovables/resi_water1/init.lua"
2239+ include "tribes/immovables/resi/atlanteans/init.lua"
2240+ include "tribes/immovables/resi/barbarians/init.lua"
2241+ include "tribes/immovables/resi/empire/init.lua"
2242+ include "tribes/immovables/resi/frisians/init.lua"
2243 include "tribes/immovables/shipconstruction_atlanteans/init.lua"
2244 include "tribes/immovables/shipconstruction_barbarians/init.lua"
2245 include "tribes/immovables/shipconstruction_empire/init.lua"
2246
2247=== modified file 'data/tribes/scripting/help/building_help.lua'
2248--- data/tribes/scripting/help/building_help.lua 2018-03-24 14:31:37 +0000
2249+++ data/tribes/scripting/help/building_help.lua 2018-09-14 06:31:21 +0000
2250@@ -1,5 +1,3 @@
2251--- TODO(GunChleoc): get resi_00.png from C++
2252-
2253 include "tribes/scripting/help/format_help.lua"
2254
2255 -- RST
2256@@ -46,15 +44,24 @@
2257 -- :arg text: comment of the image.
2258 -- :returns: a row of pictures connected by arrows.
2259 --
2260-function dependencies_resi(resource, items, text)
2261+function dependencies_resi(tribename, resource, items, text)
2262 if not text then
2263 text = ""
2264 end
2265- local items_with_resouce = { "tribes/immovables/" .. resource .. "/idle_00.png" }
2266+ local tribe_descr = wl.Game():get_tribe_description(tribename)
2267+ local resi
2268+ local am = 0
2269+ for amount,name in pairs(tribe_descr.resource_indicators[resource]) do
2270+ if amount > am then
2271+ resi = name
2272+ am = amount
2273+ end
2274+ end
2275+ local items_with_resource = { wl.Game():get_immovable_description(resi).representative_image }
2276 for count, item in pairs(items) do
2277- table.insert(items_with_resouce, item.icon_name)
2278+ table.insert(items_with_resource, item.icon_name)
2279 end
2280- return dependencies_basic(items_with_resouce, text)
2281+ return dependencies_basic(items_with_resource, text)
2282 end
2283
2284
2285@@ -301,8 +308,8 @@
2286 elseif(resi_name == "quartz") then resi_name = "stones"
2287 elseif(resi_name == "marble") then resi_name = "stones"
2288 elseif(resi_name == "gold_ore") then resi_name = "gold" end
2289- result = result .. dependencies_resi(
2290- "resi_"..resi_name.."2",
2291+ result = result .. dependencies_resi(tribe.name,
2292+ resi_name,
2293 {building_description, ware_description},
2294 ware_description.descname
2295 )
2296
2297=== modified file 'src/logic/editor_game_base.cc'
2298--- src/logic/editor_game_base.cc 2018-04-27 06:11:05 +0000
2299+++ src/logic/editor_game_base.cc 2018-09-14 06:31:21 +0000
2300@@ -42,6 +42,7 @@
2301 #include "logic/map_objects/tribes/ware_descr.h"
2302 #include "logic/map_objects/tribes/worker.h"
2303 #include "logic/map_objects/world/critter.h"
2304+#include "logic/map_objects/world/resource_description.h"
2305 #include "logic/map_objects/world/world.h"
2306 #include "logic/mapregion.h"
2307 #include "logic/player.h"
2308@@ -199,6 +200,20 @@
2309 assert(tribes_);
2310 tribes_->postload();
2311
2312+ for (DescriptionIndex i = 0; i < tribes_->nrtribes(); i++) {
2313+ const TribeDescr* tribe = tribes_->get_tribe_descr(i);
2314+ for (DescriptionIndex j = 0; j < world_->get_nr_resources(); j++) {
2315+ const ResourceDescription* res = world_->get_resource(j);
2316+ if (res->detectable()) {
2317+ // This function will throw an exception if this tribe doesn't
2318+ // have a high enough resource indicator for this resource
2319+ tribe->get_resource_indicator(res, res->max_amount());
2320+ }
2321+ }
2322+ // For the "none" indicator
2323+ tribe->get_resource_indicator(nullptr, 0);
2324+ }
2325+
2326 // TODO(unknown): postload players? (maybe)
2327 }
2328
2329
2330=== modified file 'src/logic/map_objects/tribes/tribe_descr.cc'
2331--- src/logic/map_objects/tribes/tribe_descr.cc 2018-04-07 16:59:00 +0000
2332+++ src/logic/map_objects/tribes/tribe_descr.cc 2018-09-14 06:31:21 +0000
2333@@ -162,6 +162,20 @@
2334 }
2335 }
2336
2337+ items_table = table.get_table("resource_indicators");
2338+ for (std::string resource : items_table->keys<std::string>()) {
2339+ ResourceIndicatorList resis;
2340+ std::unique_ptr<LuaTable> tbl = items_table->get_table(resource);
2341+ const std::set<int> keys = tbl->keys<int>();
2342+ for (int upper_limit : keys) {
2343+ resis[upper_limit] = tribes_.safe_immovable_index(tbl->get_string(upper_limit));
2344+ }
2345+ if (resis.empty()) {
2346+ throw GameDataError("Tribe has no indicators for resource %s.", resource.c_str());
2347+ }
2348+ resource_indicators_[resource] = resis;
2349+ };
2350+
2351 ship_names_ = table.get_table("ship_names")->array_entries<std::string>();
2352
2353 for (const std::string& buildingname :
2354@@ -226,6 +240,9 @@
2355 const std::set<DescriptionIndex>& TribeDescr::immovables() const {
2356 return immovables_;
2357 }
2358+const ResourceIndicatorSet& TribeDescr::resource_indicators() const {
2359+ return resource_indicators_;
2360+}
2361
2362 bool TribeDescr::has_building(const DescriptionIndex& index) const {
2363 return std::find(buildings_.begin(), buildings_.end(), index) != buildings_.end();
2364@@ -374,41 +391,35 @@
2365 DescriptionIndex TribeDescr::get_resource_indicator(ResourceDescription const* const res,
2366 const ResourceAmount amount) const {
2367 if (!res || !amount) {
2368- DescriptionIndex idx = immovable_index("resi_none");
2369- if (!has_immovable(idx)) {
2370- throw GameDataError("There is no resource indicator for resi_none!");
2371- }
2372- return idx;
2373- }
2374-
2375- int32_t i = 1;
2376- int32_t num_indicators = 0;
2377- for (;;) {
2378- const std::string resi_filename =
2379- (boost::format("resi_%s%i") % res->name().c_str() % i).str();
2380- if (!has_immovable(immovable_index(resi_filename))) {
2381- break;
2382- }
2383- ++i;
2384- ++num_indicators;
2385- }
2386-
2387- if (!num_indicators) {
2388- throw GameDataError("There is no resource indicator for resource %s", res->name().c_str());
2389- }
2390-
2391- int32_t bestmatch =
2392- static_cast<int32_t>((static_cast<float>(amount) / res->max_amount()) * num_indicators);
2393- if (bestmatch > num_indicators) {
2394- throw GameDataError("Amount of %s is %i but max amount is %i", res->name().c_str(),
2395- static_cast<unsigned int>(amount),
2396- static_cast<unsigned int>(res->max_amount()));
2397- }
2398- if (amount < res->max_amount()) {
2399- bestmatch += 1; // Resi start with 1, not 0
2400- }
2401-
2402- return immovable_index((boost::format("resi_%s%i") % res->name().c_str() % bestmatch).str());
2403+ auto list = resource_indicators_.find("");
2404+ if (list == resource_indicators_.end() || list->second.empty()) {
2405+ throw GameDataError("Tribe '%s' has no indicator for no resources!", descname_.c_str());
2406+ }
2407+ return list->second.begin()->second;
2408+ }
2409+
2410+ auto list = resource_indicators_.find(res->name());
2411+ if (list == resource_indicators_.end() || list->second.empty()) {
2412+ throw GameDataError("Tribe '%s' has no indicators for resource '%s'!", descname_.c_str(), res->name().c_str());
2413+ }
2414+
2415+ uint32_t lowest = 0;
2416+ for (const auto& resi : list->second) {
2417+ if (resi.first < amount) {
2418+ continue;
2419+ }
2420+ else if (lowest < amount || resi.first < lowest) {
2421+ lowest = resi.first;
2422+ }
2423+ }
2424+
2425+ if (lowest < amount) {
2426+ throw GameDataError(
2427+ "Tribe '%s' has no indicators for amount %i of resource '%s' (highest possible amount is %i)!",
2428+ descname_.c_str(), amount, res->name().c_str(), lowest);
2429+ }
2430+
2431+ return list->second.find(lowest)->second;
2432 }
2433
2434 void TribeDescr::resize_ware_orders(size_t maxLength) {
2435
2436=== modified file 'src/logic/map_objects/tribes/tribe_descr.h'
2437--- src/logic/map_objects/tribes/tribe_descr.h 2018-04-07 16:59:00 +0000
2438+++ src/logic/map_objects/tribes/tribe_descr.h 2018-09-14 06:31:21 +0000
2439@@ -49,6 +49,16 @@
2440 struct Event;
2441
2442 /*
2443+ * Resource indicators:
2444+ * A ResourceIndicatorSet maps the resource name to a ResourceIndicatorList.
2445+ * A ResourceIndicatorList maps resource amounts to the DescriptionIndex of an immovable this player uses.
2446+ * Special case: The ResourceIndicatorList mapped to "" contains resis that will be used in locations
2447+ * without resources. If it has several entries, result is arbitrary.
2448+*/
2449+using ResourceIndicatorList = std::map<uint32_t, DescriptionIndex>;
2450+using ResourceIndicatorSet = std::map<std::string, ResourceIndicatorList>;
2451+
2452+/*
2453 Tribes
2454 ------
2455
2456@@ -72,6 +82,7 @@
2457 const std::set<DescriptionIndex>& wares() const;
2458 const std::set<DescriptionIndex>& workers() const;
2459 const std::set<DescriptionIndex>& immovables() const;
2460+ const ResourceIndicatorSet& resource_indicators() const;
2461
2462 bool has_building(const DescriptionIndex& index) const;
2463 bool has_ware(const DescriptionIndex& index) const;
2464@@ -184,6 +195,7 @@
2465 std::vector<std::string> ship_names_;
2466 std::set<DescriptionIndex> workers_;
2467 std::set<DescriptionIndex> wares_;
2468+ ResourceIndicatorSet resource_indicators_;
2469 // The wares that are used by construction sites
2470 std::set<DescriptionIndex> construction_materials_;
2471 // Special units. Some of them are used by the engine, some are only used by the AI.
2472
2473=== modified file 'src/map_io/tribes_legacy_lookup_table.cc'
2474--- src/map_io/tribes_legacy_lookup_table.cc 2018-04-07 16:59:00 +0000
2475+++ src/map_io/tribes_legacy_lookup_table.cc 2018-09-14 06:31:21 +0000
2476@@ -194,9 +194,19 @@
2477 {"cornfield_m", "cornfield_medium"},
2478 {"cornfield_s", "cornfield_small"},
2479 {"cornfield_t", "cornfield_tiny"},
2480- {"resi_granite1", "resi_stones1"},
2481- {"resi_granite2", "resi_stones2"},
2482+ {"resi_granite1", "atlanteans_resi_stones_1"},
2483+ {"resi_granite2", "atlanteans_resi_stones_2"},
2484 {"shipconstruction", "atlanteans_shipconstruction"},
2485+ {"resi_coal1", "atlanteans_resi_coal_1"},
2486+ {"resi_iron1", "atlanteans_resi_iron_1"},
2487+ {"resi_gold1", "atlanteans_resi_gold_1"},
2488+ {"resi_stones1", "atlanteans_resi_stones_1"},
2489+ {"resi_coal2", "atlanteans_resi_coal_2"},
2490+ {"resi_iron2", "atlanteans_resi_iron_2"},
2491+ {"resi_gold2", "atlanteans_resi_gold_2"},
2492+ {"resi_stones2", "atlanteans_resi_stones_2"},
2493+ {"resi_none", "atlanteans_resi_none"},
2494+ {"resi_water1", "atlanteans_resi_water"},
2495 }),
2496 std::make_pair("barbarians",
2497 std::map<std::string, std::string>{
2498@@ -209,9 +219,19 @@
2499 {"reed0s", "reed_small"},
2500 {"reed0t", "reed_tiny"},
2501 {"reed1", "reed_ripe"},
2502- {"resi_granite1", "resi_stones1"},
2503- {"resi_granite2", "resi_stones2"},
2504+ {"resi_granite1", "barbarians_resi_stones_1"},
2505+ {"resi_granite2", "barbarians_resi_stones_2"},
2506 {"shipconstruction", "barbarians_shipconstruction"},
2507+ {"resi_coal1", "barbarians_resi_coal_1"},
2508+ {"resi_iron1", "barbarians_resi_iron_1"},
2509+ {"resi_gold1", "barbarians_resi_gold_1"},
2510+ {"resi_stones1", "barbarians_resi_stones_1"},
2511+ {"resi_coal2", "barbarians_resi_coal_2"},
2512+ {"resi_iron2", "barbarians_resi_iron_2"},
2513+ {"resi_gold2", "barbarians_resi_gold_2"},
2514+ {"resi_stones2", "barbarians_resi_stones_2"},
2515+ {"resi_none", "barbarians_resi_none"},
2516+ {"resi_water1", "barbarians_resi_water"},
2517 }),
2518 std::make_pair("empire",
2519 std::map<std::string, std::string>{
2520@@ -224,9 +244,32 @@
2521 {"wine0s", "grapevine_small"},
2522 {"wine0t", "grapevine_tiny"},
2523 {"wine1", "grapevine_ripe"},
2524- {"resi_granite1", "resi_stones1"},
2525- {"resi_granite2", "resi_stones2"},
2526+ {"resi_granite1", "empire_resi_stones_1"},
2527+ {"resi_granite2", "empire_resi_stones_2"},
2528 {"shipconstruction", "empire_shipconstruction"},
2529+ {"resi_coal1", "empire_resi_coal_1"},
2530+ {"resi_iron1", "empire_resi_iron_1"},
2531+ {"resi_gold1", "empire_resi_gold_1"},
2532+ {"resi_stones1", "empire_resi_stones_1"},
2533+ {"resi_coal2", "empire_resi_coal_2"},
2534+ {"resi_iron2", "empire_resi_iron_2"},
2535+ {"resi_gold2", "empire_resi_gold_2"},
2536+ {"resi_stones2", "empire_resi_stones_2"},
2537+ {"resi_none", "empire_resi_none"},
2538+ {"resi_water1", "empire_resi_water"},
2539+ }),
2540+ std::make_pair("frisians",
2541+ std::map<std::string, std::string>{
2542+ {"resi_coal1", "frisians_resi_coal_1"},
2543+ {"resi_iron1", "frisians_resi_iron_1"},
2544+ {"resi_gold1", "frisians_resi_gold_1"},
2545+ {"resi_stones1", "frisians_resi_stones_1"},
2546+ {"resi_coal2", "frisians_resi_coal_2"},
2547+ {"resi_iron2", "frisians_resi_iron_2"},
2548+ {"resi_gold2", "frisians_resi_gold_2"},
2549+ {"resi_stones2", "frisians_resi_stones_2"},
2550+ {"resi_none", "frisians_resi_none"},
2551+ {"resi_water1", "frisians_resi_water"},
2552 }),
2553 } {
2554 }
2555
2556=== modified file 'src/scripting/lua_map.cc'
2557--- src/scripting/lua_map.cc 2018-09-04 15:48:47 +0000
2558+++ src/scripting/lua_map.cc 2018-09-14 06:31:21 +0000
2559@@ -1386,6 +1386,7 @@
2560 PROP_RO(LuaTribeDescription, descname),
2561 PROP_RO(LuaTribeDescription, geologist),
2562 PROP_RO(LuaTribeDescription, immovables),
2563+ PROP_RO(LuaTribeDescription, resource_indicators),
2564 PROP_RO(LuaTribeDescription, name),
2565 PROP_RO(LuaTribeDescription, port),
2566 PROP_RO(LuaTribeDescription, ship),
2567@@ -1496,6 +1497,29 @@
2568 }
2569
2570 /* RST
2571+ .. attribute:: resource_indicators
2572+
2573+ (RO) the table `resource_indicators` as defined in the tribe's `tribename.lua`.
2574+ See `data/tribes/atlanteans.lua` for more information on the table structure.
2575+*/
2576+int LuaTribeDescription::get_resource_indicators(lua_State* L) {
2577+ const TribeDescr& tribe = *get();
2578+ lua_newtable(L);
2579+ const ResourceIndicatorSet resis = tribe.resource_indicators();
2580+ for (const auto& resilist : resis) {
2581+ lua_pushstring(L, resilist.first);
2582+ lua_newtable(L);
2583+ for (const auto& resi : resilist.second) {
2584+ lua_pushinteger(L, resi.first);
2585+ lua_pushstring(L, tribe.get_immovable_descr(resi.second)->name());
2586+ lua_settable(L, -3);
2587+ }
2588+ lua_settable(L, -3);
2589+ }
2590+ return 1;
2591+}
2592+
2593+/* RST
2594 .. attribute:: name
2595
2596 (RO) a :class:`string` with the tribe's internal name
2597
2598=== modified file 'src/scripting/lua_map.h'
2599--- src/scripting/lua_map.h 2018-04-11 06:55:01 +0000
2600+++ src/scripting/lua_map.h 2018-09-14 06:31:21 +0000
2601@@ -134,6 +134,7 @@
2602 int get_carrier2(lua_State*);
2603 int get_descname(lua_State*);
2604 int get_immovables(lua_State*);
2605+ int get_resource_indicators(lua_State*);
2606 int get_geologist(lua_State*);
2607 int get_name(lua_State*);
2608 int get_port(lua_State*);