← Back to team overview

widelands-dev team mailing list archive

[Merge] lp:~widelands-dev/widelands/ai_level_names into lp:widelands

 

GunChleoc has proposed merging lp:~widelands-dev/widelands/ai_level_names into lp:widelands.

Requested reviews:
  Widelands Developers (widelands-dev)
Related bugs:
  Bug #1516785 in widelands: "Redefine difficulty levels"
  https://bugs.launchpad.net/widelands/+bug/1516785

For more details, see:
https://code.launchpad.net/~widelands-dev/widelands/ai_level_names/+merge/279697

Renamed AI levels to "Normal", "Weak", "Very Weak".

AI names and icon filenames are now independent of their descnames.

pics/ai_strong.png is now unused, but I am having trouble grabbing the media repro, so I left it in for now. It should be moved over there though, because we're currently not using it, but we don't want to lose the graphic for when we do have a strong AI in the future.
-- 
Your team Widelands Developers is requested to review the proposed merge of lp:~widelands-dev/widelands/ai_level_names into lp:widelands.
=== modified file 'campaigns/bar02.wmf/player_names'
--- campaigns/bar02.wmf/player_names	2010-03-11 17:46:46 +0000
+++ campaigns/bar02.wmf/player_names	2015-12-06 19:52:56 +0000
@@ -10,14 +10,14 @@
 [player_2]
 name="Kalitath"
 tribe="barbarians"
-ai="Defensive"
+ai="very_weak"
 
 [player_3]
 name="First Brother"
 tribe="barbarians"
-ai="Aggressive"
+ai="normal"
 
 [player_4]
 name="Second Brother"
 tribe="barbarians"
-ai="Aggressive"
+ai="normal"

=== modified file 'maps/The Green Plateau.wmf/player_names'
--- maps/The Green Plateau.wmf/player_names	2015-11-01 22:12:57 +0000
+++ maps/The Green Plateau.wmf/player_names	2015-12-06 19:52:56 +0000
@@ -12,17 +12,17 @@
 [player_2]
 name="Erwyn"
 tribe="barbarians"
-ai="Normal"
+ai="weak"
 closeable="false"
 
 [player_3]
 name="Jomo"
 tribe="barbarians"
-ai="Defensive"
+ai="very_weak"
 closeable="false"
 
 [player_4]
 name="Lanissa"
 tribe="barbarians"
-ai="None"
+ai="empty"
 closeable="false"

=== modified file 'maps/Trident of Fire.wmf/player_names'
--- maps/Trident of Fire.wmf/player_names	2013-08-15 16:00:17 +0000
+++ maps/Trident of Fire.wmf/player_names	2015-12-06 19:52:56 +0000
@@ -24,29 +24,29 @@
 [player_4]
 name="Player A"
 tribe="barbarians"
-ai="Aggressive"
+ai="normal"
 closeable="false"
 
 [player_5]
 name="Player B"
 tribe="empire"
-ai="Aggressive"
+ai="normal"
 closeable="false"
 
 [player_6]
 name="Player C"
 tribe="atlanteans"
-ai="Aggressive"
+ai="normal"
 closeable="false"
 
 [player_7]
 name="Player D"
 tribe="empire"
-ai="Aggressive"
+ai="normal"
 closeable="false"
 
 [player_8]
 name="Player E"
 tribe="atlanteans"
-ai="Aggressive"
+ai="normal"
 closeable="false"

=== renamed file 'pics/ai_None.png' => 'pics/ai_empty.png'
=== renamed file 'pics/ai_Normal.png' => 'pics/ai_normal.png'
=== renamed file 'pics/ai_Random.png' => 'pics/ai_random.png'
=== renamed file 'pics/ai_Strong.png' => 'pics/ai_strong.png'
=== renamed file 'pics/ai_Weak.png' => 'pics/ai_very_weak.png'
=== added file 'pics/ai_weak.png'
Binary files pics/ai_weak.png	1970-01-01 00:00:00 +0000 and pics/ai_weak.png	2015-12-06 19:52:56 +0000 differ
=== modified file 'src/ai/ai_hints.cc'
--- src/ai/ai_hints.cc	2015-11-23 18:44:38 +0000
+++ src/ai/ai_hints.cc	2015-12-06 19:52:56 +0000
@@ -40,8 +40,8 @@
 	  // 10 days default
 	  forced_after_(table->has_key("forced_after") ? table->get_int("forced_after") : 864000),
 	  mines_percent_(table->has_key("mines_percent") ? table->get_int("mines_percent") : 100),
-      weak_ai_limit_(table->has_key("weak_ai_limit") ? table->get_int("weak_ai_limit") : -1),
-      normal_ai_limit_(table->has_key("normal_ai_limit") ? table->get_int("normal_ai_limit") : -1),
+		very_weak_ai_limit_(table->has_key("very_weak_ai_limit") ? table->get_int("very_weak_ai_limit") : -1),
+		weak_ai_limit_(table->has_key("weak_ai_limit") ? table->get_int("weak_ai_limit") : -1),
 	  trainingsite_type_(TrainingSiteType::kNoTS) {
 
 	if (table->has_key("trainingsite_type")) {

=== modified file 'src/ai/ai_hints.h'
--- src/ai/ai_hints.h	2015-11-23 18:44:38 +0000
+++ src/ai/ai_hints.h	2015-12-06 19:52:56 +0000
@@ -102,14 +102,14 @@
 		return mines_percent_;
 	}
 
+	int16_t get_very_weak_ai_limit() const {
+		return very_weak_ai_limit_;
+	}
+
 	int16_t get_weak_ai_limit() const {
 		return weak_ai_limit_;
 	}
 
-	int16_t get_normal_ai_limit() const {
-		return normal_ai_limit_;
-	}
-
 	TrainingSiteType get_trainingsite_type() const {
 		return trainingsite_type_;
 	}
@@ -130,8 +130,8 @@
 	int32_t prohibited_till_;
 	int32_t forced_after_;
 	int8_t mines_percent_;
+	int16_t very_weak_ai_limit_;
 	int16_t weak_ai_limit_;
-	int16_t normal_ai_limit_;
 	TrainingSiteType trainingsite_type_;
 
 	DISALLOW_COPY_AND_ASSIGN(BuildingHints);

=== modified file 'src/ai/computer_player.cc'
--- src/ai/computer_player.cc	2015-11-26 09:53:02 +0000
+++ src/ai/computer_player.cc	2015-12-06 19:52:56 +0000
@@ -36,8 +36,12 @@
 	void think() override {}
 
 	struct EmptyAIImpl : Implementation {
-		/** TRANSLATORS: This is the name of an AI used in the game setup screens */
-		EmptyAIImpl() {name = pgettext("ai_name", "None");}
+		EmptyAIImpl() {
+			name = "empty";
+			/** TRANSLATORS: This is the name of an AI used in the game setup screens */
+			descname = _("No AI");
+			icon_filename = "pics/ai_empty.png";
+		}
 		ComputerPlayer * instantiate
 			(Widelands::Game & g, Widelands::PlayerNumber const pid) const override
 		{
@@ -56,9 +60,9 @@
 	static std::vector<ComputerPlayer::Implementation const *> impls;
 
 	if (impls.empty()) {
-		impls.push_back(&DefaultAI::strong_impl);
 		impls.push_back(&DefaultAI::normal_impl);
 		impls.push_back(&DefaultAI::weak_impl);
+		impls.push_back(&DefaultAI::very_weak_impl);
 		impls.push_back(&EmptyAI::implementation);
 	}
 

=== modified file 'src/ai/computer_player.h'
--- src/ai/computer_player.h	2014-09-30 20:31:43 +0000
+++ src/ai/computer_player.h	2015-12-06 19:52:56 +0000
@@ -52,6 +52,8 @@
 	 */
 	struct Implementation {
 		std::string name;
+		std::string descname;
+		std::string icon_filename;
 		virtual ~Implementation() {}
 		virtual ComputerPlayer * instantiate
 			(Widelands::Game &, Widelands::PlayerNumber) const = 0;

=== modified file 'src/ai/defaultai.cc'
--- src/ai/defaultai.cc	2015-11-28 18:32:46 +0000
+++ src/ai/defaultai.cc	2015-12-06 19:52:56 +0000
@@ -93,9 +93,9 @@
 
 using namespace Widelands;
 
-DefaultAI::StrongImpl DefaultAI::strong_impl;
 DefaultAI::NormalImpl DefaultAI::normal_impl;
 DefaultAI::WeakImpl DefaultAI::weak_impl;
+DefaultAI::VeryWeakImpl DefaultAI::very_weak_impl;
 
 /// Constructor of DefaultAI
 DefaultAI::DefaultAI(Game& ggame, PlayerNumber const pid, DefaultAI::Type const t)
@@ -560,16 +560,16 @@
 		}
 
 	// Is total count of this building limited by AI mode?
+	if (type_ == DefaultAI::Type::kVeryWeak && bh.get_very_weak_ai_limit() >= 0) {
+		bo.cnt_limit_by_aimode_ = bh.get_very_weak_ai_limit();
+		log (" %d: AI 'very weak' mode: applying limit %d building(s) for %s\n",
+		player_number(),
+		bo.cnt_limit_by_aimode_,
+		bo.name);
+	}
 	if (type_ == DefaultAI::Type::kWeak && bh.get_weak_ai_limit() >= 0) {
 		bo.cnt_limit_by_aimode_ = bh.get_weak_ai_limit();
-		log (" %d: AI defensive mode: applying limit %d building(s) for %s\n",
-		player_number(),
-		bo.cnt_limit_by_aimode_,
-		bo.name);
-	}
-	if (type_ == DefaultAI::Type::kNormal && bh.get_normal_ai_limit() >= 0) {
-		bo.cnt_limit_by_aimode_ = bh.get_normal_ai_limit();
-		log (" %d: AI normal mode: applying limit %d building(s) for %s\n",
+		log (" %d: AI 'weak' mode: applying limit %d building(s) for %s\n",
 		player_number(),
 		bo.cnt_limit_by_aimode_,
 		bo.name);
@@ -5196,10 +5196,10 @@
 
 	// defining treshold ratio of own_strenght/enemy's_strength
 	uint32_t treshold_ratio = 100;
-	if (type_ == DefaultAI::Type::kStrong) {
+	if (type_ == DefaultAI::Type::kNormal) {
 		treshold_ratio = 80;
 	}
-	if (type_ == DefaultAI::Type::kWeak) {
+	if (type_ == DefaultAI::Type::kVeryWeak) {
 		treshold_ratio = 120;
 	}
 
@@ -5420,10 +5420,10 @@
 				}
 
 				// here is some differentiation based on "character" of a player
-				if (type_ == DefaultAI::Type::kNormal) {
+				if (type_ == DefaultAI::Type::kWeak) {
 					site->second.score -= 3;
 					site->second.score -= vacant_mil_positions_ / 8;
-				} else if (type_ == DefaultAI::Type::kWeak) {
+				} else if (type_ == DefaultAI::Type::kVeryWeak) {
 					site->second.score -= 6;
 					site->second.score -= vacant_mil_positions_ / 4;
 				} else {  //=AGRESSIVE

=== modified file 'src/ai/defaultai.h'
--- src/ai/defaultai.h	2015-11-26 09:53:02 +0000
+++ src/ai/defaultai.h	2015-12-06 19:52:56 +0000
@@ -72,9 +72,9 @@
 //   should be trained if inputs_ get filled again.).
 struct DefaultAI : ComputerPlayer {
 	enum class Type {
+		kVeryWeak,
 		kWeak,
 		kNormal,
-		kStrong,
 	};
 
 	DefaultAI(Widelands::Game&, const Widelands::PlayerNumber, DefaultAI::Type);
@@ -95,21 +95,12 @@
 
 
 	/// Implementation for Strong
-	struct StrongImpl : public ComputerPlayer::Implementation {
-		StrongImpl() {
-			/** TRANSLATORS: This is the name of an AI used in the game setup screens */
-			name = pgettext("ai_name", "Strong");
-		}
-		ComputerPlayer* instantiate(Widelands::Game& game,
-		                            Widelands::PlayerNumber const p) const override {
-			return new DefaultAI(game, p, DefaultAI::Type::kStrong);
-		}
-	};
-
 	struct NormalImpl : public ComputerPlayer::Implementation {
 		NormalImpl() {
+			name = "normal";
 			/** TRANSLATORS: This is the name of an AI used in the game setup screens */
-			name = pgettext("ai_name", "Normal");
+			descname = _("Normal AI");
+			icon_filename = "pics/ai_normal.png";
 		}
 		ComputerPlayer* instantiate(Widelands::Game& game,
 		                            Widelands::PlayerNumber const p) const override {
@@ -119,8 +110,10 @@
 
 	struct WeakImpl : public ComputerPlayer::Implementation {
 		WeakImpl() {
+			name = "weak";
 			/** TRANSLATORS: This is the name of an AI used in the game setup screens */
-			name = pgettext("ai_name", "Weak");
+			descname = _("Weak AI");
+			icon_filename = "pics/ai_weak.png";
 		}
 		ComputerPlayer* instantiate(Widelands::Game& game,
 		                            Widelands::PlayerNumber const p) const override {
@@ -128,9 +121,22 @@
 		}
 	};
 
-	static StrongImpl strong_impl;
+	struct VeryWeakImpl : public ComputerPlayer::Implementation {
+		VeryWeakImpl() {
+			name = "very_weak";
+			/** TRANSLATORS: This is the name of an AI used in the game setup screens */
+			descname = _("Very Weak AI");
+			icon_filename = "pics/ai_very_weak.png";
+		}
+		ComputerPlayer* instantiate(Widelands::Game& game,
+		                            Widelands::PlayerNumber const p) const override {
+			return new DefaultAI(game, p, DefaultAI::Type::kVeryWeak);
+		}
+	};
+
 	static NormalImpl normal_impl;
 	static WeakImpl weak_impl;
+	static VeryWeakImpl very_weak_impl;
 
 private:
 	void late_initialization();

=== modified file 'src/wui/multiplayersetupgroup.cc'
--- src/wui/multiplayersetupgroup.cc	2015-11-01 10:11:56 +0000
+++ src/wui/multiplayersetupgroup.cc	2015-12-06 19:52:56 +0000
@@ -23,6 +23,7 @@
 
 #include <boost/format.hpp>
 
+#include "ai/computer_player.h"
 #include "base/i18n.h"
 #include "base/log.h"
 #include "base/wexception.h"
@@ -301,11 +302,14 @@
 					pic += "novalue.png";
 				} else {
 					if (player_setting.random_ai) {
-						title = (boost::format(_("AI: %s")) % pgettext("ai_name", "Random")).str();
-						pic += "ai_Random.png";
+						/** TRANSLATORS: This is the name of an AI used in the game setup screens */
+						title = _("Random AI");
+						pic += "ai_random.png";
 					} else {
-						title = (boost::format(_("AI: %s")) % _(player_setting.ai)).str();
-						pic += "ai_" + player_setting.ai + ".png";
+						const ComputerPlayer::Implementation* impl =
+								ComputerPlayer::get_implementation(player_setting.ai);
+						title = impl->descname;
+						pic = impl->icon_filename;
 					}
 				}
 			} else { // PlayerSettings::stateHuman

=== modified file 'src/wui/playerdescrgroup.cc'
--- src/wui/playerdescrgroup.cc	2015-10-23 16:32:05 +0000
+++ src/wui/playerdescrgroup.cc	2015-12-06 19:52:56 +0000
@@ -23,6 +23,7 @@
 
 #include <boost/format.hpp>
 
+#include "ai/computer_player.h"
 #include "base/i18n.h"
 #include "base/wexception.h"
 #include "graphic/graphic.h"
@@ -166,10 +167,11 @@
 					title = _("Computer");
 				else {
 					if (player.random_ai) {
-						title += _("AI: Random");
+						title += _("Random AI");
 					} else {
-						/** TRANSLATORS %s = AI type, e.g. 'Agressive' */
-						title += (boost::format(_("AI: %s")) % _(player.ai)).str();
+						const ComputerPlayer::Implementation* impl =
+								ComputerPlayer::get_implementation(player.ai);
+						title = impl->descname;
 					}
 				}
 			} else { // PlayerSettings::stateHuman

=== modified file 'test/maps/lua_testsuite.wmf/player_names'
--- test/maps/lua_testsuite.wmf/player_names	2015-04-14 18:34:40 +0000
+++ test/maps/lua_testsuite.wmf/player_names	2015-12-06 19:52:56 +0000
@@ -12,11 +12,11 @@
 [player_2]
 name="Epic Empire"
 tribe="empire"
-ai="Defensive"
+ai="very_weak"
 closeable="false"
 
 [player_3]
 name="Awesome Atlantean"
 tribe="atlanteans"
-ai="Defensive"
+ai="very_weak"
 closeable="false"

=== modified file 'tribes/buildings/productionsites/atlanteans/sawmill/init.lua'
--- tribes/buildings/productionsites/atlanteans/sawmill/init.lua	2015-11-24 19:55:49 +0000
+++ tribes/buildings/productionsites/atlanteans/sawmill/init.lua	2015-12-06 19:52:56 +0000
@@ -35,8 +35,8 @@
    aihints = {
       forced_after = 250,
       prohibited_till = 250,
-      weak_ai_limit = 1,
-      normal_ai_limit = 2
+      very_weak_ai_limit = 1,
+      weak_ai_limit = 2
    },
 
    working_positions = {

=== modified file 'tribes/buildings/productionsites/atlanteans/smelting_works/init.lua'
--- tribes/buildings/productionsites/atlanteans/smelting_works/init.lua	2015-11-24 19:55:49 +0000
+++ tribes/buildings/productionsites/atlanteans/smelting_works/init.lua	2015-12-06 19:52:56 +0000
@@ -34,8 +34,8 @@
 
    aihints = {
       prohibited_till = 600,
-      weak_ai_limit = 1,
-      normal_ai_limit = 2
+      very_weak_ai_limit = 1,
+      weak_ai_limit = 2
    },
 
    working_positions = {

=== modified file 'tribes/buildings/productionsites/atlanteans/smokery/init.lua'
--- tribes/buildings/productionsites/atlanteans/smokery/init.lua	2015-11-24 19:55:49 +0000
+++ tribes/buildings/productionsites/atlanteans/smokery/init.lua	2015-12-06 19:52:56 +0000
@@ -36,8 +36,8 @@
    aihints = {
       forced_after = 800,
       prohibited_till = 180,
-      weak_ai_limit = 1,
-      normal_ai_limit = 2
+      very_weak_ai_limit = 1,
+      weak_ai_limit = 2
    },
 
    working_positions = {

=== modified file 'tribes/buildings/productionsites/atlanteans/weaving_mill/init.lua'
--- tribes/buildings/productionsites/atlanteans/weaving_mill/init.lua	2015-11-24 19:55:49 +0000
+++ tribes/buildings/productionsites/atlanteans/weaving_mill/init.lua	2015-12-06 19:52:56 +0000
@@ -36,8 +36,8 @@
    aihints = {
       forced_after = 600,
       prohibited_till = 450,
-      weak_ai_limit = 1,
-      normal_ai_limit = 2
+      very_weak_ai_limit = 1,
+      weak_ai_limit = 2
    },
 
    working_positions = {

=== modified file 'tribes/buildings/productionsites/barbarians/lime_kiln/init.lua'
--- tribes/buildings/productionsites/barbarians/lime_kiln/init.lua	2015-11-24 19:55:49 +0000
+++ tribes/buildings/productionsites/barbarians/lime_kiln/init.lua	2015-12-06 19:52:56 +0000
@@ -34,8 +34,8 @@
 
    aihints = {
       forced_after = 600,
-      weak_ai_limit = 1,
-      normal_ai_limit = 2
+      very_weak_ai_limit = 1,
+      weak_ai_limit = 2
    },
 
    working_positions = {

=== modified file 'tribes/buildings/productionsites/barbarians/smelting_works/init.lua'
--- tribes/buildings/productionsites/barbarians/smelting_works/init.lua	2015-11-24 19:55:49 +0000
+++ tribes/buildings/productionsites/barbarians/smelting_works/init.lua	2015-12-06 19:52:56 +0000
@@ -37,8 +37,8 @@
 
    aihints = {
       prohibited_till = 400,
-      weak_ai_limit = 1,
-      normal_ai_limit = 2
+      very_weak_ai_limit = 1,
+      weak_ai_limit = 2
    },
 
    working_positions = {

=== modified file 'tribes/buildings/productionsites/barbarians/wood_hardener/init.lua'
--- tribes/buildings/productionsites/barbarians/wood_hardener/init.lua	2015-11-23 19:37:34 +0000
+++ tribes/buildings/productionsites/barbarians/wood_hardener/init.lua	2015-12-06 19:52:56 +0000
@@ -44,8 +44,8 @@
    aihints = {
       forced_after = 250,
       prohibited_till = 250,
-      weak_ai_limit = 1,
-      normal_ai_limit = 2
+      very_weak_ai_limit = 1,
+      weak_ai_limit = 2
    },
 
    working_positions = {

=== modified file 'tribes/buildings/productionsites/empire/brewery/init.lua'
--- tribes/buildings/productionsites/empire/brewery/init.lua	2015-11-24 19:55:49 +0000
+++ tribes/buildings/productionsites/empire/brewery/init.lua	2015-12-06 19:52:56 +0000
@@ -35,8 +35,8 @@
    aihints = {
       forced_after = 900,
       prohibited_till = 600,
-      weak_ai_limit = 1,
-      normal_ai_limit = 2
+      very_weak_ai_limit = 1,
+      weak_ai_limit = 2
    },
 
    working_positions = {

=== modified file 'tribes/buildings/productionsites/empire/sawmill/init.lua'
--- tribes/buildings/productionsites/empire/sawmill/init.lua	2015-11-24 19:55:49 +0000
+++ tribes/buildings/productionsites/empire/sawmill/init.lua	2015-12-06 19:52:56 +0000
@@ -35,8 +35,8 @@
    aihints = {
       forced_after = 250,
       prohibited_till = 250,
-      weak_ai_limit = 1,
-      normal_ai_limit = 2
+      very_weak_ai_limit = 1,
+      weak_ai_limit = 2
    },
 
    working_positions = {

=== modified file 'tribes/buildings/productionsites/empire/smelting_works/init.lua'
--- tribes/buildings/productionsites/empire/smelting_works/init.lua	2015-11-24 19:55:49 +0000
+++ tribes/buildings/productionsites/empire/smelting_works/init.lua	2015-12-06 19:52:56 +0000
@@ -40,8 +40,8 @@
 
    aihints = {
       prohibited_till = 600,
-      weak_ai_limit = 1,
-      normal_ai_limit = 2
+      very_weak_ai_limit = 1,
+      weak_ai_limit = 2
    },
 
    working_positions = {

=== modified file 'tribes/buildings/productionsites/empire/stonemasons_house/init.lua'
--- tribes/buildings/productionsites/empire/stonemasons_house/init.lua	2015-11-24 19:55:49 +0000
+++ tribes/buildings/productionsites/empire/stonemasons_house/init.lua	2015-12-06 19:52:56 +0000
@@ -36,8 +36,8 @@
    aihints = {
       forced_after = 400,
       prohibited_till = 400,
-      weak_ai_limit = 1,
-      normal_ai_limit = 2
+      very_weak_ai_limit = 1,
+      weak_ai_limit = 2
    },
 
    working_positions = {

=== modified file 'tribes/buildings/productionsites/empire/winery/init.lua'
--- tribes/buildings/productionsites/empire/winery/init.lua	2015-11-24 19:55:49 +0000
+++ tribes/buildings/productionsites/empire/winery/init.lua	2015-12-06 19:52:56 +0000
@@ -37,8 +37,8 @@
    aihints = {
       forced_after = 600,
       prohibited_till = 600,
-      weak_ai_limit = 1,
-      normal_ai_limit = 2
+      very_weak_ai_limit = 1,
+      weak_ai_limit = 2
    },
 
    working_positions = {

=== modified file 'tribes/buildings/trainingsites/atlanteans/dungeon/init.lua'
--- tribes/buildings/trainingsites/atlanteans/dungeon/init.lua	2015-11-24 19:55:49 +0000
+++ tribes/buildings/trainingsites/atlanteans/dungeon/init.lua	2015-12-06 19:52:56 +0000
@@ -37,8 +37,8 @@
 
    aihints = {
       trainingsite_type = "advanced",
-      weak_ai_limit = 0,
-      normal_ai_limit = 1
+      very_weak_ai_limit = 0,
+      weak_ai_limit = 1
    },
 
    working_positions = {

=== modified file 'tribes/buildings/trainingsites/atlanteans/labyrinth/init.lua'
--- tribes/buildings/trainingsites/atlanteans/labyrinth/init.lua	2015-11-24 19:55:49 +0000
+++ tribes/buildings/trainingsites/atlanteans/labyrinth/init.lua	2015-12-06 19:52:56 +0000
@@ -37,8 +37,8 @@
    aihints = {
       prohibited_till=900,
       trainingsite_type = "basic",
-      weak_ai_limit = 1,
-      normal_ai_limit = 2
+      very_weak_ai_limit = 1,
+      weak_ai_limit = 2
    },
 
    working_positions = {

=== modified file 'tribes/buildings/trainingsites/barbarians/battlearena/init.lua'
--- tribes/buildings/trainingsites/barbarians/battlearena/init.lua	2015-11-24 19:55:49 +0000
+++ tribes/buildings/trainingsites/barbarians/battlearena/init.lua	2015-12-06 19:52:56 +0000
@@ -53,8 +53,8 @@
    aihints = {
       prohibited_till = 2700,
       trainingsite_type = "basic",
-      weak_ai_limit = 1,
-      normal_ai_limit = 3
+      very_weak_ai_limit = 1,
+      weak_ai_limit = 3
    },
 
    working_positions = {

=== modified file 'tribes/buildings/trainingsites/barbarians/trainingcamp/init.lua'
--- tribes/buildings/trainingsites/barbarians/trainingcamp/init.lua	2015-11-24 19:55:49 +0000
+++ tribes/buildings/trainingsites/barbarians/trainingcamp/init.lua	2015-12-06 19:52:56 +0000
@@ -46,8 +46,8 @@
    aihints = {
       prohibited_till = 500,
       trainingsite_type = "advanced",
-      weak_ai_limit = 0,
-      normal_ai_limit = 1
+      very_weak_ai_limit = 0,
+      weak_ai_limit = 1
    },
 
    working_positions = {

=== modified file 'tribes/buildings/trainingsites/empire/arena/init.lua'
--- tribes/buildings/trainingsites/empire/arena/init.lua	2015-11-24 19:55:49 +0000
+++ tribes/buildings/trainingsites/empire/arena/init.lua	2015-12-06 19:52:56 +0000
@@ -41,8 +41,8 @@
 
    aihints = {
       trainingsite_type = "basic",
-      weak_ai_limit = 1,
-      normal_ai_limit = 2
+      very_weak_ai_limit = 1,
+      weak_ai_limit = 2
    },
 
    working_positions = {

=== modified file 'tribes/buildings/trainingsites/empire/colosseum/init.lua'
--- tribes/buildings/trainingsites/empire/colosseum/init.lua	2015-11-24 19:55:49 +0000
+++ tribes/buildings/trainingsites/empire/colosseum/init.lua	2015-12-06 19:52:56 +0000
@@ -35,8 +35,8 @@
 
    aihints = {
       trainingsite_type = "basic",
-      weak_ai_limit = 1,
-      normal_ai_limit = 2
+      very_weak_ai_limit = 1,
+      weak_ai_limit = 2
    },
 
    working_positions = {

=== modified file 'tribes/buildings/trainingsites/empire/trainingcamp/init.lua'
--- tribes/buildings/trainingsites/empire/trainingcamp/init.lua	2015-11-24 19:55:49 +0000
+++ tribes/buildings/trainingsites/empire/trainingcamp/init.lua	2015-12-06 19:52:56 +0000
@@ -37,8 +37,8 @@
    aihints = {
       prohibited_till = 2700,
       trainingsite_type = "advanced",
-      weak_ai_limit = 0,
-      normal_ai_limit = 1
+      very_weak_ai_limit = 0,
+      weak_ai_limit = 1
    },
 
    working_positions = {


Follow ups