AdventureSpellMechanics.h 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. /*
  2. * AdventureSpellMechanics.h, part of VCMI engine
  3. *
  4. * Authors: listed in file AUTHORS in main folder
  5. *
  6. * License: GNU General Public License v2.0 or later
  7. * Full text of license available in license.txt file, in main folder
  8. *
  9. */
  10. #pragma once
  11. #include "CDefaultSpellMechanics.h"
  12. class ISpellMechanics;
  13. class DefaultSpellMechanics;
  14. class DLL_LINKAGE SummonBoatMechanics : public DefaultSpellMechanics
  15. {
  16. public:
  17. SummonBoatMechanics(CSpell * s): DefaultSpellMechanics(s){};
  18. protected:
  19. ESpellCastResult applyAdventureEffects(const SpellCastEnvironment * env, AdventureSpellCastParameters & parameters) const override;
  20. };
  21. class DLL_LINKAGE ScuttleBoatMechanics : public DefaultSpellMechanics
  22. {
  23. public:
  24. ScuttleBoatMechanics(CSpell * s): DefaultSpellMechanics(s){};
  25. protected:
  26. ESpellCastResult applyAdventureEffects(const SpellCastEnvironment * env, AdventureSpellCastParameters & parameters) const override;
  27. };
  28. class DLL_LINKAGE DimensionDoorMechanics : public DefaultSpellMechanics
  29. {
  30. public:
  31. DimensionDoorMechanics(CSpell * s): DefaultSpellMechanics(s){};
  32. protected:
  33. ESpellCastResult applyAdventureEffects(const SpellCastEnvironment * env, AdventureSpellCastParameters & parameters) const override;
  34. };
  35. class DLL_LINKAGE TownPortalMechanics : public DefaultSpellMechanics
  36. {
  37. public:
  38. TownPortalMechanics(CSpell * s): DefaultSpellMechanics(s){};
  39. protected:
  40. ESpellCastResult applyAdventureEffects(const SpellCastEnvironment * env, AdventureSpellCastParameters & parameters) const override;
  41. };
  42. class DLL_LINKAGE ViewMechanics : public DefaultSpellMechanics
  43. {
  44. public:
  45. ViewMechanics(CSpell * s): DefaultSpellMechanics(s){};
  46. protected:
  47. ESpellCastResult applyAdventureEffects(const SpellCastEnvironment * env, AdventureSpellCastParameters & parameters) const override;
  48. virtual bool filterObject(const CGObjectInstance * obj, const int spellLevel) const = 0;
  49. };
  50. class DLL_LINKAGE ViewAirMechanics : public ViewMechanics
  51. {
  52. public:
  53. ViewAirMechanics(CSpell * s): ViewMechanics(s){};
  54. protected:
  55. bool filterObject(const CGObjectInstance * obj, const int spellLevel) const override;
  56. };
  57. class DLL_LINKAGE ViewEarthMechanics : public ViewMechanics
  58. {
  59. public:
  60. ViewEarthMechanics(CSpell * s): ViewMechanics(s){};
  61. protected:
  62. bool filterObject(const CGObjectInstance * obj, const int spellLevel) const override;
  63. };