Browse Source

Allow learning secondary skills in ally towns

Dydzio 6 years ago
parent
commit
c310a05ee0
1 changed files with 6 additions and 2 deletions
  1. 6 2
      server/NetPacksServer.cpp

+ 6 - 2
server/NetPacksServer.cpp

@@ -199,10 +199,14 @@ bool TradeOnMarketplace::applyGh(CGameHandler * gh)
 	if(player >= PlayerColor::PLAYER_LIMIT)
 		throwAndComplain(gh, "No player can use this market!");
 
-	if(hero && (player != hero->tempOwner || hero->visitablePos() != market->visitablePos()))
+	bool allyTownSkillTrade = (mode == EMarketMode::RESOURCE_SKILL && gh->getPlayerRelations(player, hero->tempOwner) == PlayerRelations::ALLIES);
+
+	if(hero && (!(player == hero->tempOwner || allyTownSkillTrade)
+		|| hero->visitablePos() != market->visitablePos()))
 		throwAndComplain(gh, "This hero can't use this marketplace!");
 
-	throwOnWrongPlayer(gh, player);
+	if(!allyTownSkillTrade)
+		throwOnWrongPlayer(gh, player);
 
 	bool result = true;