Ivan Savenko 4 månader sedan
förälder
incheckning
0979f409c7

+ 8 - 0
config/creatures/fortress.json

@@ -349,6 +349,10 @@
 			{
 				"type" : "ATTACKS_ALL_ADJACENT"
 			},
+			"draconicSkeleton" :
+			{
+				"type" : "DRACONIC_SKELETON"
+			},
 			"noRetaliation" :
 			{
 				"type" : "BLOCKS_RETALIATION"
@@ -385,6 +389,10 @@
 			{
 				"type" : "ATTACKS_ALL_ADJACENT"
 			},
+			"draconicSkeleton" :
+			{
+				"type" : "DRACONIC_SKELETON"
+			},
 			"noRetaliation" :
 			{
 				"type" : "BLOCKS_RETALIATION"

+ 1 - 1
config/gameConfig.json

@@ -325,7 +325,7 @@
 			/// Strength of generic secondary skill specialties ( "secondary" : "skillName" ) per level
 			"specialtySecondarySkillGrowth" : 5,
 			/// Strength of generic creature specialties ( "creature" : "creatureName" ) per level
-			"specialtyCreatureGrowth" : 5,
+			"specialtyCreatureGrowth" : 5
 		},
 
 		"towns":

+ 1 - 2
config/schemas/townBuilding.json

@@ -128,8 +128,7 @@
 				"enum" : [ "resource-resource", "resource-player", "creature-resource", "resource-artifact", "artifact-resource", "artifact-experience", "creature-experience", "creature-undead", "resource-skill"],
 			},
 			"description" : "List of modes available in this market"
-		}
-		
+		},
 		"marketOffer" : {
 			"type" : "array",
 			"items" : {

+ 1 - 1
lib/CBonusTypeHandler.cpp

@@ -203,7 +203,7 @@ BonusType CBonusTypeHandler::stringToBonus(const std::string & name) const
 	return BonusType::NONE;
 }
 
-const std::string CBonusTypeHandler::bonusToString(BonusType bonus) const
+const std::string & CBonusTypeHandler::bonusToString(BonusType bonus) const
 {
 	return bonusNames.at(static_cast<int>(bonus));
 }

+ 1 - 1
lib/CBonusTypeHandler.h

@@ -55,7 +55,7 @@ public:
 	void loadObject(std::string scope, std::string name, const JsonNode & data, size_t index) override;
 
 	BonusType stringToBonus(const std::string & name) const;
-	const std::string bonusToString(BonusType bonus) const;
+	const std::string & bonusToString(BonusType bonus) const;
 
 	bool isCreatureNatureBonus(BonusType bonus) const;
 

+ 1 - 2
lib/bonuses/BonusEnum.h

@@ -142,7 +142,7 @@ class JsonNode;
 	BONUS_NAME(MANUAL_CONTROL) /* manually control warmachine with id = subtype, chance = val */  \
 	BONUS_NAME(WIDE_BREATH) /* initial desigh: dragon breath affecting multiple nearby hexes */\
 	BONUS_NAME(FIRST_STRIKE) /* first counterattack, then attack if possible */\
-	BONUS_NAME(SYNERGY_TARGET) /* dummy skill for alternative upgrades mod */\
+	BONUS_NAME(VULNERABLE_FROM_BACK) /*bonus damage for attacks from behind*/\
 	BONUS_NAME(SHOOTS_ALL_ADJACENT) /* H4 Cyclops-like shoot (attacks all hexes neighbouring with target) without spell-like mechanics */\
 	BONUS_NAME(BLOCK_MAGIC_BELOW) /*blocks casting spells of the level < value */ \
 	BONUS_NAME(DESTRUCTION) /*kills extra units after hit, subtype = 0 - kill percentage of units, 1 - kill amount, val = chance in percent to trigger, additional info - amount/percentage to kill*/ \
@@ -189,7 +189,6 @@ class JsonNode;
 	BONUS_NAME(MULTIHEX_ENEMY_ATTACK) /*eg. dragons*/	\
 	BONUS_NAME(MULTIHEX_ANIMATION) /*eg. dragons*/	\
 	BONUS_NAME(STACK_EXPERIENCE_GAIN_PERCENT) /*modifies all stack experience gains*/\
-	BONUS_NAME(VULNERABLE_FROM_BACK) /*bonus damage for attacks from behind*/\
 	BONUS_NAME(FULL_MAP_SCOUTING) /*Skyship*/\
 	BONUS_NAME(FULL_MAP_DARKNESS) /*opposite to Skyship*/\
 	/* end of list */

+ 1 - 1
lib/bonuses/Updaters.h

@@ -76,7 +76,7 @@ public:
 	template <typename Handler> void serialize(Handler & h)
 	{
 		h & static_cast<IUpdater &>(*this);
-		 if (h.hasFeature(Handler::Version::UNIVERSITY_CONFIG))
+		if (h.hasFeature(Handler::Version::UNIVERSITY_CONFIG))
 			h & stepSize;
 	}
 

+ 1 - 1
lib/mapping/CMap.h

@@ -344,7 +344,7 @@ public:
 		h & obeliskCount;
 		h & obelisksVisited;
 		h & townMerchantArtifacts;
-		if (!h.hasFeature(Handler::Version::STORE_UID_COUNTER_IN_CMAP))
+		if (!h.hasFeature(Handler::Version::UNIVERSITY_CONFIG))
 		{
 			std::vector<TradeItemBuy> townUniversitySkills;
 			h & townUniversitySkills;

+ 3 - 3
lib/spells/CSpellHandler.cpp

@@ -154,8 +154,8 @@ std::string CSpell::getNameTranslated() const
 
 std::string CSpell::getDescriptionTextID(int32_t level) const
 {
-	TextIdentifier id("spell", modScope, identifier, "description", LEVEL_NAMES[level]);
-	return id.get();
+	TextIdentifier textID("spell", modScope, identifier, "description", LEVEL_NAMES[level]);
+	return textID.get();
 }
 
 std::string CSpell::getDescriptionTranslated(int32_t level) const
@@ -748,7 +748,7 @@ std::shared_ptr<CSpell> CSpellHandler::loadFromJson(const std::string & scope, c
 	{
 		if (schoolJson.second.Bool())
 		{
-			LIBRARY->identifiers()->requestIdentifier(schoolJson.second.getModScope(), "spellSchool", schoolJson.first, [=](si32 schoolID)
+			LIBRARY->identifiers()->requestIdentifier(schoolJson.second.getModScope(), "spellSchool", schoolJson.first, [spell](si32 schoolID)
 			{
 				spell->schools.emplace(schoolID);
 			});

+ 4 - 0
lib/spells/SpellSchoolHandler.cpp

@@ -13,6 +13,8 @@
 
 #include "../json/JsonNode.h"
 
+VCMI_LIB_NAMESPACE_BEGIN
+
 std::vector<JsonNode> SpellSchoolHandler::loadLegacyData()
 {
 	objects.resize(4);
@@ -54,3 +56,5 @@ std::vector<SpellSchool> SpellSchoolHandler::getAllObjects() const
 
 	return result;
 }
+
+VCMI_LIB_NAMESPACE_END

+ 1 - 1
lib/spells/SpellSchoolHandler.h

@@ -40,7 +40,7 @@ public:
 		return spellBordersPath;
 	}
 
-	int getIndex()
+	int getIndex() const
 	{
 		return id.getNum();
 	}