DjWarmonger 13 سال پیش
والد
کامیت
cdb55500f3
2فایلهای تغییر یافته به همراه15 افزوده شده و 17 حذف شده
  1. 9 17
      lib/BattleState.cpp
  2. 6 0
      lib/CArtHandler.cpp

+ 9 - 17
lib/BattleState.cpp

@@ -416,27 +416,19 @@ BattleHex BattleInfo::getClosestTile (bool attackerOwned, int initialPos, std::s
 
 int BattleInfo::getAvaliableHex(TCreature creID, bool attackerOwned, int initialPos) const
 {
-	/*
-	//FIXME: unused?
-	int pos;
-	if (initialPos > -1)
-		pos = initialPos;
-	else
-	{
-		if (attackerOwned)
-			pos = 0; //top left
-		else
-			pos = GameConstants::BFIELD_WIDTH; //top right
-	}
-	*/
-
 	bool ac[GameConstants::BFIELD_SIZE];
-	std::set<BattleHex> occupyable;
 
 	bool twoHex = VLC->creh->creatures[creID]->isDoubleWide();
-	bool flying = VLC->creh->creatures[creID]->isFlying();// vstd::contains(VLC->creh->creatures[creID]->bonuses, Bonus::FLYING);
-	getAccessibilityMap (ac, twoHex, attackerOwned, true, occupyable, flying);
+	bool flying = VLC->creh->creatures[creID]->isFlying();
+
+	std::set<BattleHex> occupyable;
+	getAccessibilityMap (ac, twoHex, attackerOwned, false, occupyable, flying);
 
+	for (int i = 0; i < GameConstants::BFIELD_SIZE; ++i)
+	{
+		if (ac[i])
+			occupyable.insert (i);
+	}
 	if (!occupyable.size())
 		return -1; //all tiles are covered
 

+ 6 - 0
lib/CArtHandler.cpp

@@ -820,6 +820,12 @@ void CArtHandler::addBonuses()
 		{
 			makeItCommanderArt (i);
 		}
+		ART_PRIM_SKILL (146, 0, +6); //Axe of Smashing
+		giveArtBonus(147, Bonus::STACK_HEALTH, +12, -1, Bonus::PERCENT_TO_ALL); //Mithril Mail
+		giveArtBonus(148, Bonus::CREATURE_DAMAGE, +12, 0, Bonus::PERCENT_TO_ALL); //Sword of Sharpness
+		giveArtBonus(150, Bonus::CASTS, 1); //Pendant of Sorcery
+		giveArtBonus(151, Bonus::STACKS_SPEED, 1); //Boots of haste
+		ART_PRIM_SKILL (154, 0, +6); //Hardened Shield
 	}
 }