mirror of
https://github.com/vcmi/vcmi.git
synced 2025-02-03 13:01:33 +02:00
Fixed #837
This commit is contained in:
parent
5e14d17ed3
commit
329f39bb2a
@ -2541,15 +2541,19 @@ void CStack::stackEffectToFeature(std::vector<Bonus> & sf, const Bonus & sse)
|
||||
sf.push_back(featureGenerator(Bonus::FORGETFULL, 0, sse.val, sse.turnsRemain));
|
||||
sf.back().sid = sse.sid;
|
||||
break;
|
||||
case 62: //blind
|
||||
sf.push_back(makeFeatureVal(Bonus::NOT_ACTIVE, Bonus::UNITL_BEING_ATTACKED | Bonus::N_TURNS, 0, 0, Bonus::SPELL_EFFECT, sse.turnsRemain));
|
||||
case Spells::BLIND: //blind
|
||||
sf.push_back(makeFeatureVal(Bonus::NOT_ACTIVE, Bonus::UNITL_BEING_ATTACKED | Bonus::N_TURNS, sse.sid, 0, Bonus::SPELL_EFFECT, sse.turnsRemain));
|
||||
sf.back().sid = sse.sid;
|
||||
sf.push_back(makeFeatureVal(Bonus::GENERAL_ATTACK_REDUCTION, Bonus::UNTIL_ATTACK | Bonus::N_TURNS, 0, power, Bonus::SPELL_EFFECT, sse.turnsRemain));
|
||||
sf.back().sid = sse.sid;
|
||||
sf.push_back(makeFeatureVal(Bonus::NO_RETALIATION, Bonus::UNITL_BEING_ATTACKED, 0, 0, Bonus::SPELL_EFFECT, 0)); // don't retaliate after basilisk / unicorn attack
|
||||
sf.back().sid = sse.sid;
|
||||
break;
|
||||
case 70: //Stone Gaze
|
||||
case 74: //Paralyze
|
||||
sf.push_back(makeFeatureVal(Bonus::NOT_ACTIVE, Bonus::UNITL_BEING_ATTACKED | Bonus::N_TURNS, 0, 0, Bonus::SPELL_EFFECT, sse.turnsRemain));
|
||||
case Spells::STONE_GAZE: //Stone Gaze
|
||||
case Spells::PARALYZE: //Paralyze
|
||||
sf.push_back(makeFeatureVal(Bonus::NOT_ACTIVE, Bonus::UNITL_BEING_ATTACKED | Bonus::N_TURNS, sse.sid, 0, Bonus::SPELL_EFFECT, sse.turnsRemain));
|
||||
sf.back().sid = sse.sid;
|
||||
sf.push_back(makeFeatureVal(Bonus::NO_RETALIATION, Bonus::UNITL_BEING_ATTACKED, 0, 0, Bonus::SPELL_EFFECT, 0)); // don't retaliate after basilisk / unicorn attack
|
||||
sf.back().sid = sse.sid;
|
||||
break;
|
||||
case 71: //Poison
|
||||
@ -2812,7 +2816,8 @@ bool CStack::ableToRetaliate() const
|
||||
return alive()
|
||||
&& (counterAttacks > 0 || hasBonusOfType(Bonus::UNLIMITED_RETALIATIONS))
|
||||
&& !hasBonusOfType(Bonus::SIEGE_WEAPON)
|
||||
&& !hasBonusOfType(Bonus::HYPNOTIZED);
|
||||
&& !hasBonusOfType(Bonus::HYPNOTIZED)
|
||||
&& !hasBonusOfType(Bonus::NO_RETALIATION);
|
||||
}
|
||||
|
||||
std::string CStack::getName() const
|
||||
|
@ -138,6 +138,7 @@ namespace PrimarySkill
|
||||
BONUS_NAME(HEALER) \
|
||||
BONUS_NAME(SIEGE_WEAPON) \
|
||||
BONUS_NAME(HYPNOTIZED) \
|
||||
BONUS_NAME(NO_RETALIATION) /*temporary bonus for basilisk, unicorn and scorpicore paralyze*/\
|
||||
BONUS_NAME(ADDITIONAL_RETALIATION) /*value - number of additional retaliations*/ \
|
||||
BONUS_NAME(MAGIC_MIRROR) /* value - chance of redirecting in %*/ \
|
||||
BONUS_NAME(ALWAYS_MINIMUM_DAMAGE) /*unit does its minimum damage from range; subtype: -1 - any attack, 0 - melee, 1 - ranged, value: additional damage penalty (it'll subtracted from dmg), additional info - multiplicative anti-bonus for dmg in % [eg 20 means that creature will inflict 80% of normal minimal dmg]*/ \
|
||||
@ -146,7 +147,7 @@ namespace PrimarySkill
|
||||
BONUS_NAME(IN_FRENZY) /*value - level*/ \
|
||||
BONUS_NAME(SLAYER) /*value - level*/ \
|
||||
BONUS_NAME(FORGETFULL) /*forgetfulness spell effect, value - level*/ \
|
||||
BONUS_NAME(NOT_ACTIVE) \
|
||||
BONUS_NAME(NOT_ACTIVE) /* subtype - spell ID (paralyze, blind, stone gaze) for graphical effect*/ \
|
||||
BONUS_NAME(NO_LUCK) /*eg. when fighting on cursed ground*/ \
|
||||
BONUS_NAME(NO_MORALE) /*eg. when fighting on cursed ground*/ \
|
||||
BONUS_NAME(DARKNESS) /*val = radius */ \
|
||||
|
Loading…
x
Reference in New Issue
Block a user