浏览代码

Merge pull request #3499 from IvanSavenko/bugfixing

[1.4.3] Bugfixing
Ivan Savenko 1 年之前
父节点
当前提交
c940bf226e

+ 1 - 1
.github/workflows/github.yml

@@ -312,7 +312,7 @@ jobs:
           ${{ github.workspace }}/android/vcmi-app/src/main/jniLibs
           ${{ github.workspace }}/android/vcmi-app/src/main/jniLibs
 
 
     - name: Upload build
     - name: Upload build
-      if: ${{ (matrix.pack == 1 || startsWith(matrix.platform, 'android')) && (github.ref == 'refs/heads/develop' || github.ref == 'refs/heads/beta' || github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/heads/features/')) && matrix.platform != 'msvc' }}
+      if: ${{ (matrix.pack == 1 || startsWith(matrix.platform, 'android')) && (github.ref == 'refs/heads/develop' || github.ref == 'refs/heads/beta' || github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/heads/features/')) && matrix.platform != 'msvc' && matrix.platform != 'mingw-32' }}
       continue-on-error: true
       continue-on-error: true
       run: |
       run: |
         if cd '${{github.workspace}}/android/vcmi-app/build/outputs/apk/daily' ; then
         if cd '${{github.workspace}}/android/vcmi-app/build/outputs/apk/daily' ; then

+ 1 - 0
config/widgets/turnOptionsTab.json

@@ -317,6 +317,7 @@
 		{
 		{
 			"name": "buttonSimturnsAI",
 			"name": "buttonSimturnsAI",
 			"position": {"x": 70, "y": 535},
 			"position": {"x": 70, "y": 535},
+			"help" : "vcmi.optionsTab.simturnsAI",
 			"type": "toggleButton",
 			"type": "toggleButton",
 			"image": "lobby/checkbox",
 			"image": "lobby/checkbox",
 			"callback" : "setSimturnAI"
 			"callback" : "setSimturnAI"

+ 2 - 2
docs/modders/Entities_Format/Creature_Format.md

@@ -59,8 +59,8 @@ In order to make functional creature you also need:
 	// Basic growth of this creature in town or in external dwellings
 	// Basic growth of this creature in town or in external dwellings
 	"growth" : 0,
 	"growth" : 0,
 	
 	
-	// Bonus growth of this creature from built horde
-	"hordeGrowth" : 0,
+	// Bonus growth of this creature from built horde, if any
+	"horde" : 0,
 	
 	
 	// Creature stats in battle
 	// Creature stats in battle
 	"attack" : 0,
 	"attack" : 0,

+ 3 - 3
server/CGameHandler.cpp

@@ -1136,16 +1136,16 @@ bool CGameHandler::moveHero(ObjectInstanceID hid, int3 dst, ui8 teleporting, boo
 	};
 	};
 
 
 	if (guardian && getVisitingHero(guardian) != nullptr)
 	if (guardian && getVisitingHero(guardian) != nullptr)
-		return complainRet("Cannot move hero, destination monster is busy!");
+		return complainRet("You cannot move your hero there. Simultaneous turns are active and another player is interacting with this wandering monster!");
 
 
 	if (objectToVisit && getVisitingHero(objectToVisit) != nullptr && getVisitingHero(objectToVisit) != h)
 	if (objectToVisit && getVisitingHero(objectToVisit) != nullptr && getVisitingHero(objectToVisit) != h)
-		return complainRet("Cannot move hero, destination object is busy!");
+		return complainRet("You cannot move your hero there. Simultaneous turns are active and another player is interacting with this map object!");
 
 
 	if (objectToVisit &&
 	if (objectToVisit &&
 		objectToVisit->getOwner().isValidPlayer() &&
 		objectToVisit->getOwner().isValidPlayer() &&
 		getPlayerRelations(objectToVisit->getOwner(), h->getOwner()) == PlayerRelations::ENEMIES &&
 		getPlayerRelations(objectToVisit->getOwner(), h->getOwner()) == PlayerRelations::ENEMIES &&
 		!turnOrder->isContactAllowed(objectToVisit->getOwner(), h->getOwner()))
 		!turnOrder->isContactAllowed(objectToVisit->getOwner(), h->getOwner()))
-		return complainRet("Cannot move hero, destination player is busy!");
+		return complainRet("You cannot move your hero there. This object belongs to another player and simultaneous turns are still active!");
 
 
 	//it's a rock or blocked and not visitable tile
 	//it's a rock or blocked and not visitable tile
 	//OR hero is on land and dest is water and (there is not present only one object - boat)
 	//OR hero is on land and dest is water and (there is not present only one object - boat)

+ 2 - 2
server/CGameHandler.h

@@ -248,7 +248,7 @@ public:
 
 
 	void wrongPlayerMessage(CPackForServer * pack, PlayerColor expectedplayer);
 	void wrongPlayerMessage(CPackForServer * pack, PlayerColor expectedplayer);
 	/// Unconditionally throws with "Action not allowed" message
 	/// Unconditionally throws with "Action not allowed" message
-	void throwNotAllowedAction(CPackForServer * pack);
+	[[noreturn]] void throwNotAllowedAction(CPackForServer * pack);
 	/// Throws if player stated in pack is not making turn right now
 	/// Throws if player stated in pack is not making turn right now
 	void throwIfPlayerNotActive(CPackForServer * pack);
 	void throwIfPlayerNotActive(CPackForServer * pack);
 	/// Throws if object is not owned by pack sender
 	/// Throws if object is not owned by pack sender
@@ -256,7 +256,7 @@ public:
 	/// Throws if player is not present on connection of this pack
 	/// Throws if player is not present on connection of this pack
 	void throwIfWrongPlayer(CPackForServer * pack, PlayerColor player);
 	void throwIfWrongPlayer(CPackForServer * pack, PlayerColor player);
 	void throwIfWrongPlayer(CPackForServer * pack);
 	void throwIfWrongPlayer(CPackForServer * pack);
-	void throwAndComplain(CPackForServer * pack, std::string txt);
+	[[noreturn]] void throwAndComplain(CPackForServer * pack, std::string txt);
 
 
 	bool isPlayerOwns(CPackForServer * pack, ObjectInstanceID id);
 	bool isPlayerOwns(CPackForServer * pack, ObjectInstanceID id);