|  | @@ -11,6 +11,23 @@
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  #include "Registry.h"
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +#include "Catapult.h"
 | 
	
		
			
				|  |  | +#include "Clone.h"
 | 
	
		
			
				|  |  | +#include "Damage.h"
 | 
	
		
			
				|  |  | +#include "DemonSummon.h"
 | 
	
		
			
				|  |  | +#include "Dispel.h"
 | 
	
		
			
				|  |  | +#include "Effect.h"
 | 
	
		
			
				|  |  | +#include "Effects.h"
 | 
	
		
			
				|  |  | +#include "Heal.h"
 | 
	
		
			
				|  |  | +#include "LocationEffect.h"
 | 
	
		
			
				|  |  | +#include "Obstacle.h"
 | 
	
		
			
				|  |  | +#include "RemoveObstacle.h"
 | 
	
		
			
				|  |  | +#include "Sacrifice.h"
 | 
	
		
			
				|  |  | +#include "Summon.h"
 | 
	
		
			
				|  |  | +#include "Teleport.h"
 | 
	
		
			
				|  |  | +#include "Timed.h"
 | 
	
		
			
				|  |  | +#include "UnitEffect.h"
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  VCMI_LIB_NAMESPACE_BEGIN
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  namespace spells
 | 
	
	
		
			
				|  | @@ -23,6 +40,22 @@ namespace detail
 | 
	
		
			
				|  |  |  class RegistryImpl : public Registry
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  |  public:
 | 
	
		
			
				|  |  | +	RegistryImpl()
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		add("core:catapult", std::make_shared<EffectFactory<Catapult>>());
 | 
	
		
			
				|  |  | +		add("core:clone", std::make_shared<EffectFactory<Clone>>());
 | 
	
		
			
				|  |  | +		add("core:damage", std::make_shared<EffectFactory<Damage>>());
 | 
	
		
			
				|  |  | +		add("core:demonSummon", std::make_shared<EffectFactory<DemonSummon>>());
 | 
	
		
			
				|  |  | +		add("core:dispel", std::make_shared<EffectFactory<Dispel>>());
 | 
	
		
			
				|  |  | +		add("core:heal", std::make_shared<EffectFactory<Heal>>());
 | 
	
		
			
				|  |  | +		add("core:obstacle", std::make_shared<EffectFactory<Obstacle>>());
 | 
	
		
			
				|  |  | +		add("core:removeObstacle", std::make_shared<EffectFactory<RemoveObstacle>>());
 | 
	
		
			
				|  |  | +		add("core:sacrifice", std::make_shared<EffectFactory<Sacrifice>>());
 | 
	
		
			
				|  |  | +		add("core:summon", std::make_shared<EffectFactory<Summon>>());
 | 
	
		
			
				|  |  | +		add("core:teleport", std::make_shared<EffectFactory<Teleport>>());
 | 
	
		
			
				|  |  | +		add("core:timed", std::make_shared<EffectFactory<Timed>>());
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	const IEffectFactory * find(const std::string & name) const override
 | 
	
		
			
				|  |  |  	{
 | 
	
		
			
				|  |  |  		auto iter = data.find(name);
 |