widelands-dev team mailing list archive
-
widelands-dev team
-
Mailing list archive
-
Message #01932
[Merge] lp:~widelands-dev/widelands/feature-1478-stone-mine-streamline into lp:widelands
Teppo Mäenpää has proposed merging lp:~widelands-dev/widelands/feature-1478-stone-mine-streamline into lp:widelands.
Requested reviews:
Widelands Developers (widelands-dev)
For more details, see:
https://code.launchpad.net/~widelands-dev/widelands/feature-1478-stone-mine-streamline/+merge/215594
For background, see discussion in forum thread 1478 (About empty mines).
This merge would lead to miners gaining experience with a small probability, when they are trying to extract something out of an empty mine. The "small probability" is configurable, currently (branch revision 6939) there is a 1-in-6 change of gaining experience.
--
https://code.launchpad.net/~widelands-dev/widelands/feature-1478-stone-mine-streamline/+merge/215594
Your team Widelands Developers is requested to review the proposed merge of lp:~widelands-dev/widelands/feature-1478-stone-mine-streamline into lp:widelands.
=== modified file 'src/logic/production_program.cc'
--- src/logic/production_program.cc 2014-03-16 20:55:15 +0000
+++ src/logic/production_program.cc 2014-04-14 04:13:39 +0000
@@ -1119,6 +1119,16 @@
char * endp;
unsigned long long int const value = strtoull(parameters, &endp, 0);
m_chance = value;
+ if (*endp != ' ' or value < 1 or 100 < value)
+ throw game_data_error
+ ("expected %s but found \"%s\"",
+ "percentage", parameters);
+ parameters = endp;
+ }
+ {
+ char * endp;
+ unsigned long long int const value = strtoull(parameters, &endp, 0);
+ m_training = value;
if (*endp or value < 1 or 100 < value)
throw game_data_error
("expected %s but found \"%s\"",
@@ -1240,6 +1250,10 @@
snprintf
(ps.m_result_buffer, sizeof(ps.m_result_buffer),
_("Can’t find any more resources!"));
+ // Gain experience
+ if (m_training >= game.logic_rand() % 100) {
+ ps.train_workers(game);
+ }
return ps.program_end(game, Failed);
}
}
=== modified file 'src/logic/production_program.h'
--- src/logic/production_program.h 2014-02-22 18:04:02 +0000
+++ src/logic/production_program.h 2014-04-14 04:13:39 +0000
@@ -427,9 +427,10 @@
virtual void informPlayer(Game &, ProductionSite &) const;
private:
Resource_Index m_resource;
- uint8_t m_distance;
- uint8_t m_max;
- uint8_t m_chance;
+ uint8_t m_distance; // width/radius of mine
+ uint8_t m_max; // Can work up to this percent (of total mountain resources)
+ uint8_t m_chance; // odds of finding resources from empty mine
+ uint8_t m_training; // probability of training in _empty_ mines
};
struct ActCheck_Soldier : public Action {
=== modified file 'src/logic/productionsite.cc'
--- src/logic/productionsite.cc 2014-03-16 21:41:57 +0000
+++ src/logic/productionsite.cc 2014-04-14 04:13:39 +0000
@@ -856,10 +856,8 @@
m_statistics.erase(m_statistics.begin(), m_statistics.begin() + 1);
m_statistics.push_back(result == Completed);
if (result == Completed) {
- for (uint32_t i = descr().nr_working_positions(); i;)
- m_working_positions[--i].worker->gain_experience(game);
+ train_workers(game);
m_result_buffer[0] = '\0';
- Building::workers_changed();
}
calc_statistics();
break;
@@ -876,6 +874,14 @@
m_program_time = schedule_act(game, m_post_timer);
}
+void ProductionSite::train_workers(Game & game)
+{
+ for (uint32_t i = descr().nr_working_positions(); i;)
+ m_working_positions[--i].worker->gain_experience(game);
+ Building::workers_changed();
+}
+
+
/// Changes the default anim string to \li anim
void ProductionSite::set_default_anim(std::string anim)
{
=== modified file 'src/logic/productionsite.h'
--- src/logic/productionsite.h 2014-04-06 10:50:39 +0000
+++ src/logic/productionsite.h 2014-04-14 04:13:39 +0000
@@ -211,6 +211,7 @@
void program_start(Game &, const std::string & program_name);
virtual void program_end(Game &, Program_Result);
+ virtual void train_workers(Game &);
void calc_statistics();
void try_start_working(Game &);
=== modified file 'tribes/atlanteans/coalmine/conf'
--- tribes/atlanteans/coalmine/conf 2014-03-17 17:23:26 +0000
+++ tribes/atlanteans/coalmine/conf 2014-04-14 04:13:39 +0000
@@ -30,13 +30,13 @@
consume=smoked_fish,smoked_meat:2 bread:2
sleep=45000
animate=working 20000
-mine=coal 4 100 5
-produce=coal:2
-animate=working 20000
-mine=coal 4 100 5
-produce=coal:2
-animate=working 20000
-mine=coal 4 100 5
+mine=coal 4 100 5 2
+produce=coal:2
+animate=working 20000
+mine=coal 4 100 5 2
+produce=coal:2
+animate=working 20000
+mine=coal 4 100 5 2
produce=coal:3
[idle]
=== modified file 'tribes/atlanteans/crystalmine/conf'
--- tribes/atlanteans/crystalmine/conf 2014-03-17 17:23:26 +0000
+++ tribes/atlanteans/crystalmine/conf 2014-04-14 04:13:39 +0000
@@ -35,16 +35,16 @@
consume=smoked_fish,smoked_meat:2 bread:2
sleep=45000
animate=working 20000
-mine=granit 4 100 5
-produce=stone:2
-animate=working 20000
-mine=granit 4 100 5
-produce=stone:2
-animate=working 20000
-mine=granit 4 100 5
+mine=granit 4 100 5 2
+produce=stone:2
+animate=working 20000
+mine=granit 4 100 5 2
+produce=stone:2
+animate=working 20000
+mine=granit 4 100 5 2
produce=stone
animate=working 20000
-mine=granit 4 100 5
+mine=granit 4 100 5 2
produce=quartz
[mine_quartz]
@@ -53,13 +53,13 @@
consume=smoked_fish,smoked_meat:2 bread:2
sleep=45000
animate=working 20000
-mine=granit 4 100 5
+mine=granit 4 100 5 2
produce=stone:2
animate=working 20000
-mine=granit 4 100 5
+mine=granit 4 100 5 2
produce=stone quartz
animate=working 20000
-mine=granit 4 100 5
+mine=granit 4 100 5 2
produce=quartz:2
[mine_diamond]
@@ -68,13 +68,13 @@
consume=smoked_fish,smoked_meat:2 bread:2
sleep=45000
animate=working 20000
-mine=granit 4 100 5
-produce=diamond
-animate=working 20000
-mine=granit 4 100 5
-produce=diamond
-animate=working 20000
-mine=granit 4 100 5
+mine=granit 4 100 5 2
+produce=diamond
+animate=working 20000
+mine=granit 4 100 5 2
+produce=diamond
+animate=working 20000
+mine=granit 4 100 5 2
produce=stone
[work]
=== modified file 'tribes/atlanteans/goldmine/conf'
--- tribes/atlanteans/goldmine/conf 2014-03-17 17:23:26 +0000
+++ tribes/atlanteans/goldmine/conf 2014-04-14 04:13:39 +0000
@@ -31,13 +31,13 @@
consume=smoked_fish,smoked_meat:2 bread:2
sleep=45000
animate=working 20000
-mine=gold 4 100 5
-produce=goldore
-animate=working 20000
-mine=gold 4 100 5
-produce=goldore
-animate=working 20000
-mine=gold 4 100 5
+mine=gold 4 100 5 2
+produce=goldore
+animate=working 20000
+mine=gold 4 100 5 2
+produce=goldore
+animate=working 20000
+mine=gold 4 100 5 2
produce=goldore
[idle]
=== modified file 'tribes/atlanteans/ironmine/conf'
--- tribes/atlanteans/ironmine/conf 2014-03-17 17:23:26 +0000
+++ tribes/atlanteans/ironmine/conf 2014-04-14 04:13:39 +0000
@@ -31,13 +31,13 @@
consume=smoked_fish,smoked_meat:2 bread:2
sleep=45000
animate=working 20000
-mine=iron 4 100 5
+mine=iron 4 100 5 2
produce=ironore
animate=working 20000
-mine=iron 4 100 5
+mine=iron 4 100 5 2
produce=ironore:2
animate=working 20000
-mine=iron 4 100 5
+mine=iron 4 100 5 2
produce=ironore:2
[idle]
=== modified file 'tribes/atlanteans/well/conf'
--- tribes/atlanteans/well/conf 2014-03-17 17:23:26 +0000
+++ tribes/atlanteans/well/conf 2014-04-14 04:13:39 +0000
@@ -19,7 +19,7 @@
[work]
sleep=20000
animate=working 20000
-mine=water 1 100 65
+mine=water 1 100 65 2
produce=water
[idle]
=== modified file 'tribes/barbarians/coalmine/conf'
--- tribes/barbarians/coalmine/conf 2014-03-17 17:23:26 +0000
+++ tribes/barbarians/coalmine/conf 2014-04-14 04:13:39 +0000
@@ -27,7 +27,7 @@
sleep=45000
consume=ration
animate=working 20000
-mine=coal 2 33 5
+mine=coal 2 33 5 17
produce=coal:2
[idle]
=== modified file 'tribes/barbarians/deep_coalmine/conf'
--- tribes/barbarians/deep_coalmine/conf 2014-03-17 17:23:26 +0000
+++ tribes/barbarians/deep_coalmine/conf 2014-04-14 04:13:39 +0000
@@ -30,10 +30,10 @@
sleep=42000
consume=snack
animate=working 18000
-mine=coal 2 66 5
+mine=coal 2 66 5 17
produce=coal:2
animate=working 18000
-mine=coal 2 66 5
+mine=coal 2 66 5 17
produce=coal:2
[idle]
=== modified file 'tribes/barbarians/deep_goldmine/conf'
--- tribes/barbarians/deep_goldmine/conf 2014-03-17 17:23:26 +0000
+++ tribes/barbarians/deep_goldmine/conf 2014-04-14 04:13:39 +0000
@@ -30,10 +30,10 @@
sleep=42000
consume=snack
animate=working 18000
-mine=gold 2 66 5
+mine=gold 2 66 5 17
produce=goldore:2
animate=working 18000
-mine=gold 2 66 5
+mine=gold 2 66 5 17
produce=goldore:2
[idle]
=== modified file 'tribes/barbarians/deep_oremine/conf'
--- tribes/barbarians/deep_oremine/conf 2014-03-17 17:23:26 +0000
+++ tribes/barbarians/deep_oremine/conf 2014-04-14 04:13:39 +0000
@@ -30,10 +30,10 @@
sleep=43000
consume=snack
animate=working 18000
-mine=iron 2 66 5
+mine=iron 2 66 5 17
produce=ironore
animate=working 18000
-mine=iron 2 66 5
+mine=iron 2 66 5 17
produce=ironore:1
[build]
=== modified file 'tribes/barbarians/deeper_coalmine/conf'
--- tribes/barbarians/deeper_coalmine/conf 2014-03-17 17:23:26 +0000
+++ tribes/barbarians/deeper_coalmine/conf 2014-04-14 04:13:39 +0000
@@ -29,10 +29,10 @@
sleep=40000
consume=meal
animate=working 16000
-mine=coal 2 100 10
+mine=coal 2 100 10 2
produce=coal:2
animate=working 16000
-mine=coal 2 100 10
+mine=coal 2 100 10 2
produce=coal:3
[idle]
=== modified file 'tribes/barbarians/deeper_goldmine/conf'
--- tribes/barbarians/deeper_goldmine/conf 2014-03-17 17:23:26 +0000
+++ tribes/barbarians/deeper_goldmine/conf 2014-04-14 04:13:39 +0000
@@ -29,10 +29,10 @@
sleep=40000
consume=meal
animate=working 16000
-mine=gold 2 100 10
+mine=gold 2 100 10 2
produce=goldore:2
animate=working 18000
-mine=gold 2 100 10
+mine=gold 2 100 10 2
produce=goldore:2
[idle]
=== modified file 'tribes/barbarians/deeper_oremine/conf'
--- tribes/barbarians/deeper_oremine/conf 2014-03-17 17:23:26 +0000
+++ tribes/barbarians/deeper_oremine/conf 2014-04-14 04:13:39 +0000
@@ -29,13 +29,13 @@
consume=meal
sleep=40000
animate=working 16000
-mine=iron 2 100 10
+mine=iron 2 100 10 2
produce=ironore
animate=working 16000
-mine=iron 2 100 10
+mine=iron 2 100 10 2
produce=ironore:2
animate=working 16000
-mine=iron 2 100 10
+mine=iron 2 100 10 2
produce=ironore:2
[idle]
=== modified file 'tribes/barbarians/goldmine/conf'
--- tribes/barbarians/goldmine/conf 2014-03-17 17:23:26 +0000
+++ tribes/barbarians/goldmine/conf 2014-04-14 04:13:39 +0000
@@ -28,7 +28,7 @@
sleep=45000
consume=ration
animate=working 20000
-mine=gold 2 33 5
+mine=gold 2 33 5 17
produce=goldore
[idle]
=== modified file 'tribes/barbarians/granitemine/conf'
--- tribes/barbarians/granitemine/conf 2014-03-17 17:23:26 +0000
+++ tribes/barbarians/granitemine/conf 2014-04-14 04:13:39 +0000
@@ -25,7 +25,7 @@
consume=ration
sleep=20000
animate=working 20000
-mine=granit 2 100 5
+mine=granit 2 100 5 17
produce=raw_stone:2
[idle]
=== modified file 'tribes/barbarians/oremine/conf'
--- tribes/barbarians/oremine/conf 2014-03-17 17:23:26 +0000
+++ tribes/barbarians/oremine/conf 2014-04-14 04:13:39 +0000
@@ -28,7 +28,7 @@
sleep=45000
consume=ration
animate=working 20000
-mine=iron 2 33 5
+mine=iron 2 33 5 17
produce=ironore
[idle]
=== modified file 'tribes/barbarians/well/conf'
--- tribes/barbarians/well/conf 2014-03-17 17:23:26 +0000
+++ tribes/barbarians/well/conf 2014-04-14 04:13:39 +0000
@@ -19,7 +19,7 @@
[work]
sleep=20000
animate=working 20000
-mine=water 1 100 65
+mine=water 1 100 65 2
produce=water
[idle]
=== modified file 'tribes/empire/coalmine/conf'
--- tribes/empire/coalmine/conf 2014-03-17 17:23:26 +0000
+++ tribes/empire/coalmine/conf 2014-04-14 04:13:39 +0000
@@ -30,10 +30,10 @@
sleep=45000
consume=beer ration
animate=working 20000
-mine=coal 2 50 5
+mine=coal 2 50 5 17
produce=coal:2
animate=working 20000
-mine=coal 2 50 5
+mine=coal 2 50 5 17
produce=coal
[idle]
=== modified file 'tribes/empire/deep_coalmine/conf'
--- tribes/empire/deep_coalmine/conf 2014-03-17 17:23:26 +0000
+++ tribes/empire/deep_coalmine/conf 2014-04-14 04:13:39 +0000
@@ -31,10 +31,10 @@
sleep=42000
consume=beer meal
animate=working 18000
-mine=coal 2 100 5
+mine=coal 2 100 5 2
produce=coal:2
animate=working 18000
-mine=coal 2 100 5
+mine=coal 2 100 5 2
produce=coal:3
[idle]
=== modified file 'tribes/empire/deep_goldmine/conf'
--- tribes/empire/deep_goldmine/conf 2014-03-17 17:23:26 +0000
+++ tribes/empire/deep_goldmine/conf 2014-04-14 04:13:39 +0000
@@ -31,10 +31,10 @@
sleep=43000
consume=meal wine
animate=working 18000
-mine=gold 2 100 5
+mine=gold 2 100 5 2
produce=goldore
animate=working 18000
-mine=gold 2 100 5
+mine=gold 2 100 5 2
produce=goldore:2
[idle]
=== modified file 'tribes/empire/deep_marblemine/conf'
--- tribes/empire/deep_marblemine/conf 2014-03-17 17:23:26 +0000
+++ tribes/empire/deep_marblemine/conf 2014-04-14 04:13:39 +0000
@@ -30,10 +30,10 @@
sleep=43000
consume=meal wine
animate=working 18000
-mine=granit 2 100 5
+mine=granit 2 100 5 2
produce=marble:2
animate=working 18000
-mine=granit 2 100 5
+mine=granit 2 100 5 2
produce=marble stone:2
[idle]
=== modified file 'tribes/empire/deep_oremine/conf'
--- tribes/empire/deep_oremine/conf 2014-03-17 17:23:26 +0000
+++ tribes/empire/deep_oremine/conf 2014-04-14 04:13:39 +0000
@@ -31,10 +31,10 @@
sleep=43000
consume=meal beer
animate=working 18000
-mine=iron 2 100 5
+mine=iron 2 100 5 2
produce=ironore:2
animate=working 18000
-mine=iron 2 100 5
+mine=iron 2 100 5 2
produce=ironore:2
[idle]
=== modified file 'tribes/empire/goldmine/conf'
--- tribes/empire/goldmine/conf 2014-03-17 17:23:26 +0000
+++ tribes/empire/goldmine/conf 2014-04-14 04:13:39 +0000
@@ -31,10 +31,10 @@
sleep=45000
consume=ration wine
animate=working 20000
-mine=gold 2 50 5
+mine=gold 2 50 5 17
produce=goldore
animate=working 20000
-mine=gold 2 50 5
+mine=gold 2 50 5 17
produce=goldore
[idle]
=== modified file 'tribes/empire/marblemine/conf'
--- tribes/empire/marblemine/conf 2014-03-17 17:23:26 +0000
+++ tribes/empire/marblemine/conf 2014-04-14 04:13:39 +0000
@@ -31,20 +31,20 @@
sleep=20000
consume=wine ration
animate=working 20000
-mine=granit 2 50 5
+mine=granit 2 50 5 17
produce=marble:2
animate=working 20000
-mine=granit 2 50 5
+mine=granit 2 50 5 17
produce=marble stone
[mine_stone]
sleep=20000
consume=ration wine
animate=working 20000
-mine=granit 2 50 5
+mine=granit 2 50 5 17
produce=stone marble
animate=working 20000
-mine=granit 2 50 5
+mine=granit 2 50 5 17
produce=stone:2
[work]
=== modified file 'tribes/empire/oremine/conf'
--- tribes/empire/oremine/conf 2014-03-17 17:23:26 +0000
+++ tribes/empire/oremine/conf 2014-04-14 04:13:39 +0000
@@ -31,10 +31,10 @@
sleep=45000
consume=ration beer
animate=working 20000
-mine=iron 2 50 5
+mine=iron 2 50 5 17
produce=ironore
animate=working 20000
-mine=iron 2 50 5
+mine=iron 2 50 5 17
produce=ironore:2
[idle]
=== modified file 'tribes/empire/well/conf'
--- tribes/empire/well/conf 2014-03-17 17:23:26 +0000
+++ tribes/empire/well/conf 2014-04-14 04:13:39 +0000
@@ -22,7 +22,7 @@
[work]
sleep=20000
animate=working 20000
-mine=water 1 100 65
+mine=water 1 100 65 2
produce=water
[idle]
Follow ups