1
0
mirror of https://github.com/vcmi/vcmi.git synced 2024-12-26 22:57:00 +02:00

Relaxed cast requirements for Quicksand

This commit is contained in:
AlexVinS 2016-10-31 15:38:53 +03:00
parent 8d40a4aa95
commit dad0569bc7
2 changed files with 4 additions and 4 deletions

View File

@ -492,9 +492,10 @@ void PatchObstacleMechanics::applyBattleEffects(const SpellCastEnvironment * env
placeObstacle(env, parameters, availableTiles.at(i)); placeObstacle(env, parameters, availableTiles.at(i));
} }
ESpellCastProblem::ESpellCastProblem PatchObstacleMechanics::canBeCast(const CBattleInfoCallback * cb, const ECastingMode::ECastingMode mode, const ISpellCaster * caster) const ///LandMineMechanics
ESpellCastProblem::ESpellCastProblem LandMineMechanics::canBeCast(const CBattleInfoCallback * cb, const ECastingMode::ECastingMode mode, const ISpellCaster * caster) const
{ {
//Quicksand|LandMine are useless if enemy has native stack, check for LandMine damage immunity is done in general way by CSpell //LandMine are useless if enemy has native stack and can see mines, check for LandMine damage immunity is done in general way by CSpell
const ui8 otherSide = !cb->playerToSide(caster->getOwner()); const ui8 otherSide = !cb->playerToSide(caster->getOwner());
if(cb->battleHasNativeStack(otherSide)) if(cb->battleHasNativeStack(otherSide))
@ -503,7 +504,6 @@ ESpellCastProblem::ESpellCastProblem PatchObstacleMechanics::canBeCast(const CBa
return DefaultSpellMechanics::canBeCast(cb, mode, caster); return DefaultSpellMechanics::canBeCast(cb, mode, caster);
} }
///LandMineMechanics
bool LandMineMechanics::requiresCreatureTarget() const bool LandMineMechanics::requiresCreatureTarget() const
{ {
return true; return true;

View File

@ -113,7 +113,6 @@ class PatchObstacleMechanics : public ObstacleMechanics
{ {
public: public:
PatchObstacleMechanics(CSpell * s): ObstacleMechanics(s){}; PatchObstacleMechanics(CSpell * s): ObstacleMechanics(s){};
ESpellCastProblem::ESpellCastProblem canBeCast(const CBattleInfoCallback * cb, const ECastingMode::ECastingMode mode, const ISpellCaster * caster) const override;
protected: protected:
void applyBattleEffects(const SpellCastEnvironment * env, const BattleSpellCastParameters & parameters, SpellCastContext & ctx) const override; void applyBattleEffects(const SpellCastEnvironment * env, const BattleSpellCastParameters & parameters, SpellCastContext & ctx) const override;
}; };
@ -122,6 +121,7 @@ class DLL_LINKAGE LandMineMechanics : public PatchObstacleMechanics
{ {
public: public:
LandMineMechanics(CSpell * s): PatchObstacleMechanics(s){}; LandMineMechanics(CSpell * s): PatchObstacleMechanics(s){};
ESpellCastProblem::ESpellCastProblem canBeCast(const CBattleInfoCallback * cb, const ECastingMode::ECastingMode mode, const ISpellCaster * caster) const override;
bool requiresCreatureTarget() const override; bool requiresCreatureTarget() const override;
protected: protected:
void setupObstacle(SpellCreatedObstacle * obstacle) const override; void setupObstacle(SpellCreatedObstacle * obstacle) const override;