浏览代码

Remove limitations for amount of skills

nordsoft 2 年之前
父节点
当前提交
68fa7aaf35
共有 4 个文件被更改,包括 8 次插入19 次删除
  1. 0 1
      client/windows/GUIClasses.cpp
  2. 8 1
      config/objects/generic.json
  3. 0 16
      lib/mapObjects/CGMarket.cpp
  4. 0 1
      lib/mapObjects/CGMarket.h

+ 0 - 1
client/windows/GUIClasses.cpp

@@ -1317,7 +1317,6 @@ CUniversityWindow::CUniversityWindow(const CGHeroInstance * _hero, const IMarket
 	title = std::make_shared<CLabel>(231, 26, FONT_MEDIUM, ETextAlignment::CENTER, Colors::YELLOW, titleStr);
 
 	std::vector<int> goods = market->availableItemsIds(EMarketMode::RESOURCE_SKILL);
-	assert(goods.size() == 4);
 
 	for(int i=0; i<goods.size(); i++)//prepare clickable items
 		items.push_back(std::make_shared<CItem>(this, goods[i], 54+i*104, 234));

+ 8 - 1
config/objects/generic.json

@@ -562,7 +562,14 @@
 				},
 				"modes" : ["resource-skill"],
 				"title" : "core.genrltxt.602",
-				"speech" : "core.genrltxt.603"
+				"speech" : "core.genrltxt.603",
+				"offer": 
+				[
+					{ "noneOf" : ["necromancy"] },
+					{ "noneOf" : ["necromancy"] },
+					{ "noneOf" : ["necromancy"] },
+					{ "noneOf" : ["necromancy"] }
+				]
 			}
 		}
 	},

+ 0 - 16
lib/mapObjects/CGMarket.cpp

@@ -257,7 +257,6 @@ void CGUniversity::initObj(CRandomGenerator & rand)
 	CGMarket::initObj(rand);
 	
 	std::vector<int> toChoose;
-	int skillsNeeded = skillsTotal - skills.size();
 	for(int i = 0; i < VLC->skillh->size(); ++i)
 	{
 		if(!vstd::contains(skills, i) && cb->isAllowed(2, i))
@@ -265,21 +264,6 @@ void CGUniversity::initObj(CRandomGenerator & rand)
 			toChoose.push_back(i);
 		}
 	}
-	if(toChoose.size() < skillsNeeded)
-	{
-		logGlobal->warn("Warning: less then %d available skills was found by University initializer!", skillsTotal);
-		return;
-	}
-
-	// get 4 skills, excluding predefined
-	
-	for(int i = 0; i < skillsNeeded; ++i)
-	{
-		// move randomly one skill to selected and remove from list
-		auto it = RandomGeneratorUtil::nextItem(toChoose, rand);
-		skills.push_back(*it);
-		toChoose.erase(it);
-	}
 }
 
 std::vector<int> CGUniversity::availableItemsIds(EMarketMode::EMarketMode mode) const

+ 0 - 1
lib/mapObjects/CGMarket.h

@@ -80,7 +80,6 @@ public:
 class DLL_LINKAGE CGUniversity : public CGMarket
 {
 public:
-	int skillsTotal = 4;
 	std::vector<int> skills; //available skills
 
 	std::vector<int> availableItemsIds(EMarketMode::EMarketMode mode) const override;