瀏覽代碼

Add TRANSMUTATION_IMMUNITY bonus

Ivan Savenko 6 月之前
父節點
當前提交
9762e8493a
共有 2 個文件被更改,包括 2 次插入1 次删除
  1. 1 0
      lib/bonuses/BonusEnum.h
  2. 1 1
      server/battles/BattleActionProcessor.cpp

+ 1 - 0
lib/bonuses/BonusEnum.h

@@ -191,6 +191,7 @@ class JsonNode;
 	BONUS_NAME(STACK_EXPERIENCE_GAIN_PERCENT) /*modifies all stack experience gains*/\
 	BONUS_NAME(FULL_MAP_SCOUTING) /*Skyship*/\
 	BONUS_NAME(FULL_MAP_DARKNESS) /*opposite to Skyship*/\
+	BONUS_NAME(TRANSMUTATION_IMMUNITY) /*blocks TRANSMUTATION bonus*/\
 	/* end of list */
 
 

+ 1 - 1
server/battles/BattleActionProcessor.cpp

@@ -1341,7 +1341,7 @@ void BattleActionProcessor::handleAfterAttackCasting(const CBattleInfoCallback &
 	if(!defender->alive())
 		return;
 
-	if(attacker->hasBonusOfType(BonusType::TRANSMUTATION) && defender->isLiving()) //transmutation mechanics, similar to WoG werewolf ability
+	if(attacker->hasBonusOfType(BonusType::TRANSMUTATION) && defender->isLiving() && !defender->hasBonusOfType(BonusType::TRANSMUTATION_IMMUNITY)) //transmutation mechanics, similar to WoG werewolf ability
 	{
 		int chanceToTrigger = attacker->valOfBonuses(BonusType::TRANSMUTATION);
 		if (!gameHandler->randomizer->rollCombatAbility(ownerArmy, chanceToTrigger))