Merge lp:~widelands-dev/widelands/bug-999262_part2 into lp:widelands

Proposed by GunChleoc
Status: Merged
Merged at revision: 7126
Proposed branch: lp:~widelands-dev/widelands/bug-999262_part2
Merge into: lp:widelands
Diff against target: 1406 lines (+307/-102)
79 files modified
src/ai/defaultai.cc (+2/-2)
src/logic/militarysite.cc (+3/-3)
src/logic/militarysite.h (+1/-1)
src/logic/production_program.cc (+6/-7)
src/logic/production_program.h (+1/-1)
src/logic/productionsite.cc (+41/-1)
src/logic/productionsite.h (+22/-0)
src/logic/worker.cc (+8/-50)
src/logic/worker.h (+0/-4)
tribes/atlanteans/blackroot_farm/conf (+5/-0)
tribes/atlanteans/coalmine/conf (+4/-0)
tribes/atlanteans/crystalmine/conf (+4/-0)
tribes/atlanteans/farm/conf (+5/-0)
tribes/atlanteans/fishers_house/conf (+4/-0)
tribes/atlanteans/goldmine/conf (+4/-0)
tribes/atlanteans/hunters_house/conf (+6/-0)
tribes/atlanteans/ironmine/conf (+4/-0)
tribes/atlanteans/quarry/conf (+6/-2)
tribes/atlanteans/stonecutter/conf (+1/-1)
tribes/atlanteans/well/conf (+5/-0)
tribes/atlanteans/woodcutters_house/conf (+5/-0)
tribes/barbarians/coalmine/conf (+4/-0)
tribes/barbarians/deep_coalmine/conf (+4/-0)
tribes/barbarians/deep_goldmine/conf (+4/-0)
tribes/barbarians/deep_oremine/conf (+4/-0)
tribes/barbarians/deeper_coalmine/conf (+4/-0)
tribes/barbarians/deeper_goldmine/conf (+4/-0)
tribes/barbarians/deeper_oremine/conf (+4/-0)
tribes/barbarians/farm/conf (+5/-0)
tribes/barbarians/fishers_hut/conf (+4/-0)
tribes/barbarians/goldmine/conf (+4/-0)
tribes/barbarians/granitemine/conf (+4/-0)
tribes/barbarians/hunters_hut/conf (+6/-0)
tribes/barbarians/lumberjacks_hut/conf (+5/-0)
tribes/barbarians/oremine/conf (+4/-0)
tribes/barbarians/quarry/conf (+5/-1)
tribes/barbarians/reed_yard/conf (+5/-0)
tribes/barbarians/stonemason/conf (+1/-1)
tribes/barbarians/well/conf (+5/-0)
tribes/empire/coalmine/conf (+4/-0)
tribes/empire/deep_coalmine/conf (+4/-0)
tribes/empire/deep_goldmine/conf (+4/-0)
tribes/empire/deep_marblemine/conf (+4/-0)
tribes/empire/deep_oremine/conf (+4/-0)
tribes/empire/farm/conf (+5/-0)
tribes/empire/fishers_house/conf (+4/-0)
tribes/empire/goldmine/conf (+4/-0)
tribes/empire/hunters_house/conf (+6/-0)
tribes/empire/lumberjacks_house/conf (+5/-0)
tribes/empire/marblemine/conf (+4/-0)
tribes/empire/oremine/conf (+4/-0)
tribes/empire/quarry/conf (+6/-2)
tribes/empire/stonemason/conf (+2/-2)
tribes/empire/vineyard/conf (+5/-0)
tribes/empire/well/conf (+5/-0)
world/immovables/stones/blackland_stones1/init.lua (+1/-1)
world/immovables/stones/blackland_stones2/init.lua (+1/-1)
world/immovables/stones/blackland_stones3/init.lua (+1/-1)
world/immovables/stones/blackland_stones4/init.lua (+1/-1)
world/immovables/stones/blackland_stones5/init.lua (+1/-1)
world/immovables/stones/blackland_stones6/init.lua (+1/-1)
world/immovables/stones/desert_stones1/init.lua (+1/-1)
world/immovables/stones/desert_stones2/init.lua (+1/-1)
world/immovables/stones/desert_stones3/init.lua (+1/-1)
world/immovables/stones/desert_stones4/init.lua (+1/-1)
world/immovables/stones/desert_stones5/init.lua (+1/-1)
world/immovables/stones/desert_stones6/init.lua (+1/-1)
world/immovables/stones/greenland_stones1/init.lua (+1/-1)
world/immovables/stones/greenland_stones2/init.lua (+1/-1)
world/immovables/stones/greenland_stones3/init.lua (+1/-1)
world/immovables/stones/greenland_stones4/init.lua (+1/-1)
world/immovables/stones/greenland_stones5/init.lua (+1/-1)
world/immovables/stones/greenland_stones6/init.lua (+1/-1)
world/immovables/stones/winterland_stones1/init.lua (+1/-1)
world/immovables/stones/winterland_stones2/init.lua (+1/-1)
world/immovables/stones/winterland_stones3/init.lua (+1/-1)
world/immovables/stones/winterland_stones4/init.lua (+1/-1)
world/immovables/stones/winterland_stones5/init.lua (+1/-1)
world/immovables/stones/winterland_stones6/init.lua (+1/-1)
To merge this branch: bzr merge lp:~widelands-dev/widelands/bug-999262_part2
Reviewer Review Type Date Requested Status
SirVer Approve
Review via email: mp+227348@code.launchpad.net

Description of the change

Fixed the ugly hack in Worker::informPlayer

- Renamed the "stone" attrib to match the World's "granite" resource
- Added a new optional [resources] section to ProductionSite conf files to handle "out of resource" messages.

The following building types now use these new message texts:

- Mines
- Fishers' buildings
- Quarries
- Wells
- Hunters' buildings
- Lumberjacks'/Woodcutters' buildings

To post a comment you must log in.
Revision history for this message
wl-zocker (wl-zocker) wrote :

I assumed that since trees and animals can recover and the chance of getting water is 65%, there is no message for lumberjacks, hunters, and wells. Will this behavior change? This would be annoying for lumberjacks (which I have to keep a certain area free from trees) and wells (which I let run even the there is no more water in the ground). Well, just the two cents from a code-illiterate ;)

Revision history for this message
GunChleoc (gunchleoc) wrote :

Well, it's completely configurable and I'm open to suggestions. We could also make the frequency of messages configurable, so lumberjacks and hunters will only pop up once in a while.

Since I don't play often, I'm happy to hear from code illiterates as to what would be appropriate :)

Revision history for this message
wl-zocker (wl-zocker) wrote :

I currently do not have much time to play, but here is my appraisal:
Mines, fishers, quarries: Leave them as they currently are.
Hunters: After thinking about is, you can add them to the list. Animal recovering is quite slow, so it is not really worth having many hunters.
Wells: Never send a message about them.
Lumberjacks: I think the current logic sends the message as soon as the worker does not find the needed resource for the first time (e.g. when all stones are gone and the stonemason wants to cut the next stone). This would mean that the player gets informed after every tree the lumberjack cuts down. Since I usually do not watch my lumberjacks, I do not know how often this happens. Is it possible [*] to send a message when no tree has been cut for x minutes? (For simplicity, you can take the time currently used for the other messages.) Otherwise, just implement it. I (or other players) will complain if I am/they are unsatisfied.

[*] When I write of possible is such suggestions, I mean "technically possible and feasible by humans with an adequate amount of work/time without cluttering the code too much or feasible via script written in an adequate amount of time that does the work in not too much time".

Revision history for this message
SirVer (sirver) wrote :

I think lumberjacks should only send a message after ~10 failed attempts or so. Otherwise they will send too often.

Rest of the comments inlined in the code in r7115.

review: Needs Fixing
Revision history for this message
SirVer (sirver) wrote :

Ahh, save comment to quick again. That is a great change and fairly complex and I just wanted to say that you came a long way as a coder in a very short time.

Revision history for this message
GunChleoc (gunchleoc) wrote :

Thanks! Now that I have QT Creator, the code is so much easier to navigate.

I fixed the commented stuff, now I still need to implement the delays for the messages. So, please wait with merging until I give you a shout.

Revision history for this message
GunChleoc (gunchleoc) wrote :

OK, all done and ready for merging :)

The delay parameters might need some more tweaking, we'll just have to see how it behaves in a real game.

Buildings with message delay are hunters, lumberjacks and wells.

Revision history for this message
SirVer (sirver) wrote :

I changed a couple of nits:

- I moved the documentation of your new methods to the header (documentation in .cc files makes less sense. I know that we did that in the past, but for the future, documentation goes into the header).

- Added a disallow_copy_and_assign() to Productionsite.

- One more refactoring suggestion.

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

I have completely shifted the definition of the notification from worker to productionsite.

Revision history for this message
SirVer (sirver) wrote :

looks good.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/ai/defaultai.cc'
2--- src/ai/defaultai.cc 2014-07-17 12:34:35 +0000
3+++ src/ai/defaultai.cc 2014-07-23 04:48:33 +0000
4@@ -596,7 +596,7 @@
5 // stones are not renewable, we will count them only if previous state si nonzero
6 if (field.stones_nearby_ > 0) {
7
8- int32_t const stone_attr = Map_Object_Descr::get_attribute_id("stone");
9+ int32_t const stone_attr = Map_Object_Descr::get_attribute_id("granite");
10 field.stones_nearby_ = 0;
11
12 for (uint32_t j = 0; j < immovables.size(); ++j) {
13@@ -1872,7 +1872,7 @@
14 if (map.find_immovables(
15 Area<FCoords>(map.get_fcoords(site.site->get_position()), radius),
16 nullptr,
17- FindImmovableAttribute(Map_Object_Descr::get_attribute_id("stone"))) == 0) {
18+ FindImmovableAttribute(Map_Object_Descr::get_attribute_id("granite"))) == 0) {
19 // destruct the building and it's flag (via flag destruction)
20 // the destruction of the flag avoids that defaultAI will have too many
21 // unused roads - if needed the road will be rebuild directly.
22
23=== modified file 'src/logic/militarysite.cc'
24--- src/logic/militarysite.cc 2014-07-17 12:08:01 +0000
25+++ src/logic/militarysite.cc 2014-07-23 04:48:33 +0000
26@@ -782,7 +782,7 @@
27
28 // Inform the player, that we are under attack by adding a new entry to the
29 // message queue - a sound will automatically be played.
30- informPlayer(game, true);
31+ notify_player(game, true);
32 }
33
34 bool MilitarySite::attack(Soldier & enemy)
35@@ -824,7 +824,7 @@
36
37 // Inform the player, that we are under attack by adding a new entry to
38 // the message queue - a sound will automatically be played.
39- informPlayer(game);
40+ notify_player(game);
41
42 return true;
43 } else {
44@@ -931,7 +931,7 @@
45 }
46
47 /// Informs the player about an attack of his opponent.
48-void MilitarySite::informPlayer(Game & game, bool const discovered)
49+void MilitarySite::notify_player(Game & game, bool const discovered)
50 {
51 // Add a message as long as no previous message was send from a point with
52 // radius <= 5 near the current location in the last 60 seconds
53
54=== modified file 'src/logic/militarysite.h'
55--- src/logic/militarysite.h 2014-07-11 22:53:34 +0000
56+++ src/logic/militarysite.h 2014-07-23 04:48:33 +0000
57@@ -146,7 +146,7 @@
58 (Soldier *, bool * stayhome = nullptr);
59 bool haveSoldierJob(Soldier &);
60 bool military_presence_kept(Game &);
61- void informPlayer(Game &, bool discovered = false);
62+ void notify_player(Game &, bool discovered = false);
63 bool update_upgrade_requirements();
64 void update_normal_soldier_request();
65 void update_upgrade_soldier_request();
66
67=== modified file 'src/logic/production_program.cc'
68--- src/logic/production_program.cc 2014-07-16 08:23:42 +0000
69+++ src/logic/production_program.cc 2014-07-23 04:48:33 +0000
70@@ -1279,7 +1279,7 @@
71 // will still produce enough.
72 // e.g. mines have m_chance=5, wells have 65
73 if (m_chance <= 20) {
74- informPlayer(game, ps);
75+ notify_player(game, ps);
76 // and change the default animation
77 ps.set_default_anim("empty");
78 }
79@@ -1306,19 +1306,18 @@
80 return ps.program_step(game);
81 }
82
83-/// Copied from militarysite.cc, MilitarySite::informPlayer
84 /// Informs the player about a mine that has run empty, if the mine has not
85 /// sent this message within the last 60 minutes.
86-void ProductionProgram::ActMine::informPlayer
87+void ProductionProgram::ActMine::notify_player
88 (Game & game, ProductionSite & ps) const
89 {
90+ assert(!ps.descr().out_of_resource_title().empty());
91+ assert(!ps.descr().out_of_resource_message().empty());
92 ps.send_message
93 (game,
94 "mine",
95- _("Main Vein Exhausted"),
96- _
97- ("This mine’s main vein is exhausted. Expect strongly diminished returns on investment. "
98- "You should consider enhancing, dismantling or destroying it."),
99+ ps.descr().out_of_resource_title(),
100+ ps.descr().out_of_resource_message(),
101 true,
102 60 * 60 * 1000,
103 0);
104
105=== modified file 'src/logic/production_program.h'
106--- src/logic/production_program.h 2014-07-14 19:48:07 +0000
107+++ src/logic/production_program.h 2014-07-23 04:48:33 +0000
108@@ -428,7 +428,7 @@
109 const std::string& production_program_name,
110 ProductionSite_Descr*);
111 virtual void execute(Game &, ProductionSite &) const override;
112- virtual void informPlayer(Game &, ProductionSite &) const;
113+ virtual void notify_player(Game &, ProductionSite &) const;
114 private:
115 Resource_Index m_resource;
116 uint8_t m_distance; // width/radius of mine
117
118=== modified file 'src/logic/productionsite.cc'
119--- src/logic/productionsite.cc 2014-07-15 10:02:22 +0000
120+++ src/logic/productionsite.cc 2014-07-23 04:48:33 +0000
121@@ -60,6 +60,19 @@
122 :
123 Building_Descr(_name, _descname, directory, prof, global_s, _tribe)
124 {
125+ Section * const section = prof.get_section("out_of_resource_notification");
126+ if (section != nullptr)
127+ {
128+ m_out_of_resource_title = section->get_string("title", "");
129+ m_out_of_resource_message = section->get_string("message", "");
130+ m_out_of_resource_delay_attempts = section->get_natural("delay_attempts", 0);
131+ }
132+ else
133+ {
134+ m_out_of_resource_title = "";
135+ m_out_of_resource_message = "";
136+ m_out_of_resource_delay_attempts = 0;
137+ }
138 while
139 (Section::Value const * const op = global_s.get_next_val("output"))
140 try {
141@@ -185,7 +198,8 @@
142 m_last_stat_percent (0),
143 m_crude_percent (0),
144 m_is_stopped (false),
145- m_default_anim ("idle")
146+ m_default_anim ("idle"),
147+ m_out_of_resource_delay_counter(0)
148 {
149 m_statistics_buffer[0] = '\0';
150 m_result_buffer[0] = '\0';
151@@ -895,6 +909,31 @@
152 }
153
154
155+void ProductionSite::worker_failed_to_find_resource(Game & game)
156+{
157+ if (!descr().out_of_resource_title().empty() &&
158+ m_out_of_resource_delay_counter >=
159+ descr().out_of_resource_delay_attempts()
160+ )
161+ {
162+ assert(!descr().out_of_resource_message().empty());
163+ send_message
164+ (game,
165+ "produce",
166+ descr().out_of_resource_title(),
167+ descr().out_of_resource_message(),
168+ true,
169+ 1800000, 0);
170+ }
171+ if (m_out_of_resource_delay_counter++ >=
172+ descr().out_of_resource_delay_attempts()
173+ )
174+ {
175+ m_out_of_resource_delay_counter = 0;
176+ }
177+}
178+
179+
180 /// Changes the default anim string to \li anim
181 void ProductionSite::set_default_anim(std::string anim)
182 {
183@@ -907,4 +946,5 @@
184 m_default_anim = anim;
185 }
186
187+
188 }
189
190=== modified file 'src/logic/productionsite.h'
191--- src/logic/productionsite.h 2014-07-11 22:53:34 +0000
192+++ src/logic/productionsite.h 2014-07-23 04:48:33 +0000
193@@ -26,6 +26,7 @@
194 #include <string>
195 #include <vector>
196
197+#include "base/macros.h"
198 #include "logic/bill_of_materials.h"
199 #include "logic/building.h"
200 #include "logic/production_program.h"
201@@ -89,6 +90,16 @@
202 typedef std::map<std::string, ProductionProgram *> Programs;
203 const Programs & programs() const {return m_programs;}
204
205+ const std::string& out_of_resource_title() const {
206+ return m_out_of_resource_title;
207+ }
208+
209+ const std::string& out_of_resource_message() const {
210+ return m_out_of_resource_message;
211+ }
212+ uint32_t out_of_resource_delay_attempts() const {
213+ return m_out_of_resource_delay_attempts;
214+ }
215
216 private:
217 BillOfMaterials m_working_positions;
218@@ -96,6 +107,9 @@
219 Output m_output_ware_types;
220 Output m_output_worker_types;
221 Programs m_programs;
222+ std::string m_out_of_resource_title;
223+ std::string m_out_of_resource_message;
224+ uint32_t m_out_of_resource_delay_attempts;
225 };
226
227 class ProductionSite : public Building {
228@@ -165,6 +179,9 @@
229
230 bool can_start_working() const;
231
232+ /// sends a message to the player if the building's resource can't be found
233+ void worker_failed_to_find_resource(Game & game);
234+
235 void set_default_anim(std::string);
236
237 protected:
238@@ -253,6 +270,11 @@
239 uint32_t m_crude_percent; //integer0-10000000, to be shirink to range 0-10
240 bool m_is_stopped;
241 std::string m_default_anim; // normally "idle", "empty", if empty mine.
242+
243+private:
244+ uint32_t m_out_of_resource_delay_counter;
245+
246+ DISALLOW_COPY_AND_ASSIGN(ProductionSite);
247 };
248
249 /**
250
251=== modified file 'src/logic/worker.cc'
252--- src/logic/worker.cc 2014-07-17 09:15:53 +0000
253+++ src/logic/worker.cc 2014-07-23 04:48:33 +0000
254@@ -23,8 +23,6 @@
255 #include <memory>
256 #include <tuple>
257
258-#include <boost/format.hpp>
259-
260 #include "base/macros.h"
261 #include "base/wexception.h"
262 #include "economy/economy.h"
263@@ -403,10 +401,10 @@
264 send_signal(game, "fail"); // no object found, cannot run program
265 pop_task(game);
266 if (!found_reserved)
267- informPlayer
268- (game,
269- ref_cast<Building, PlayerImmovable>(*get_location(game)),
270- Map_Object_Descr::get_attribute_name(action.iparam2));
271+ {
272+ if (upcast(ProductionSite, productionsite, get_location(game)))
273+ productionsite->worker_failed_to_find_resource(game);
274+ }
275 return true;
276 }
277 std::vector<ImmovableFound> list;
278@@ -446,10 +444,8 @@
279 if (action.iparam1 < area.radius) {
280 send_signal(game, "fail"); // no object found, cannot run program
281 pop_task(game);
282- informPlayer
283- (game,
284- ref_cast<Building, PlayerImmovable>(*get_location(game)),
285- Map_Object_Descr::get_attribute_name(action.iparam2));
286+ if (upcast(ProductionSite, productionsite, get_location(game)))
287+ productionsite->worker_failed_to_find_resource(game);
288 return true;
289 }
290 std::vector<Bob *> list;
291@@ -575,10 +571,8 @@
292 if (!map.find_reachable_fields(area, &list, cstep, functor)) {
293 molog(" no space found\n");
294
295- informPlayer
296- (game,
297- ref_cast<Building, PlayerImmovable>(*get_location(game)),
298- action.sparam1);
299+ if (upcast(ProductionSite, productionsite, get_location(game)))
300+ productionsite->worker_failed_to_find_resource(game);
301
302 send_signal(game, "fail");
303 pop_task(game);
304@@ -593,42 +587,6 @@
305 return true;
306 }
307
308-// Informs the player about a building that cannot find resources any more,
309-void Worker::informPlayer
310- (Game & game, Building & building, std::string res_type) const
311-{
312- // NOTE this is just an ugly hack for now, to avoid getting messages
313- // NOTE for farms, reed yards, vineyards, etc.
314- if ((res_type != "fish") && (res_type != "stone"))
315- return;
316- // NOTE AND fish_breeders
317- if (building.descr().name() == "fish_breeders_house")
318- return;
319-
320- // TODO "stone" is defined as "granite" in the world. But this code is
321- // erroneus anyways: it translates immovable attribute stone as resource
322- // granite. Instead, the immovable attributes should be made translatable in
323- // the world or the quarry should define its out of stone message in its
324- // configuartion.
325- if (res_type == "stone") res_type = "granite";
326-
327- // Translate the Resource name (if it is defined by the world)
328- const World & world = game.world();
329- int32_t residx = world.get_resource(res_type.c_str());
330- if (residx != -1)
331- res_type = world.get_resource(residx)->descname();
332-
333- building.send_message
334- (game,
335- "mine",
336- (boost::format(_("Out of %s")) % res_type).str(),
337- (boost::format(_("The worker of this building cannot find any more %s.")) % res_type).str(),
338- true,
339- 1800000, 0);
340-}
341-
342-
343-
344 /**
345 * walk \<where\>
346 *
347
348=== modified file 'src/logic/worker.h'
349--- src/logic/worker.h 2014-07-16 08:25:35 +0000
350+++ src/logic/worker.h 2014-07-23 04:48:33 +0000
351@@ -245,10 +245,6 @@
352 bool run_playFX (Game &, State &, const Action &);
353 bool run_construct (Game &, State &, const Action &);
354
355- // Displays a message to the player if a find... program can't be
356- // executed
357- void informPlayer(Game &, Building &, std::string) const;
358-
359 OPtr<PlayerImmovable> m_location; ///< meta location of the worker
360 Economy * m_economy; ///< economy this worker is registered in
361 OPtr<WareInstance> m_carried_ware; ///< ware we are carrying
362
363=== modified file 'tribes/atlanteans/blackroot_farm/conf'
364--- tribes/atlanteans/blackroot_farm/conf 2014-03-17 17:23:26 +0000
365+++ tribes/atlanteans/blackroot_farm/conf 2014-07-23 04:48:33 +0000
366@@ -36,6 +36,11 @@
367 call=harvest_blackroot
368 return=skipped
369
370+[out_of_resource_notification]
371+title=_Out of Fields
372+message=_The farmer working at this blackroot farm has no cleared soil to plant his seeds.
373+delay_attempts=10
374+
375 [idle]
376 pics=blackroot_farm_i_??.png # ???
377 hotspot=74 60
378
379=== modified file 'tribes/atlanteans/coalmine/conf'
380--- tribes/atlanteans/coalmine/conf 2014-07-14 10:45:44 +0000
381+++ tribes/atlanteans/coalmine/conf 2014-07-23 04:48:33 +0000
382@@ -39,6 +39,10 @@
383 mine=coal 4 100 5 2
384 produce=coal:3
385
386+[out_of_resource_notification]
387+title=_Main Coal Vein Exhausted.
388+message=_This coal mine’s main vein is exhausted. Expect strongly diminished returns on investment. You should consider dismantling or destroying it.
389+
390 [idle]
391 pics=coalmine_i_??.png
392 hotspot=50 56
393
394=== modified file 'tribes/atlanteans/crystalmine/conf'
395--- tribes/atlanteans/crystalmine/conf 2014-07-14 10:45:44 +0000
396+++ tribes/atlanteans/crystalmine/conf 2014-07-23 04:48:33 +0000
397@@ -83,6 +83,10 @@
398 call=mine_diamond
399 return=skipped
400
401+[out_of_resource_notification]
402+title=_Main Crystal Vein Exhausted.
403+message=_This crystal mine’s main vein is exhausted. Expect strongly diminished returns on investment. You should consider dismantling or destroying it.
404+
405 [idle]
406 pics=crystalmine_i_??.png
407 hotspot=50 56
408
409=== modified file 'tribes/atlanteans/farm/conf'
410--- tribes/atlanteans/farm/conf 2014-07-14 10:45:44 +0000
411+++ tribes/atlanteans/farm/conf 2014-07-23 04:48:33 +0000
412@@ -39,6 +39,11 @@
413 playFX=../../../sound/farm/farm_animal 192
414 return=skipped
415
416+[out_of_resource_notification]
417+title=_Out of Fields
418+message=_The farmer working at this farm has no cleared soil to plant his seeds.
419+delay_attempts=10
420+
421 [idle]
422 pics=farm_i_??.png # ???
423 hotspot=74 60
424
425=== modified file 'tribes/atlanteans/fishers_house/conf'
426--- tribes/atlanteans/fishers_house/conf 2014-05-27 14:14:14 +0000
427+++ tribes/atlanteans/fishers_house/conf 2014-07-23 04:48:33 +0000
428@@ -22,6 +22,10 @@
429 sleep=16000
430 worker=fish
431
432+[out_of_resource_notification]
433+title=_Out of Fish
434+message=_The fisher working out of this fisher’s house can’t find any fish in his working radius. Remember that you can increase the number of existing fish by building a fishbreeder’s house.
435+
436 [idle]
437 pics=fishers_house_i_??.png # ???
438 hotspot=34 42
439
440=== modified file 'tribes/atlanteans/goldmine/conf'
441--- tribes/atlanteans/goldmine/conf 2014-07-14 10:45:44 +0000
442+++ tribes/atlanteans/goldmine/conf 2014-07-23 04:48:33 +0000
443@@ -40,6 +40,10 @@
444 mine=gold 4 100 5 2
445 produce=goldore
446
447+[out_of_resource_notification]
448+title=_Main Gold Vein Exhausted.
449+message=_This gold mine’s main vein is exhausted. Expect strongly diminished returns on investment. You should consider dismantling or destroying it.
450+
451 [idle]
452 pics=goldmine_i_??.png
453 hotspot=50 56
454
455=== modified file 'tribes/atlanteans/hunters_house/conf'
456--- tribes/atlanteans/hunters_house/conf 2014-05-27 14:14:14 +0000
457+++ tribes/atlanteans/hunters_house/conf 2014-07-23 04:48:33 +0000
458@@ -22,6 +22,12 @@
459 sleep=35000
460 worker=hunt
461
462+[out_of_resource_notification]
463+# TRANSLATORS: "Game" means animals that you can hunt
464+title=_Out of Game
465+message=_The hunter working out of this hunter’s house can’t find any game in his working radius. Remember that you can increase the number of existing fish by building a fishbreeder’s house.
466+delay_attempts=10
467+
468 [idle]
469 pics=hunters_house_i_??.png
470 hotspot=36 44
471
472=== modified file 'tribes/atlanteans/ironmine/conf'
473--- tribes/atlanteans/ironmine/conf 2014-07-14 10:45:44 +0000
474+++ tribes/atlanteans/ironmine/conf 2014-07-23 04:48:33 +0000
475@@ -40,6 +40,10 @@
476 mine=iron 4 100 5 2
477 produce=ironore:2
478
479+[out_of_resource_notification]
480+title=_Main Iron Vein Exhausted.
481+message=_This iron mine’s main vein is exhausted. Expect strongly diminished returns on investment. You should consider dismantling or destroying it.
482+
483 [idle]
484 pics=ironmine_i_??.png
485 hotspot=50 56
486
487=== modified file 'tribes/atlanteans/quarry/conf'
488--- tribes/atlanteans/quarry/conf 2014-07-14 10:45:44 +0000
489+++ tribes/atlanteans/quarry/conf 2014-07-23 04:48:33 +0000
490@@ -19,8 +19,12 @@
491 work=_Work
492
493 [work]
494-worker=cut_stone # This order is on purpose so that the productivity
495-sleep=25000 # drops fast once all stones are gone.
496+worker=cut_stone # This order is on purpose so that the productivity
497+sleep=25000 # drops fast once all stones are gone.
498+
499+[out_of_resource_notification]
500+title=_Out of Rocks
501+message=_The stonecutter working at this quarry can’t find any rocks in his working radius.
502
503 [idle]
504 pics=quarry_i_??.png # ???
505
506=== modified file 'tribes/atlanteans/stonecutter/conf'
507--- tribes/atlanteans/stonecutter/conf 2014-03-16 20:55:15 +0000
508+++ tribes/atlanteans/stonecutter/conf 2014-07-23 04:48:33 +0000
509@@ -6,7 +6,7 @@
510 carrier=1
511
512 [cut_stone]
513-0=findobject attrib:stone radius:6
514+0=findobject attrib:granite radius:6
515 1=walk object
516 2=playFX ../../../sound/stonecutting/stonecutter 192
517 3=animation hacking 10000
518
519=== modified file 'tribes/atlanteans/well/conf'
520--- tribes/atlanteans/well/conf 2014-06-06 20:27:28 +0000
521+++ tribes/atlanteans/well/conf 2014-07-23 04:48:33 +0000
522@@ -22,6 +22,11 @@
523 mine=water 1 100 65 2
524 produce=water
525
526+[out_of_resource_notification]
527+title=_Out of Water
528+message=_The carrier working at this well can’t find any water in his working radius.
529+delay_attempts=50
530+
531 [idle]
532 pics=well_i_??.png # ???
533 hotspot=31 32
534
535=== modified file 'tribes/atlanteans/woodcutters_house/conf'
536--- tribes/atlanteans/woodcutters_house/conf 2014-05-27 14:14:14 +0000
537+++ tribes/atlanteans/woodcutters_house/conf 2014-07-23 04:48:33 +0000
538@@ -23,6 +23,11 @@
539 sleep=30000 # Barbarian lumberjack sleeps 25000
540 worker=harvest
541
542+[out_of_resource_notification]
543+title=_Out of Trees
544+message=_The woodcutter working at this woodcutter’s house can’t find any trees in his working radius. You should consider dismantling or destroying the building or building a forester’s house.
545+delay_attempts=60
546+
547 [idle]
548 pics=woodcutters_house_i_??.png
549 hotspot=37 44
550
551=== modified file 'tribes/barbarians/coalmine/conf'
552--- tribes/barbarians/coalmine/conf 2014-04-13 19:23:43 +0000
553+++ tribes/barbarians/coalmine/conf 2014-07-23 04:48:33 +0000
554@@ -30,6 +30,10 @@
555 mine=coal 2 33 5 17
556 produce=coal:2
557
558+[out_of_resource_notification]
559+title=_Main Coal Vein Exhausted
560+message=_This coal mine’s main vein is exhausted. Expect strongly diminished returns on investment. You should consider enhancing, dismantling or destroying it.
561+
562 [idle]
563 pics=coalmine_i_??.png
564 hotspot=21 36
565
566=== modified file 'tribes/barbarians/deep_coalmine/conf'
567--- tribes/barbarians/deep_coalmine/conf 2014-04-13 19:23:43 +0000
568+++ tribes/barbarians/deep_coalmine/conf 2014-07-23 04:48:33 +0000
569@@ -36,6 +36,10 @@
570 mine=coal 2 66 5 17
571 produce=coal:2
572
573+[out_of_resource_notification]
574+title=_Main Coal Vein Exhausted
575+message=_This coal mine’s main vein is exhausted. Expect strongly diminished returns on investment. You should consider enhancing, dismantling or destroying it.
576+
577 [idle]
578 pics=deep_coalmine_i_??.png
579 hotspot=21 37
580
581=== modified file 'tribes/barbarians/deep_goldmine/conf'
582--- tribes/barbarians/deep_goldmine/conf 2014-04-13 19:23:43 +0000
583+++ tribes/barbarians/deep_goldmine/conf 2014-07-23 04:48:33 +0000
584@@ -36,6 +36,10 @@
585 mine=gold 2 66 5 17
586 produce=goldore:2
587
588+[out_of_resource_notification]
589+title=_Main Gold Vein Exhausted
590+message=_This gold mine’s main vein is exhausted. Expect strongly diminished returns on investment. You should consider enhancing, dismantling or destroying it.
591+
592 [idle]
593 pics=deep_goldmine_i_??.png
594 hotspot=21 37
595
596=== modified file 'tribes/barbarians/deep_oremine/conf'
597--- tribes/barbarians/deep_oremine/conf 2014-04-13 19:23:43 +0000
598+++ tribes/barbarians/deep_oremine/conf 2014-07-23 04:48:33 +0000
599@@ -36,6 +36,10 @@
600 mine=iron 2 66 5 17
601 produce=ironore:1
602
603+[out_of_resource_notification]
604+title=_Main Iron Vein Exhausted
605+message=_This iron mine’s main vein is exhausted. Expect strongly diminished returns on investment. You should consider enhancing, dismantling or destroying it.
606+
607 [build]
608 pics=deep_oremine_b_??.png
609 hotspot=21 37
610
611=== modified file 'tribes/barbarians/deeper_coalmine/conf'
612--- tribes/barbarians/deeper_coalmine/conf 2014-04-13 19:23:43 +0000
613+++ tribes/barbarians/deeper_coalmine/conf 2014-07-23 04:48:33 +0000
614@@ -35,6 +35,10 @@
615 mine=coal 2 100 10 2
616 produce=coal:3
617
618+[out_of_resource_notification]
619+title=_Main Coal Vein Exhausted
620+message=_This coal mine’s main vein is exhausted. Expect strongly diminished returns on investment. This mine can’t be enhanced any further, so you should consider dismantling or destroying it.
621+
622 [idle]
623 pics=deeper_coalmine_i_??.png
624 hotspot=60 37
625
626=== modified file 'tribes/barbarians/deeper_goldmine/conf'
627--- tribes/barbarians/deeper_goldmine/conf 2014-04-13 19:23:43 +0000
628+++ tribes/barbarians/deeper_goldmine/conf 2014-07-23 04:48:33 +0000
629@@ -35,6 +35,10 @@
630 mine=gold 2 100 10 2
631 produce=goldore:2
632
633+[out_of_resource_notification]
634+title=_Main Gold Vein Exhausted
635+message=_This gold mine’s main vein is exhausted. Expect strongly diminished returns on investment. This mine can’t be enhanced any further, so you should consider dismantling or destroying it.
636+
637 [idle]
638 pics=deeper_goldmine_i_??.png
639 hotspot=60 37
640
641=== modified file 'tribes/barbarians/deeper_oremine/conf'
642--- tribes/barbarians/deeper_oremine/conf 2014-07-14 10:45:44 +0000
643+++ tribes/barbarians/deeper_oremine/conf 2014-07-23 04:48:33 +0000
644@@ -38,6 +38,10 @@
645 mine=iron 2 100 10 2
646 produce=ironore:2
647
648+[out_of_resource_notification]
649+title=_Main Iron Vein Exhausted
650+message=_This iron mine’s main vein is exhausted. Expect strongly diminished returns on investment. This mine can’t be enhanced any further, so you should consider dismantling or destroying it.
651+
652 [idle]
653 pics=deeper_oremine_i_??.png
654 hotspot=60 37
655
656=== modified file 'tribes/barbarians/farm/conf'
657--- tribes/barbarians/farm/conf 2014-03-17 17:23:26 +0000
658+++ tribes/barbarians/farm/conf 2014-07-23 04:48:33 +0000
659@@ -36,6 +36,11 @@
660 playFX=../../../sound/farm/farm_animal 192
661 return=skipped
662
663+[out_of_resource_notification]
664+title=_Out of Fields
665+message=_The farmer working at this farm has no cleared soil to plant his seeds.
666+delay_attempts=10
667+
668 [idle]
669 pics=farm_i_??.png # ???
670 hotspot=72 73
671
672=== modified file 'tribes/barbarians/fishers_hut/conf'
673--- tribes/barbarians/fishers_hut/conf 2014-05-25 17:43:56 +0000
674+++ tribes/barbarians/fishers_hut/conf 2014-07-23 04:48:33 +0000
675@@ -21,6 +21,10 @@
676 sleep=18000
677 worker=fish
678
679+[out_of_resource_notification]
680+title=_Out of Fish
681+message=_The fisher working out of this fisher’s hut can’t find any fish in his working radius.
682+
683 [idle]
684 pics=fishers_hut_i_??.png # ???
685 hotspot=39 40
686
687=== modified file 'tribes/barbarians/goldmine/conf'
688--- tribes/barbarians/goldmine/conf 2014-04-13 19:23:43 +0000
689+++ tribes/barbarians/goldmine/conf 2014-07-23 04:48:33 +0000
690@@ -31,6 +31,10 @@
691 mine=gold 2 33 5 17
692 produce=goldore
693
694+[out_of_resource_notification]
695+title=_Main Gold Vein Exhausted
696+message=_This gold mine’s main vein is exhausted. Expect strongly diminished returns on investment. You should consider enhancing, dismantling or destroying it.
697+
698 [idle]
699 pics=goldmine_i_??.png
700 hotspot=21 36
701
702=== modified file 'tribes/barbarians/granitemine/conf'
703--- tribes/barbarians/granitemine/conf 2014-07-14 10:45:44 +0000
704+++ tribes/barbarians/granitemine/conf 2014-07-23 04:48:33 +0000
705@@ -28,6 +28,10 @@
706 mine=granite 2 100 5 17
707 produce=raw_stone:2
708
709+[out_of_resource_notification]
710+title=_Main Granite Vein Exhausted
711+message=_This granite mine’s main vein is exhausted. Expect strongly diminished returns on investment. This mine can’t be enhanced any further, so you should consider dismantling or destroying it.
712+
713 [idle]
714 pics=granitemine_i_??.png
715 hotspot=42 35
716
717=== modified file 'tribes/barbarians/hunters_hut/conf'
718--- tribes/barbarians/hunters_hut/conf 2014-05-25 17:43:56 +0000
719+++ tribes/barbarians/hunters_hut/conf 2014-07-23 04:48:33 +0000
720@@ -22,6 +22,12 @@
721 sleep=35000
722 worker=hunt
723
724+[out_of_resource_notification]
725+# TRANSLATORS: "Game" means animals that you can hunt
726+title=_Out of Game
727+message=_The hunter working out of this hunter’s hut can’t find any game in his working radius. Remember that you can build a gamekeeper’s hut to release more game into the wild.
728+delay_attempts=10
729+
730 [idle]
731 pics=hunters_hut_i_??.png
732 hotspot=45 40
733
734=== modified file 'tribes/barbarians/lumberjacks_hut/conf'
735--- tribes/barbarians/lumberjacks_hut/conf 2014-03-15 11:29:32 +0000
736+++ tribes/barbarians/lumberjacks_hut/conf 2014-07-23 04:48:33 +0000
737@@ -21,6 +21,11 @@
738 sleep=25000 # sleeps shorter than any other tribes
739 worker=chop
740
741+[out_of_resource_notification]
742+title=_Out of Trees
743+message=_The lumberjack working at this lumberjack’s hut can’t find any trees in his working radius. You should consider dismantling or destroying the building or building a rangers’s hut.
744+delay_attempts=60
745+
746 [idle]
747 pics=lumberjacks_hut_i_??.png
748 hotspot=40 38
749
750=== modified file 'tribes/barbarians/oremine/conf'
751--- tribes/barbarians/oremine/conf 2014-04-13 19:23:43 +0000
752+++ tribes/barbarians/oremine/conf 2014-07-23 04:48:33 +0000
753@@ -31,6 +31,10 @@
754 mine=iron 2 33 5 17
755 produce=ironore
756
757+[out_of_resource_notification]
758+title=_Main Iron Vein Exhausted
759+message=_This iron mine’s main vein is exhausted. Expect strongly diminished returns on investment. You should consider enhancing, dismantling or destroying it.
760+
761 [idle]
762 pics=oremine_i_??.png
763 hotspot=21 36
764
765=== modified file 'tribes/barbarians/quarry/conf'
766--- tribes/barbarians/quarry/conf 2014-07-15 10:02:22 +0000
767+++ tribes/barbarians/quarry/conf 2014-07-23 04:48:33 +0000
768@@ -18,9 +18,13 @@
769 work=_Work
770
771 [work]
772-worker=cut # This order is on purpose so that the productivity
773+worker=cut # This order is on purpose so that the productivity
774 sleep=25000 # drops fast once all stones are gone.
775
776+[out_of_resource_notification]
777+title=_Out of Rocks
778+message=_The stonemason working at this quarry can’t find any rocks in his working radius.
779+
780 [idle]
781 pics=quarry_i_??.png # ???
782 hotspot=45 40
783
784=== modified file 'tribes/barbarians/reed_yard/conf'
785--- tribes/barbarians/reed_yard/conf 2014-03-15 11:54:07 +0000
786+++ tribes/barbarians/reed_yard/conf 2014-07-23 04:48:33 +0000
787@@ -33,6 +33,11 @@
788 call=harvest_reed
789 return=skipped
790
791+[out_of_resource_notification]
792+title=_Out of Fields
793+message=_The gardener working at this reed yard has no cleared soil to plant his seeds.
794+delay_attempts=10
795+
796 [idle]
797 pics=reed_yard_i_??.png # ???
798 hotspot=46 44
799
800=== modified file 'tribes/barbarians/stonemason/conf'
801--- tribes/barbarians/stonemason/conf 2014-03-16 20:55:15 +0000
802+++ tribes/barbarians/stonemason/conf 2014-07-23 04:48:33 +0000
803@@ -6,7 +6,7 @@
804 carrier=1
805
806 [cut]
807-0=findobject attrib:stone radius:6
808+0=findobject attrib:granite radius:6
809 1=walk object
810 2=playFX ../../../sound/stonecutting/stonecutter 192
811 3=animation hacking 10000
812
813=== modified file 'tribes/barbarians/well/conf'
814--- tribes/barbarians/well/conf 2014-06-06 20:27:28 +0000
815+++ tribes/barbarians/well/conf 2014-07-23 04:48:33 +0000
816@@ -23,6 +23,11 @@
817 mine=water 1 100 65 2
818 produce=water
819
820+[out_of_resource_notification]
821+title=_Out of Water
822+message=_The carrier working at this well can’t find any water in his working radius.
823+delay_attempts=50
824+
825 [idle]
826 pics=well_i_??.png
827 hotspot=19 33
828
829=== modified file 'tribes/empire/coalmine/conf'
830--- tribes/empire/coalmine/conf 2014-07-14 10:45:44 +0000
831+++ tribes/empire/coalmine/conf 2014-07-23 04:48:33 +0000
832@@ -36,6 +36,10 @@
833 mine=coal 2 50 5 17
834 produce=coal
835
836+[out_of_resource_notification]
837+title=_Main Coal Vein Exhausted
838+message=_This coal mine’s main vein is exhausted. Expect strongly diminished returns on investment. You should consider enhancing, dismantling or destroying it.
839+
840 [idle]
841 pics=coalmine_i_??.png
842 hotspot=49 49
843
844=== modified file 'tribes/empire/deep_coalmine/conf'
845--- tribes/empire/deep_coalmine/conf 2014-07-14 10:45:44 +0000
846+++ tribes/empire/deep_coalmine/conf 2014-07-23 04:48:33 +0000
847@@ -37,6 +37,10 @@
848 mine=coal 2 100 5 2
849 produce=coal:3
850
851+[out_of_resource_notification]
852+title=_Main Coal Vein Exhausted
853+message=_This coal mine’s main vein is exhausted. Expect strongly diminished returns on investment. This mine can’t be enhanced any further, so you should consider dismantling or destroying it.
854+
855 [idle]
856 pics=deep_coalmine_i_??.png
857 hotspot=49 61
858
859=== modified file 'tribes/empire/deep_goldmine/conf'
860--- tribes/empire/deep_goldmine/conf 2014-07-14 10:45:44 +0000
861+++ tribes/empire/deep_goldmine/conf 2014-07-23 04:48:33 +0000
862@@ -37,6 +37,10 @@
863 mine=gold 2 100 5 2
864 produce=goldore:2
865
866+[out_of_resource_notification]
867+title=_Main Gold Vein Exhausted
868+message=_This gold mine’s main vein is exhausted. Expect strongly diminished returns on investment. This mine can’t be enhanced any further, so you should consider dismantling or destroying it.
869+
870 [idle]
871 pics=deep_goldmine_i_??.png
872 hotspot=49 61
873
874=== modified file 'tribes/empire/deep_marblemine/conf'
875--- tribes/empire/deep_marblemine/conf 2014-04-18 12:43:49 +0000
876+++ tribes/empire/deep_marblemine/conf 2014-07-23 04:48:33 +0000
877@@ -36,6 +36,10 @@
878 mine=granite 2 100 5 2
879 produce=marble stone:2
880
881+[out_of_resource_notification]
882+title=_Main Marble Vein Exhausted
883+message=_This marble mine’s main vein is exhausted. Expect strongly diminished returns on investment. This mine can’t be enhanced any further, so you should consider dismantling or destroying it.
884+
885 [idle]
886 pics=deep_marblemine_i_??.png
887 hotspot=49 61
888
889=== modified file 'tribes/empire/deep_oremine/conf'
890--- tribes/empire/deep_oremine/conf 2014-07-14 10:45:44 +0000
891+++ tribes/empire/deep_oremine/conf 2014-07-23 04:48:33 +0000
892@@ -37,6 +37,10 @@
893 mine=iron 2 100 5 2
894 produce=ironore:2
895
896+[out_of_resource_notification]
897+title=_Main Iron Vein Exhausted
898+message=_This iron mine’s main vein is exhausted. Expect strongly diminished returns on investment. This mine can’t be enhanced any further, so you should consider dismantling or destroying it.
899+
900 [idle]
901 pics=deep_oremine_i_??.png
902 hotspot=49 61
903
904=== modified file 'tribes/empire/farm/conf'
905--- tribes/empire/farm/conf 2014-07-14 10:45:44 +0000
906+++ tribes/empire/farm/conf 2014-07-23 04:48:33 +0000
907@@ -39,6 +39,11 @@
908 playFX=../../../sound/farm/farm_animal 192
909 return=skipped
910
911+[out_of_resource_notification]
912+title=_Out of Fields
913+message=_The farmer working at this farm has no cleared soil to plant his seeds.
914+delay_attempts=10
915+
916 [idle]
917 pics=farm_i_??.png # ???
918 hotspot=82 74
919
920=== modified file 'tribes/empire/fishers_house/conf'
921--- tribes/empire/fishers_house/conf 2014-05-26 20:36:01 +0000
922+++ tribes/empire/fishers_house/conf 2014-07-23 04:48:33 +0000
923@@ -23,6 +23,10 @@
924 sleep=17000
925 worker=fish
926
927+[out_of_resource_notification]
928+title=_Out of Fish
929+message=_The fisher working in this fisher’s house can’t find any fish in his working radius.
930+
931 [idle]
932 pics=fishers_house_i_??.png # ???
933 hotspot=42 60
934
935=== modified file 'tribes/empire/goldmine/conf'
936--- tribes/empire/goldmine/conf 2014-07-14 10:45:44 +0000
937+++ tribes/empire/goldmine/conf 2014-07-23 04:48:33 +0000
938@@ -37,6 +37,10 @@
939 mine=gold 2 50 5 17
940 produce=goldore
941
942+[out_of_resource_notification]
943+title=_Main Gold Vein Exhausted
944+message=_This gold mine’s main vein is exhausted. Expect strongly diminished returns on investment. You should consider enhancing, dismantling or destroying it.
945+
946 [idle]
947 pics=goldmine_i_??.png
948 hotspot=49 49
949
950=== modified file 'tribes/empire/hunters_house/conf'
951--- tribes/empire/hunters_house/conf 2014-05-26 20:36:01 +0000
952+++ tribes/empire/hunters_house/conf 2014-07-23 04:48:33 +0000
953@@ -22,6 +22,12 @@
954 sleep=35000
955 worker=hunt
956
957+[out_of_resource_notification]
958+# TRANSLATORS: "Game" means animals that you can hunt
959+title=_Out of Game
960+message=_The hunter working out of this hunter’s house can’t find any game in his working radius.
961+delay_attempts=10
962+
963 [idle]
964 pics=hunters_house_i_??.png
965 hotspot=54 55
966
967=== modified file 'tribes/empire/lumberjacks_house/conf'
968--- tribes/empire/lumberjacks_house/conf 2014-05-26 20:36:01 +0000
969+++ tribes/empire/lumberjacks_house/conf 2014-07-23 04:48:33 +0000
970@@ -23,6 +23,11 @@
971 sleep=30000 # Barbarian lumberjack sleeps 25000
972 worker=chop
973
974+[out_of_resource_notification]
975+title=_Out of Trees
976+message=_The lumberjack working at this lumberjack’s house can’t find any trees in his working radius. You should consider dismantling or destroying the building or building a forester’s house.
977+delay_attempts=60
978+
979 [idle]
980 pics=lumberjacks_house_i_??.png
981 hotspot=40 59
982
983=== modified file 'tribes/empire/marblemine/conf'
984--- tribes/empire/marblemine/conf 2014-06-14 14:20:22 +0000
985+++ tribes/empire/marblemine/conf 2014-07-23 04:48:33 +0000
986@@ -48,6 +48,10 @@
987 mine=granite 2 50 5 17
988 produce=stone:2
989
990+[out_of_resource_notification]
991+title=_Main Marble Vein Exhausted
992+message=_This marble mine’s main vein is exhausted. Expect strongly diminished returns on investment. You should consider enhancing, dismantling or destroying it.
993+
994 [work]
995 call=mine_marble
996 call=mine_stone
997
998=== modified file 'tribes/empire/oremine/conf'
999--- tribes/empire/oremine/conf 2014-07-14 10:45:44 +0000
1000+++ tribes/empire/oremine/conf 2014-07-23 04:48:33 +0000
1001@@ -37,6 +37,10 @@
1002 mine=iron 2 50 5 17
1003 produce=ironore:2
1004
1005+[out_of_resource_notification]
1006+title=_Main Iron Vein Exhausted
1007+message=_This iron mine’s main vein is exhausted. Expect strongly diminished returns on investment. You should consider enhancing, dismantling or destroying it.
1008+
1009 [idle]
1010 pics=oremine_i_??.png
1011 hotspot=49 49
1012
1013=== modified file 'tribes/empire/quarry/conf'
1014--- tribes/empire/quarry/conf 2014-07-14 10:45:44 +0000
1015+++ tribes/empire/quarry/conf 2014-07-23 04:48:33 +0000
1016@@ -22,11 +22,11 @@
1017 work=_Work
1018
1019 [mine_stone]
1020-worker=cut_stone # This order is on purpose so that the productivity
1021+worker=cut_stone # This order is on purpose so that the productivity
1022 sleep=25000 # drops fast once all stones are gone.
1023
1024 [mine_marble]
1025-worker=cut_marble # This order is on purpose so that the productivity
1026+worker=cut_marble # This order is on purpose so that the productivity
1027 sleep=25000 # drops fast once all stones are gone.
1028
1029 [work]
1030@@ -39,6 +39,10 @@
1031 call=mine_marble # 2 of 7 times it finds marble
1032 return=skipped
1033
1034+[out_of_resource_notification]
1035+title=_Out of Rocks
1036+message=_The stonemason working at this quarry can’t find any rocks in his working radius.
1037+
1038 [idle]
1039 pics=quarry_i_??.png # ???
1040 hotspot=42 57
1041
1042=== modified file 'tribes/empire/stonemason/conf'
1043--- tribes/empire/stonemason/conf 2014-03-16 20:55:15 +0000
1044+++ tribes/empire/stonemason/conf 2014-07-23 04:48:33 +0000
1045@@ -7,7 +7,7 @@
1046 carrier=1
1047
1048 [cut_stone]
1049-0=findobject attrib:stone radius:6
1050+0=findobject attrib:granite radius:6
1051 1=walk object
1052 2=playFX ../../../sound/stonecutting/stonecutter 220
1053 3=animation hacking 10000
1054@@ -16,7 +16,7 @@
1055 6=return
1056
1057 [cut_marble]
1058-0=findobject attrib:stone radius:6
1059+0=findobject attrib:granite radius:6
1060 1=walk object
1061 2=playFX ../../../sound/stonecutting/stonecutter 220
1062 3=animation hacking 10000
1063
1064=== modified file 'tribes/empire/vineyard/conf'
1065--- tribes/empire/vineyard/conf 2014-07-14 10:45:44 +0000
1066+++ tribes/empire/vineyard/conf 2014-07-23 04:48:33 +0000
1067@@ -38,6 +38,11 @@
1068 call=harvest_vine
1069 return=skipped
1070
1071+[out_of_resource_notification]
1072+title=_Out of Fields
1073+message=_The farmer working at this vineyard has no cleared soil to plant his seeds.
1074+delay_attempts=10
1075+
1076 [idle]
1077 pics=vineyard_i_??.png # ???
1078 hotspot=53 53
1079
1080=== modified file 'tribes/empire/well/conf'
1081--- tribes/empire/well/conf 2014-06-06 20:27:28 +0000
1082+++ tribes/empire/well/conf 2014-07-23 04:48:33 +0000
1083@@ -26,6 +26,11 @@
1084 mine=water 1 100 65 2
1085 produce=water
1086
1087+[out_of_resource_notification]
1088+title=_Out of Water
1089+message=_The carrier working at this well can’t find any water in his working radius.
1090+delay_attempts=50
1091+
1092 [idle]
1093 pics=well_i_??.png # ???
1094 hotspot=43 58
1095
1096=== modified file 'world/immovables/stones/blackland_stones1/init.lua'
1097--- world/immovables/stones/blackland_stones1/init.lua 2014-05-03 08:40:59 +0000
1098+++ world/immovables/stones/blackland_stones1/init.lua 2014-07-23 04:48:33 +0000
1099@@ -12,7 +12,7 @@
1100 descname = _ "Stones 1",
1101 editor_category = "stones",
1102 size = "big",
1103- attributes = { "stone" },
1104+ attributes = { "granite" },
1105 programs = {
1106 shrink = {
1107 "remove="
1108
1109=== modified file 'world/immovables/stones/blackland_stones2/init.lua'
1110--- world/immovables/stones/blackland_stones2/init.lua 2014-05-03 08:40:59 +0000
1111+++ world/immovables/stones/blackland_stones2/init.lua 2014-07-23 04:48:33 +0000
1112@@ -12,7 +12,7 @@
1113 descname = _ "Stones 2",
1114 editor_category = "stones",
1115 size = "big",
1116- attributes = { "stone" },
1117+ attributes = { "granite" },
1118 programs = {
1119 shrink = {
1120 "transform=blackland_stones1"
1121
1122=== modified file 'world/immovables/stones/blackland_stones3/init.lua'
1123--- world/immovables/stones/blackland_stones3/init.lua 2014-05-03 08:40:59 +0000
1124+++ world/immovables/stones/blackland_stones3/init.lua 2014-07-23 04:48:33 +0000
1125@@ -12,7 +12,7 @@
1126 descname = _ "Stones 3",
1127 editor_category = "stones",
1128 size = "big",
1129- attributes = { "stone" },
1130+ attributes = { "granite" },
1131 programs = {
1132 shrink = {
1133 "transform=blackland_stones2"
1134
1135=== modified file 'world/immovables/stones/blackland_stones4/init.lua'
1136--- world/immovables/stones/blackland_stones4/init.lua 2014-05-03 08:40:59 +0000
1137+++ world/immovables/stones/blackland_stones4/init.lua 2014-07-23 04:48:33 +0000
1138@@ -12,7 +12,7 @@
1139 descname = _ "Stones 4",
1140 editor_category = "stones",
1141 size = "big",
1142- attributes = { "stone" },
1143+ attributes = { "granite" },
1144 programs = {
1145 shrink = {
1146 "transform=blackland_stones3"
1147
1148=== modified file 'world/immovables/stones/blackland_stones5/init.lua'
1149--- world/immovables/stones/blackland_stones5/init.lua 2014-05-03 08:40:59 +0000
1150+++ world/immovables/stones/blackland_stones5/init.lua 2014-07-23 04:48:33 +0000
1151@@ -12,7 +12,7 @@
1152 descname = _ "Stones 5",
1153 editor_category = "stones",
1154 size = "big",
1155- attributes = { "stone" },
1156+ attributes = { "granite" },
1157 programs = {
1158 shrink = {
1159 "transform=blackland_stones4"
1160
1161=== modified file 'world/immovables/stones/blackland_stones6/init.lua'
1162--- world/immovables/stones/blackland_stones6/init.lua 2014-05-03 08:40:59 +0000
1163+++ world/immovables/stones/blackland_stones6/init.lua 2014-07-23 04:48:33 +0000
1164@@ -12,7 +12,7 @@
1165 descname = _ "Stones 6",
1166 editor_category = "stones",
1167 size = "big",
1168- attributes = { "stone" },
1169+ attributes = { "granite" },
1170 programs = {
1171 shrink = {
1172 "transform=blackland_stones5"
1173
1174=== modified file 'world/immovables/stones/desert_stones1/init.lua'
1175--- world/immovables/stones/desert_stones1/init.lua 2014-05-03 08:40:59 +0000
1176+++ world/immovables/stones/desert_stones1/init.lua 2014-07-23 04:48:33 +0000
1177@@ -12,7 +12,7 @@
1178 descname = _ "Stones 1",
1179 editor_category = "stones",
1180 size = "big",
1181- attributes = { "stone" },
1182+ attributes = { "granite" },
1183 programs = {
1184 shrink = {
1185 "remove="
1186
1187=== modified file 'world/immovables/stones/desert_stones2/init.lua'
1188--- world/immovables/stones/desert_stones2/init.lua 2014-05-03 08:40:59 +0000
1189+++ world/immovables/stones/desert_stones2/init.lua 2014-07-23 04:48:33 +0000
1190@@ -12,7 +12,7 @@
1191 descname = _ "Stones 2",
1192 editor_category = "stones",
1193 size = "big",
1194- attributes = { "stone" },
1195+ attributes = { "granite" },
1196 programs = {
1197 shrink = {
1198 "transform=desert_stones1"
1199
1200=== modified file 'world/immovables/stones/desert_stones3/init.lua'
1201--- world/immovables/stones/desert_stones3/init.lua 2014-05-03 08:40:59 +0000
1202+++ world/immovables/stones/desert_stones3/init.lua 2014-07-23 04:48:33 +0000
1203@@ -12,7 +12,7 @@
1204 descname = _ "Stones 3",
1205 editor_category = "stones",
1206 size = "big",
1207- attributes = { "stone" },
1208+ attributes = { "granite" },
1209 programs = {
1210 shrink = {
1211 "transform=desert_stones2"
1212
1213=== modified file 'world/immovables/stones/desert_stones4/init.lua'
1214--- world/immovables/stones/desert_stones4/init.lua 2014-05-03 08:40:59 +0000
1215+++ world/immovables/stones/desert_stones4/init.lua 2014-07-23 04:48:33 +0000
1216@@ -12,7 +12,7 @@
1217 descname = _ "Stones 4",
1218 editor_category = "stones",
1219 size = "big",
1220- attributes = { "stone" },
1221+ attributes = { "granite" },
1222 programs = {
1223 shrink = {
1224 "transform=desert_stones3"
1225
1226=== modified file 'world/immovables/stones/desert_stones5/init.lua'
1227--- world/immovables/stones/desert_stones5/init.lua 2014-05-03 08:40:59 +0000
1228+++ world/immovables/stones/desert_stones5/init.lua 2014-07-23 04:48:33 +0000
1229@@ -12,7 +12,7 @@
1230 descname = _ "Stones 5",
1231 editor_category = "stones",
1232 size = "big",
1233- attributes = { "stone" },
1234+ attributes = { "granite" },
1235 programs = {
1236 shrink = {
1237 "transform=desert_stones4"
1238
1239=== modified file 'world/immovables/stones/desert_stones6/init.lua'
1240--- world/immovables/stones/desert_stones6/init.lua 2014-05-03 08:40:59 +0000
1241+++ world/immovables/stones/desert_stones6/init.lua 2014-07-23 04:48:33 +0000
1242@@ -12,7 +12,7 @@
1243 descname = _ "Stones 6",
1244 editor_category = "stones",
1245 size = "big",
1246- attributes = { "stone" },
1247+ attributes = { "granite" },
1248 programs = {
1249 shrink = {
1250 "transform=desert_stones5"
1251
1252=== modified file 'world/immovables/stones/greenland_stones1/init.lua'
1253--- world/immovables/stones/greenland_stones1/init.lua 2014-05-03 08:40:59 +0000
1254+++ world/immovables/stones/greenland_stones1/init.lua 2014-07-23 04:48:33 +0000
1255@@ -12,7 +12,7 @@
1256 descname = _ "Stones 1",
1257 editor_category = "stones",
1258 size = "big",
1259- attributes = { "stone" },
1260+ attributes = { "granite" },
1261 programs = {
1262 shrink = {
1263 "remove="
1264
1265=== modified file 'world/immovables/stones/greenland_stones2/init.lua'
1266--- world/immovables/stones/greenland_stones2/init.lua 2014-05-03 08:40:59 +0000
1267+++ world/immovables/stones/greenland_stones2/init.lua 2014-07-23 04:48:33 +0000
1268@@ -12,7 +12,7 @@
1269 descname = _ "Stones 2",
1270 editor_category = "stones",
1271 size = "big",
1272- attributes = { "stone" },
1273+ attributes = { "granite" },
1274 programs = {
1275 shrink = {
1276 "transform=greenland_stones1"
1277
1278=== modified file 'world/immovables/stones/greenland_stones3/init.lua'
1279--- world/immovables/stones/greenland_stones3/init.lua 2014-05-03 08:40:59 +0000
1280+++ world/immovables/stones/greenland_stones3/init.lua 2014-07-23 04:48:33 +0000
1281@@ -12,7 +12,7 @@
1282 descname = _ "Stones 3",
1283 editor_category = "stones",
1284 size = "big",
1285- attributes = { "stone" },
1286+ attributes = { "granite" },
1287 programs = {
1288 shrink = {
1289 "transform=greenland_stones2"
1290
1291=== modified file 'world/immovables/stones/greenland_stones4/init.lua'
1292--- world/immovables/stones/greenland_stones4/init.lua 2014-05-03 08:40:59 +0000
1293+++ world/immovables/stones/greenland_stones4/init.lua 2014-07-23 04:48:33 +0000
1294@@ -12,7 +12,7 @@
1295 descname = _ "Stones 4",
1296 editor_category = "stones",
1297 size = "big",
1298- attributes = { "stone" },
1299+ attributes = { "granite" },
1300 programs = {
1301 shrink = {
1302 "transform=greenland_stones3"
1303
1304=== modified file 'world/immovables/stones/greenland_stones5/init.lua'
1305--- world/immovables/stones/greenland_stones5/init.lua 2014-05-03 08:40:59 +0000
1306+++ world/immovables/stones/greenland_stones5/init.lua 2014-07-23 04:48:33 +0000
1307@@ -12,7 +12,7 @@
1308 descname = _ "Stones 5",
1309 editor_category = "stones",
1310 size = "big",
1311- attributes = { "stone" },
1312+ attributes = { "granite" },
1313 programs = {
1314 shrink = {
1315 "transform=greenland_stones4"
1316
1317=== modified file 'world/immovables/stones/greenland_stones6/init.lua'
1318--- world/immovables/stones/greenland_stones6/init.lua 2014-05-03 08:40:59 +0000
1319+++ world/immovables/stones/greenland_stones6/init.lua 2014-07-23 04:48:33 +0000
1320@@ -12,7 +12,7 @@
1321 descname = _ "Stones 6",
1322 editor_category = "stones",
1323 size = "big",
1324- attributes = { "stone" },
1325+ attributes = { "granite" },
1326 programs = {
1327 shrink = {
1328 "transform=greenland_stones5"
1329
1330=== modified file 'world/immovables/stones/winterland_stones1/init.lua'
1331--- world/immovables/stones/winterland_stones1/init.lua 2014-05-03 08:40:59 +0000
1332+++ world/immovables/stones/winterland_stones1/init.lua 2014-07-23 04:48:33 +0000
1333@@ -12,7 +12,7 @@
1334 descname = _ "Stones 1",
1335 editor_category = "stones",
1336 size = "big",
1337- attributes = { "stone" },
1338+ attributes = { "granite" },
1339 programs = {
1340 shrink = {
1341 "remove="
1342
1343=== modified file 'world/immovables/stones/winterland_stones2/init.lua'
1344--- world/immovables/stones/winterland_stones2/init.lua 2014-05-03 08:40:59 +0000
1345+++ world/immovables/stones/winterland_stones2/init.lua 2014-07-23 04:48:33 +0000
1346@@ -12,7 +12,7 @@
1347 descname = _ "Stones 2",
1348 editor_category = "stones",
1349 size = "big",
1350- attributes = { "stone" },
1351+ attributes = { "granite" },
1352 programs = {
1353 shrink = {
1354 "transform=winterland_stones1"
1355
1356=== modified file 'world/immovables/stones/winterland_stones3/init.lua'
1357--- world/immovables/stones/winterland_stones3/init.lua 2014-05-03 08:40:59 +0000
1358+++ world/immovables/stones/winterland_stones3/init.lua 2014-07-23 04:48:33 +0000
1359@@ -12,7 +12,7 @@
1360 descname = _ "Stones 3",
1361 editor_category = "stones",
1362 size = "big",
1363- attributes = { "stone" },
1364+ attributes = { "granite" },
1365 programs = {
1366 shrink = {
1367 "transform=winterland_stones2"
1368
1369=== modified file 'world/immovables/stones/winterland_stones4/init.lua'
1370--- world/immovables/stones/winterland_stones4/init.lua 2014-05-03 08:40:59 +0000
1371+++ world/immovables/stones/winterland_stones4/init.lua 2014-07-23 04:48:33 +0000
1372@@ -12,7 +12,7 @@
1373 descname = _ "Stones 4",
1374 editor_category = "stones",
1375 size = "big",
1376- attributes = { "stone" },
1377+ attributes = { "granite" },
1378 programs = {
1379 shrink = {
1380 "transform=winterland_stones3"
1381
1382=== modified file 'world/immovables/stones/winterland_stones5/init.lua'
1383--- world/immovables/stones/winterland_stones5/init.lua 2014-05-03 08:40:59 +0000
1384+++ world/immovables/stones/winterland_stones5/init.lua 2014-07-23 04:48:33 +0000
1385@@ -12,7 +12,7 @@
1386 descname = _ "Stones 5",
1387 editor_category = "stones",
1388 size = "big",
1389- attributes = { "stone" },
1390+ attributes = { "granite" },
1391 programs = {
1392 shrink = {
1393 "transform=winterland_stones4"
1394
1395=== modified file 'world/immovables/stones/winterland_stones6/init.lua'
1396--- world/immovables/stones/winterland_stones6/init.lua 2014-05-03 08:40:59 +0000
1397+++ world/immovables/stones/winterland_stones6/init.lua 2014-07-23 04:48:33 +0000
1398@@ -12,7 +12,7 @@
1399 descname = _ "Stones 6",
1400 editor_category = "stones",
1401 size = "big",
1402- attributes = { "stone" },
1403+ attributes = { "granite" },
1404 programs = {
1405 shrink = {
1406 "transform=winterland_stones5"

Subscribers

People subscribed via source and target branches

to status/vote changes: